diff --git a/.gitignore b/.gitignore index 5d183a0..5ed1836 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,6 @@ lcov.info # JS dependencies node_modules/ -# Typechain generated and artifacts -/actions/artifacts/ +# Typechain generated and source abi +/actions/abi/ /actions/types/ diff --git a/actions/artifacts/ComposableCoW.json b/actions/artifacts/ComposableCoW.json deleted file mode 100644 index c9a7609..0000000 --- a/actions/artifacts/ComposableCoW.json +++ /dev/null @@ -1,10487 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_settlement", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "InterfaceNotSupported", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidFallbackHandler", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidHandler", - "type": "error" - }, - { - "inputs": [], - "name": "ProofNotAuthed", - "type": "error" - }, - { - "inputs": [], - "name": "SingleOrderNotAuthed", - "type": "error" - }, - { - "inputs": [], - "name": "SwapGuardRestricted", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "components": [ - { - "internalType": "contract IConditionalOrder", - "name": "handler", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "staticInput", - "type": "bytes" - } - ], - "indexed": false, - "internalType": "struct IConditionalOrder.ConditionalOrderParams", - "name": "params", - "type": "tuple" - } - ], - "name": "ConditionalOrderCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "root", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "location", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "indexed": false, - "internalType": "struct ComposableCoW.Proof", - "name": "proof", - "type": "tuple" - } - ], - "name": "MerkleRootSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "contract ISwapGuard", - "name": "swapGuard", - "type": "address" - } - ], - "name": "SwapGuardSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "cabinet", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IConditionalOrder", - "name": "handler", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "staticInput", - "type": "bytes" - } - ], - "internalType": "struct IConditionalOrder.ConditionalOrderParams", - "name": "params", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "dispatch", - "type": "bool" - } - ], - "name": "create", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IConditionalOrder", - "name": "handler", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "staticInput", - "type": "bytes" - } - ], - "internalType": "struct IConditionalOrder.ConditionalOrderParams", - "name": "params", - "type": "tuple" - }, - { - "internalType": "contract IValueFactory", - "name": "factory", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "dispatch", - "type": "bool" - } - ], - "name": "createWithContext", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "components": [ - { - "internalType": "contract IConditionalOrder", - "name": "handler", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "staticInput", - "type": "bytes" - } - ], - "internalType": "struct IConditionalOrder.ConditionalOrderParams", - "name": "params", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "offchainInput", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "proof", - "type": "bytes32[]" - } - ], - "name": "getTradeableOrderWithSignature", - "outputs": [ - { - "components": [ - { - "internalType": "contract IERC20", - "name": "sellToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "buyToken", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "sellAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyAmount", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "validTo", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "appData", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "kind", - "type": "bytes32" - }, - { - "internalType": "bool", - "name": "partiallyFillable", - "type": "bool" - }, - { - "internalType": "bytes32", - "name": "sellTokenBalance", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "buyTokenBalance", - "type": "bytes32" - } - ], - "internalType": "struct GPv2Order.Data", - "name": "order", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IConditionalOrder", - "name": "handler", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "staticInput", - "type": "bytes" - } - ], - "internalType": "struct IConditionalOrder.ConditionalOrderParams", - "name": "params", - "type": "tuple" - } - ], - "name": "hash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract Safe", - "name": "safe", - "type": "address" - }, - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_domainSeparator", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "encodeData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "name": "isValidSafeSignature", - "outputs": [ - { - "internalType": "bytes4", - "name": "magic", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "singleOrderHash", - "type": "bytes32" - } - ], - "name": "remove", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "roots", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "root", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "location", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "internalType": "struct ComposableCoW.Proof", - "name": "proof", - "type": "tuple" - } - ], - "name": "setRoot", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "root", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "location", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "internalType": "struct ComposableCoW.Proof", - "name": "proof", - "type": "tuple" - }, - { - "internalType": "contract IValueFactory", - "name": "factory", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "setRootWithContext", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract ISwapGuard", - "name": "swapGuard", - "type": "address" - } - ], - "name": "setSwapGuard", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "singleOrders", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "swapGuards", - "outputs": [ - { - "internalType": "contract ISwapGuard", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x60a06040523480156200001157600080fd5b5060405162002230380380620022308339810160408190526200003491620000a3565b806001600160a01b031663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000073573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000999190620000d5565b60805250620000ef565b600060208284031215620000b657600080fd5b81516001600160a01b0381168114620000ce57600080fd5b9392505050565b600060208284031215620000e857600080fd5b5051919050565b60805161211e6200011260003960008181610328015261092a015261211e6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063595001b21161008c5780638f7984ed116100665780638f7984ed1461028c57806395bc26731461029f578063a454687614610303578063f698da251461032357600080fd5b8063595001b2146101e05780636108c5321461023b5780636bfae1ca1461027957600080fd5b806326e0a196116100c857806326e0a1961461015557806353f00b14146101765780635500079d146101ba57806357f1d41a146101cd57600080fd5b80630d0d9800146100ef5780631ab0dd9d146101045780631c7662c814610117575b600080fd5b6101026100fd366004611216565b61034a565b005b6101026101123660046112bb565b61041d565b61014261012536600461130d565b600360209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b610168610163366004611339565b61046d565b60405161014c929190611556565b610189610184366004611578565b610afd565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161014c565b6101426101c83660046117ea565b610c3f565b6101026101db366004611827565b610c6f565b6102166101ee3660046118b0565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014c565b61026961024936600461130d565b600160209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161014c565b6101026102873660046118cd565b610d30565b61010261029a3660046118b0565b610e38565b6101026102ad36600461191f565b336000818152600160209081526040808320858452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690559282526003815282822093825292909252812055565b6101426103113660046118b0565b60006020819052908152604090205481565b6101427f000000000000000000000000000000000000000000000000000000000000000081565b6103548582610d30565b6040517fb6576bdf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063b6576bdf906103a89086908690600401611981565b602060405180830381865afa1580156103c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e99190611995565b336000908152600360205260408120906104056101c8896119ae565b81526020810191909152604001600020555050505050565b3360008181526020819052604090819020849055517f58662f46b4a87d0f96d929b24c37fe25c55d52c0025d0b2bec3936534cc31e57906104619085908590611a1e565b60405180910390a25050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915260606000610518896104df8a6119ae565b878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610ebf92505050565b905061052760208901896118b0565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fb8296fc400000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff91909116906301ffc9a790602401602060405180830381865afa9250505080156105ed575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526105ea91810190611a68565b60015b610623576040517f2c7ca6d700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061065a576040517f2c7ca6d700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5061066860208901896118b0565b73ffffffffffffffffffffffffffffffffffffffff1663b8296fc48a338461069360408e018e611a85565b8d8d6040518863ffffffff1660e01b81526004016106b79796959493929190611aea565b61018060405180830381865afa1580156106d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f99190611b73565b925061074789826107098b6119ae565b8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611001915050565b61077d576040517f03fc2a7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f62af8dc200000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8a16906301ffc9a790602401602060405180830381865afa925050508015610841575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261083e91810190611a68565b60015b6108f15760408051608060208702808301820190935260608201878152869383928a918a9182919086019084908082843760009201919091525050509082525060200161088d8b6119ae565b815260200189898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040516108db929190602001611ce0565b6040516020818303038152906040529150610af1565b80610928576040517f79ac63cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000007fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e4898560405160200161097b9190611d02565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152608060208b028085018201909352606084018b81529193928392918d918d918291908601908490808284376000920191909152505050908252506020016109ec8e6119ae565b81526020018c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050915250604051610a399190602001611d11565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610a7794939291602401611d24565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5fd7e97d000000000000000000000000000000000000000000000000000000001790529250505b50965096945050505050565b600080610b0c83850185611d60565b90506000610b238c83602001518460000151610ebf565b90506000610b3387890189611e82565b9050610b4a8d838560200151866040015185611001565b610b80576040517f03fc2a7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82602001516000015173ffffffffffffffffffffffffffffffffffffffff166314a2a7848e8e8e8e878960200151604001518a60400151896040518963ffffffff1660e01b8152600401610bdb989796959493929190611f40565b60006040518083038186803b158015610bf357600080fd5b505afa158015610c07573d6000803e3d6000fd5b507f1626ba7e0000000000000000000000000000000000000000000000000000000096505050505050505b9998505050505050505050565b600081604051602001610c529190611fb0565b604051602081830303815290604052805190602001209050919050565b610c79858561041d565b6040517fb6576bdf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063b6576bdf90610ccd9085908590600401611981565b602060405180830381865afa158015610cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0e9190611995565b3360009081526003602090815260408083208380529091529020555050505050565b6000610d3f60208401846118b0565b73ffffffffffffffffffffffffffffffffffffffff1603610d8c576040517fd8f59fa500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260016020819052604082209091610dab6101c8866119ae565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558015610e34573373ffffffffffffffffffffffffffffffffffffffff167f2cceac5555b0ca45a3744ced542f54b56ad2eb45e521962372eef212a2cbf361836040516104619190611fc3565b5050565b3360008181526002602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f41f583e2d25b3921afe66987b63b0b5e4cf2acbbbed4a477fd19a22180f3f859910160405180910390a250565b60008151600014610f84576000610ed584610c3f565b604051602001610ee791815260200190565b604051602081830303815290604052805190602001209050610f48836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110e1565b610f7e576040517f4a82146400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50610ffa565b610f8d83610c3f565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260016020908152604080832084845290915290205490915060ff16610ffa576040517f7a93323400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526002602052604081205490911680156110d2576040517ff9ae35a200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f9ae35a2906110899086908a908a908a9060040161201c565b602060405180830381865afa1580156110a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ca9190611a68565b9150506110d8565b60019150505b95945050505050565b6000826110ee85846110f7565b14949350505050565b600081815b845181101561113c576111288286838151811061111b5761111b61205a565b6020026020010151611146565b91508061113481612089565b9150506110fc565b5090505b92915050565b6000818310611162576000828152602084905260409020610ffa565b5060009182526020526040902090565b60006060828403121561118457600080fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff811681146111ac57600080fd5b50565b60008083601f8401126111c157600080fd5b50813567ffffffffffffffff8111156111d957600080fd5b6020830191508360208285010111156111f157600080fd5b9250929050565b80151581146111ac57600080fd5b8035611211816111f8565b919050565b60008060008060006080868803121561122e57600080fd5b853567ffffffffffffffff8082111561124657600080fd5b61125289838a01611172565b9650602088013591506112648261118a565b9094506040870135908082111561127a57600080fd5b50611287888289016111af565b909450925050606086013561129b816111f8565b809150509295509295909350565b60006040828403121561118457600080fd5b600080604083850312156112ce57600080fd5b82359150602083013567ffffffffffffffff8111156112ec57600080fd5b6112f8858286016112a9565b9150509250929050565b80356112118161118a565b6000806040838503121561132057600080fd5b823561132b8161118a565b946020939093013593505050565b6000806000806000806080878903121561135257600080fd5b863561135d8161118a565b9550602087013567ffffffffffffffff8082111561137a57600080fd5b6113868a838b01611172565b9650604089013591508082111561139c57600080fd5b6113a88a838b016111af565b909650945060608901359150808211156113c157600080fd5b818901915089601f8301126113d557600080fd5b8135818111156113e457600080fd5b8a60208260051b85010111156113f957600080fd5b6020830194508093505050509295509295509295565b805173ffffffffffffffffffffffffffffffffffffffff1682526020810151611450602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040810151611478604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606081015160608301526080810151608083015260a08101516114a460a084018263ffffffff169052565b5060c081015160c083015260e081015160e0830152610100808201518184015250610120808201516114d98285018215159052565b5050610140818101519083015261016090810151910152565b6000815180845260005b81811015611518576020818501810151868301820152016114fc565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60006101a0611565838661140f565b806101808401526110d8818401856114f2565b600080600080600080600080600060e08a8c03121561159657600080fd5b89356115a18161118a565b985060208a01356115b18161118a565b975060408a0135965060608a0135955060808a0135945060a08a013567ffffffffffffffff808211156115e357600080fd5b6115ef8d838e016111af565b909650945060c08c013591508082111561160857600080fd5b506116158c828d016111af565b915080935050809150509295985092959850929598565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561167e5761167e61162c565b60405290565b604051610180810167ffffffffffffffff8111828210171561167e5761167e61162c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156116ef576116ef61162c565b604052919050565b600082601f83011261170857600080fd5b813567ffffffffffffffff8111156117225761172261162c565b61175360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016116a8565b81815284602083860101111561176857600080fd5b816020850160208301376000918101602001919091529392505050565b60006060828403121561179757600080fd5b61179f61165b565b905081356117ac8161118a565b815260208281013590820152604082013567ffffffffffffffff8111156117d257600080fd5b6117de848285016116f7565b60408301525092915050565b6000602082840312156117fc57600080fd5b813567ffffffffffffffff81111561181357600080fd5b61181f84828501611785565b949350505050565b60008060008060006080868803121561183f57600080fd5b85359450602086013567ffffffffffffffff8082111561185e57600080fd5b61186a89838a016112a9565b95506040880135915061187c8261118a565b9093506060870135908082111561189257600080fd5b5061189f888289016111af565b969995985093965092949392505050565b6000602082840312156118c257600080fd5b8135610ffa8161118a565b600080604083850312156118e057600080fd5b823567ffffffffffffffff8111156118f757600080fd5b61190385828601611172565b9250506020830135611914816111f8565b809150509250929050565b60006020828403121561193157600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208152600061181f602083018486611938565b6000602082840312156119a757600080fd5b5051919050565b60006111403683611785565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126119ef57600080fd5b830160208101925035905067ffffffffffffffff811115611a0f57600080fd5b8036038213156111f157600080fd5b82815260406020820152813560408201526000611a3e60208401846119ba565b60406060850152611a53608085018284611938565b9695505050505050565b8051611211816111f8565b600060208284031215611a7a57600080fd5b8151610ffa816111f8565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611aba57600080fd5b83018035915067ffffffffffffffff821115611ad557600080fd5b6020019150368190038213156111f157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff808a16835280891660208401525086604083015260a06060830152611b2a60a083018688611938565b8281036080840152611b3d818587611938565b9a9950505050505050505050565b80516112118161118a565b63ffffffff811681146111ac57600080fd5b805161121181611b56565b60006101808284031215611b8657600080fd5b611b8e611684565b611b9783611b4b565b8152611ba560208401611b4b565b6020820152611bb660408401611b4b565b60408201526060830151606082015260808301516080820152611bdb60a08401611b68565b60a082015260c083015160c082015260e083015160e0820152610100808401518183015250610120611c0e818501611a5d565b908201526101408381015190820152610160928301519281019290925250919050565b73ffffffffffffffffffffffffffffffffffffffff815116825260208101516020830152600060408201516060604085015261181f60608501826114f2565b805160608084528151908401819052600091602091908201906080860190845b81811015611cac57835183529284019291840191600101611c90565b505082850151915085810383870152611cc58183611c31565b92505050604083015184820360408601526110d882826114f2565b60006101a0611cef838661140f565b806101808401526110d881840185611c70565b6101808101611140828461140f565b602081526000610ffa6020830184611c70565b848152836020820152608060408201526000611d4360808301856114f2565b8281036060840152611d5581856114f2565b979650505050505050565b60006020808385031215611d7357600080fd5b823567ffffffffffffffff80821115611d8b57600080fd5b9084019060608287031215611d9f57600080fd5b611da761165b565b823582811115611db657600080fd5b8301601f81018813611dc757600080fd5b803583811115611dd957611dd961162c565b8060051b611de88782016116a8565b918252828101870191878101908b841115611e0257600080fd5b938801935b83851015611e2057843582529388019390880190611e07565b8552505050508284013582811115611e3757600080fd5b611e4388828601611785565b85830152506040830135935081841115611e5c57600080fd5b611e68878585016116f7565b60408201529695505050505050565b803561121181611b56565b60006101808284031215611e9557600080fd5b611e9d611684565b611ea683611302565b8152611eb460208401611302565b6020820152611ec560408401611302565b60408201526060830135606082015260808301356080820152611eea60a08401611e77565b60a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120611f1d818501611206565b908201526101408381013590820152610160928301359281019290925250919050565b600061026073ffffffffffffffffffffffffffffffffffffffff808c168452808b166020850152508860408401528760608401528660808401528060a0840152611f8c818401876114f2565b905082810360c0840152611fa081866114f2565b915050610c3260e083018461140f565b602081526000610ffa6020830184611c31565b6020815260008235611fd48161118a565b73ffffffffffffffffffffffffffffffffffffffff81166020840152506020830135604083015261200860408401846119ba565b6060808501526110d8608085018284611938565b60006101e061202b838861140f565b85610180840152806101a084015261204581840186611c31565b90508281036101c0840152611d5581856114f2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036120e1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220e23d95217a10665974c83c4ea22bd347daab0570e397236749f8f5063e1b702164736f6c63430008130033", - "sourceMap": "579:11686:134:-:0;;;2178:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2253:11;-1:-1:-1;;;;;2239:42:134;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2221:62;;-1:-1:-1;579:11686:134;;14:290:168;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:168;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:168:o;309:184::-;379:6;432:2;420:9;411:7;407:23;403:32;400:52;;;448:1;445;438:12;400:52;-1:-1:-1;471:16:168;;309:184;-1:-1:-1;309:184:168:o;:::-;579:11686:134;;;;;;;;;;;;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063595001b21161008c5780638f7984ed116100665780638f7984ed1461028c57806395bc26731461029f578063a454687614610303578063f698da251461032357600080fd5b8063595001b2146101e05780636108c5321461023b5780636bfae1ca1461027957600080fd5b806326e0a196116100c857806326e0a1961461015557806353f00b14146101765780635500079d146101ba57806357f1d41a146101cd57600080fd5b80630d0d9800146100ef5780631ab0dd9d146101045780631c7662c814610117575b600080fd5b6101026100fd366004611216565b61034a565b005b6101026101123660046112bb565b61041d565b61014261012536600461130d565b600360209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b610168610163366004611339565b61046d565b60405161014c929190611556565b610189610184366004611578565b610afd565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161014c565b6101426101c83660046117ea565b610c3f565b6101026101db366004611827565b610c6f565b6102166101ee3660046118b0565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014c565b61026961024936600461130d565b600160209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161014c565b6101026102873660046118cd565b610d30565b61010261029a3660046118b0565b610e38565b6101026102ad36600461191f565b336000818152600160209081526040808320858452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690559282526003815282822093825292909252812055565b6101426103113660046118b0565b60006020819052908152604090205481565b6101427f000000000000000000000000000000000000000000000000000000000000000081565b6103548582610d30565b6040517fb6576bdf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063b6576bdf906103a89086908690600401611981565b602060405180830381865afa1580156103c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e99190611995565b336000908152600360205260408120906104056101c8896119ae565b81526020810191909152604001600020555050505050565b3360008181526020819052604090819020849055517f58662f46b4a87d0f96d929b24c37fe25c55d52c0025d0b2bec3936534cc31e57906104619085908590611a1e565b60405180910390a25050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915260606000610518896104df8a6119ae565b878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610ebf92505050565b905061052760208901896118b0565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fb8296fc400000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff91909116906301ffc9a790602401602060405180830381865afa9250505080156105ed575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526105ea91810190611a68565b60015b610623576040517f2c7ca6d700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061065a576040517f2c7ca6d700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5061066860208901896118b0565b73ffffffffffffffffffffffffffffffffffffffff1663b8296fc48a338461069360408e018e611a85565b8d8d6040518863ffffffff1660e01b81526004016106b79796959493929190611aea565b61018060405180830381865afa1580156106d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f99190611b73565b925061074789826107098b6119ae565b8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611001915050565b61077d576040517f03fc2a7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f62af8dc200000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8a16906301ffc9a790602401602060405180830381865afa925050508015610841575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261083e91810190611a68565b60015b6108f15760408051608060208702808301820190935260608201878152869383928a918a9182919086019084908082843760009201919091525050509082525060200161088d8b6119ae565b815260200189898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040516108db929190602001611ce0565b6040516020818303038152906040529150610af1565b80610928576040517f79ac63cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000007fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e4898560405160200161097b9190611d02565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152608060208b028085018201909352606084018b81529193928392918d918d918291908601908490808284376000920191909152505050908252506020016109ec8e6119ae565b81526020018c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050915250604051610a399190602001611d11565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610a7794939291602401611d24565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5fd7e97d000000000000000000000000000000000000000000000000000000001790529250505b50965096945050505050565b600080610b0c83850185611d60565b90506000610b238c83602001518460000151610ebf565b90506000610b3387890189611e82565b9050610b4a8d838560200151866040015185611001565b610b80576040517f03fc2a7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82602001516000015173ffffffffffffffffffffffffffffffffffffffff166314a2a7848e8e8e8e878960200151604001518a60400151896040518963ffffffff1660e01b8152600401610bdb989796959493929190611f40565b60006040518083038186803b158015610bf357600080fd5b505afa158015610c07573d6000803e3d6000fd5b507f1626ba7e0000000000000000000000000000000000000000000000000000000096505050505050505b9998505050505050505050565b600081604051602001610c529190611fb0565b604051602081830303815290604052805190602001209050919050565b610c79858561041d565b6040517fb6576bdf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063b6576bdf90610ccd9085908590600401611981565b602060405180830381865afa158015610cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0e9190611995565b3360009081526003602090815260408083208380529091529020555050505050565b6000610d3f60208401846118b0565b73ffffffffffffffffffffffffffffffffffffffff1603610d8c576040517fd8f59fa500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260016020819052604082209091610dab6101c8866119ae565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558015610e34573373ffffffffffffffffffffffffffffffffffffffff167f2cceac5555b0ca45a3744ced542f54b56ad2eb45e521962372eef212a2cbf361836040516104619190611fc3565b5050565b3360008181526002602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f41f583e2d25b3921afe66987b63b0b5e4cf2acbbbed4a477fd19a22180f3f859910160405180910390a250565b60008151600014610f84576000610ed584610c3f565b604051602001610ee791815260200190565b604051602081830303815290604052805190602001209050610f48836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110e1565b610f7e576040517f4a82146400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50610ffa565b610f8d83610c3f565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260016020908152604080832084845290915290205490915060ff16610ffa576040517f7a93323400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526002602052604081205490911680156110d2576040517ff9ae35a200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f9ae35a2906110899086908a908a908a9060040161201c565b602060405180830381865afa1580156110a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ca9190611a68565b9150506110d8565b60019150505b95945050505050565b6000826110ee85846110f7565b14949350505050565b600081815b845181101561113c576111288286838151811061111b5761111b61205a565b6020026020010151611146565b91508061113481612089565b9150506110fc565b5090505b92915050565b6000818310611162576000828152602084905260409020610ffa565b5060009182526020526040902090565b60006060828403121561118457600080fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff811681146111ac57600080fd5b50565b60008083601f8401126111c157600080fd5b50813567ffffffffffffffff8111156111d957600080fd5b6020830191508360208285010111156111f157600080fd5b9250929050565b80151581146111ac57600080fd5b8035611211816111f8565b919050565b60008060008060006080868803121561122e57600080fd5b853567ffffffffffffffff8082111561124657600080fd5b61125289838a01611172565b9650602088013591506112648261118a565b9094506040870135908082111561127a57600080fd5b50611287888289016111af565b909450925050606086013561129b816111f8565b809150509295509295909350565b60006040828403121561118457600080fd5b600080604083850312156112ce57600080fd5b82359150602083013567ffffffffffffffff8111156112ec57600080fd5b6112f8858286016112a9565b9150509250929050565b80356112118161118a565b6000806040838503121561132057600080fd5b823561132b8161118a565b946020939093013593505050565b6000806000806000806080878903121561135257600080fd5b863561135d8161118a565b9550602087013567ffffffffffffffff8082111561137a57600080fd5b6113868a838b01611172565b9650604089013591508082111561139c57600080fd5b6113a88a838b016111af565b909650945060608901359150808211156113c157600080fd5b818901915089601f8301126113d557600080fd5b8135818111156113e457600080fd5b8a60208260051b85010111156113f957600080fd5b6020830194508093505050509295509295509295565b805173ffffffffffffffffffffffffffffffffffffffff1682526020810151611450602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040810151611478604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606081015160608301526080810151608083015260a08101516114a460a084018263ffffffff169052565b5060c081015160c083015260e081015160e0830152610100808201518184015250610120808201516114d98285018215159052565b5050610140818101519083015261016090810151910152565b6000815180845260005b81811015611518576020818501810151868301820152016114fc565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60006101a0611565838661140f565b806101808401526110d8818401856114f2565b600080600080600080600080600060e08a8c03121561159657600080fd5b89356115a18161118a565b985060208a01356115b18161118a565b975060408a0135965060608a0135955060808a0135945060a08a013567ffffffffffffffff808211156115e357600080fd5b6115ef8d838e016111af565b909650945060c08c013591508082111561160857600080fd5b506116158c828d016111af565b915080935050809150509295985092959850929598565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561167e5761167e61162c565b60405290565b604051610180810167ffffffffffffffff8111828210171561167e5761167e61162c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156116ef576116ef61162c565b604052919050565b600082601f83011261170857600080fd5b813567ffffffffffffffff8111156117225761172261162c565b61175360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016116a8565b81815284602083860101111561176857600080fd5b816020850160208301376000918101602001919091529392505050565b60006060828403121561179757600080fd5b61179f61165b565b905081356117ac8161118a565b815260208281013590820152604082013567ffffffffffffffff8111156117d257600080fd5b6117de848285016116f7565b60408301525092915050565b6000602082840312156117fc57600080fd5b813567ffffffffffffffff81111561181357600080fd5b61181f84828501611785565b949350505050565b60008060008060006080868803121561183f57600080fd5b85359450602086013567ffffffffffffffff8082111561185e57600080fd5b61186a89838a016112a9565b95506040880135915061187c8261118a565b9093506060870135908082111561189257600080fd5b5061189f888289016111af565b969995985093965092949392505050565b6000602082840312156118c257600080fd5b8135610ffa8161118a565b600080604083850312156118e057600080fd5b823567ffffffffffffffff8111156118f757600080fd5b61190385828601611172565b9250506020830135611914816111f8565b809150509250929050565b60006020828403121561193157600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208152600061181f602083018486611938565b6000602082840312156119a757600080fd5b5051919050565b60006111403683611785565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126119ef57600080fd5b830160208101925035905067ffffffffffffffff811115611a0f57600080fd5b8036038213156111f157600080fd5b82815260406020820152813560408201526000611a3e60208401846119ba565b60406060850152611a53608085018284611938565b9695505050505050565b8051611211816111f8565b600060208284031215611a7a57600080fd5b8151610ffa816111f8565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611aba57600080fd5b83018035915067ffffffffffffffff821115611ad557600080fd5b6020019150368190038213156111f157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff808a16835280891660208401525086604083015260a06060830152611b2a60a083018688611938565b8281036080840152611b3d818587611938565b9a9950505050505050505050565b80516112118161118a565b63ffffffff811681146111ac57600080fd5b805161121181611b56565b60006101808284031215611b8657600080fd5b611b8e611684565b611b9783611b4b565b8152611ba560208401611b4b565b6020820152611bb660408401611b4b565b60408201526060830151606082015260808301516080820152611bdb60a08401611b68565b60a082015260c083015160c082015260e083015160e0820152610100808401518183015250610120611c0e818501611a5d565b908201526101408381015190820152610160928301519281019290925250919050565b73ffffffffffffffffffffffffffffffffffffffff815116825260208101516020830152600060408201516060604085015261181f60608501826114f2565b805160608084528151908401819052600091602091908201906080860190845b81811015611cac57835183529284019291840191600101611c90565b505082850151915085810383870152611cc58183611c31565b92505050604083015184820360408601526110d882826114f2565b60006101a0611cef838661140f565b806101808401526110d881840185611c70565b6101808101611140828461140f565b602081526000610ffa6020830184611c70565b848152836020820152608060408201526000611d4360808301856114f2565b8281036060840152611d5581856114f2565b979650505050505050565b60006020808385031215611d7357600080fd5b823567ffffffffffffffff80821115611d8b57600080fd5b9084019060608287031215611d9f57600080fd5b611da761165b565b823582811115611db657600080fd5b8301601f81018813611dc757600080fd5b803583811115611dd957611dd961162c565b8060051b611de88782016116a8565b918252828101870191878101908b841115611e0257600080fd5b938801935b83851015611e2057843582529388019390880190611e07565b8552505050508284013582811115611e3757600080fd5b611e4388828601611785565b85830152506040830135935081841115611e5c57600080fd5b611e68878585016116f7565b60408201529695505050505050565b803561121181611b56565b60006101808284031215611e9557600080fd5b611e9d611684565b611ea683611302565b8152611eb460208401611302565b6020820152611ec560408401611302565b60408201526060830135606082015260808301356080820152611eea60a08401611e77565b60a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120611f1d818501611206565b908201526101408381013590820152610160928301359281019290925250919050565b600061026073ffffffffffffffffffffffffffffffffffffffff808c168452808b166020850152508860408401528760608401528660808401528060a0840152611f8c818401876114f2565b905082810360c0840152611fa081866114f2565b915050610c3260e083018461140f565b602081526000610ffa6020830184611c31565b6020815260008235611fd48161118a565b73ffffffffffffffffffffffffffffffffffffffff81166020840152506020830135604083015261200860408401846119ba565b6060808501526110d8608085018284611938565b60006101e061202b838861140f565b85610180840152806101a084015261204581840186611c31565b90508281036101c0840152611d5581856114f2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036120e1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220e23d95217a10665974c83c4ea22bd347daab0570e397236749f8f5063e1b702164736f6c63430008130033", - "sourceMap": "579:11686:134:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4518:524;;;;;;:::i;:::-;;:::i;:::-;;2573:154;;;;;;:::i;:::-;;:::i;2014:62::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3199:25:168;;;3187:2;3172:18;2014:62:134;;;;;;;;7821:2111;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;6022:1259::-;;;;;;:::i;:::-;;:::i;:::-;;;8231:66:168;8219:79;;;8201:98;;8189:2;8174:18;6022:1259:134;8057:248:168;10165:153:134;;;;;;:::i;:::-;;:::i;3136:425::-;;;;;;:::i;:::-;;:::i;1906:48::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12281:42:168;12269:55;;;12251:74;;12239:2;12224:18;1906:48:134;12085:246:168;1794:64:134;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12501:14:168;;12494:22;12476:41;;12464:2;12449:18;1794:64:134;12336:187:168;3767:358:134;;;;;;:::i;:::-;;:::i;5517:154::-;;;;;;:::i;:::-;;:::i;5207:175::-;;;;;;:::i;:::-;5280:10;5311:5;5267:24;;;:12;:24;;;;;;;;:41;;;;;;;;:49;;;;;;5326:19;;;:7;:19;;;;;:36;;;;;;;;;:49;5207:175;1702:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;1611;;;;;4518:524;4719:24;4726:6;4734:8;4719:6;:24::i;:::-;5013:22;;;;;:16;;;;;;:22;;5030:4;;;;5013:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4985:10;4977:19;;;;:7;:19;;;;;;4997:12;;5002:6;4997:12;:::i;:::-;4977:33;;;;;;;;;;;-1:-1:-1;4977:33:134;:58;-1:-1:-1;;;;;4518:524:134:o;2573:154::-;2649:10;2643:5;:17;;;;;;;;;;;;:24;;;2682:38;;;;;2663:4;;2714:5;;2682:38;:::i;:::-;;;;;;;;2573:154;;:::o;7821:2111::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8080:22:134;8191:11;8205:27;8211:5;8205:27;8218:6;8205:27;:::i;:::-;8226:5;;8205:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8205:5:134;;-1:-1:-1;;;8205:27:134:i;:::-;8191:41;-1:-1:-1;8353:14:134;;;;:6;:14;:::i;:::-;8318:137;;;;;8401:44;8318:137;;;8201:98:168;8318:69:134;;;;;;;;8174:18:168;;8318:137:134;;;;;;;;;;;;;;;;;;-1:-1:-1;8318:137:134;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8314:332;;8612:23;;;;;;;;;;;;;;8314:332;8500:9;8495:79;;8536:23;;;;;;;;;;;;;;8495:79;8456:128;8699:14;;;;:6;:14;:::i;:::-;8664:69;;;8747:5;8754:10;8766:3;8771:18;;;;:6;:18;:::i;:::-;8791:13;;8664:150;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8656:158;-1:-1:-1;8902:53:134;8914:5;8921:3;8902:53;8926:6;8902:53;:::i;:::-;8934:13;;8902:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8949:5:134;;-1:-1:-1;8902:11:134;;-1:-1:-1;;8902:53:134:i;:::-;8896:115;;8979:21;;;;;;;;;;;;;;8896:115;9025:93;;;;;9076:41;9025:93;;;8201:98:168;9025:50:134;;;;;;8174:18:168;;9025:93:134;;;;;;;;;;;;;;;;;;-1:-1:-1;9025:93:134;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9021:905;;9839:75;;;;;;;;;;;;;;;;;;;;;9832:5;;9839:75;;9907:5;;;;;;9839:75;;;;9907:5;;9839:75;9907:5;9839:75;;;;;;;;;-1:-1:-1;;;9839:75:134;;;-1:-1:-1;9839:75:134;;;9862:6;9839:75;:::i;:::-;;;;;9885:13;;9839:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9839:75:134;;-1:-1:-1;9821:94:134;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9809:106;;9021:905;;;9185:9;9180:80;;9221:24;;;;;;;;;;;;;;9180:80;9388:15;9421:19;9469:5;9458:17;;;;;;;;:::i;:::-;;;;;;;;;;;9504:75;9458:17;9504:75;;;;;;;;;;;;;;;;9458:17;;;;;9504:75;9572:5;;;;;;9504:75;;;;9572:5;;9504:75;9572:5;9504:75;;;;;;;;;-1:-1:-1;;;9504:75:134;;;-1:-1:-1;9504:75:134;;;9527:6;9504:75;:::i;:::-;;;;;9550:13;;9504:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9504:75:134;;-1:-1:-1;9493:87:134;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;9285:309;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9021:905:134;8104:1828;7821:2111;;;;;;;;;:::o;6022:1259::-;6286:12;;6378:36;;;;6389:7;6378:36;:::i;:::-;6346:68;;6469:11;6483:53;6497:4;6504:8;:15;;;6521:8;:14;;;6483:5;:53::i;:::-;6469:67;-1:-1:-1;6597:27:134;6627:40;;;;6638:10;6627:40;:::i;:::-;6597:70;;6755:79;6775:4;6782:3;6787:8;:15;;;6804:8;:22;;;6828:5;6755:11;:79::i;:::-;6749:141;;6858:21;;;;;;;;;;;;;;6749:141;6974:8;:15;;;:23;;;:30;;;7026:4;7045:6;7065:5;7084:16;7114:3;7131:8;:15;;;:27;;;7172:8;:22;;;7208:5;6974:249;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7241:33:134;;-1:-1:-1;;;;;;;6022:1259:134;;;;;;;;;;;;:::o;10165:153::-;10256:7;10303:6;10292:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;10282:29;;;;;;10275:36;;10165:153;;;:::o;3136:425::-;3275:20;3283:4;3289:5;3275:7;:20::i;:::-;3532:22;;;;;:16;;;;;;:22;;3549:4;;;;3532:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3506:10;3498:19;;;;:7;:19;;;;;;;;:31;;;;;;;;:56;-1:-1:-1;;;;;3136:425:134:o;3767:358::-;3914:1;3887:14;;;;:6;:14;:::i;:::-;3879:37;;;3873:94;;3940:16;;;;;;;;;;;;;;3873:94;3990:10;3977:24;;;;4018:4;3977:24;;;;;;;4018:4;;4002:12;;4007:6;4002:12;:::i;:::-;3977:38;;;;;;;;;;;-1:-1:-1;3977:38:134;:45;;;;;;;;;;;;;4032:87;;;;4089:10;4065:43;;;4101:6;4065:43;;;;;;:::i;4032:87::-;3767:358;;:::o;5517:154::-;5591:10;5580:22;;;;:10;:22;;;;;;;;;:34;;;;:22;:34;;;;;;;;5629:35;;12251:74:168;;;5629:35:134;;12224:18:168;5629:35:134;;;;;;;5517:154;:::o;10702:721::-;10859:11;10890:5;:12;10906:1;10890:17;10886:531;;10986:12;11024;11029:6;11024:4;:12::i;:::-;11011:26;;;;;;26984:19:168;;27028:2;27019:12;;26855:182;11011:26:134;;;;;;;;;;;;;11001:37;;;;;;10986:52;;11101:45;11120:5;11127;:12;11133:5;11127:12;;;;;;;;;;;;;;;;11141:4;11101:18;:45::i;:::-;11096:108;;11173:16;;;;;;;;;;;;;;11096:108;10909:305;10886:531;;;11288:12;11293:6;11288:4;:12::i;:::-;11319:19;;;;;;;:12;:19;;;;;;;;:24;;;;;;;;;11282:18;;-1:-1:-1;11319:24:134;;11314:93;;11370:22;;;;;;;;;;;;;;11314:93;10702:721;;;;;:::o;11830:433::-;12096:17;;;;12061:4;12096:17;;;:10;:17;;;;;;12061:4;;12096:17;12127:28;;12123:113;;12178:47;;;;;:12;;;;;;:47;;12191:5;;12198:3;;12203:6;;12211:13;;12178:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12171:54;;;;;12123:113;12252:4;12245:11;;;11830:433;;;;;;;;:::o;1156:154:6:-;1247:4;1299;1270:25;1283:5;1290:4;1270:12;:25::i;:::-;:33;;1156:154;-1:-1:-1;;;;1156:154:6:o;1934:290::-;2017:7;2059:4;2017:7;2073:116;2097:5;:12;2093:1;:16;2073:116;;;2145:33;2155:12;2169:5;2175:1;2169:8;;;;;;;;:::i;:::-;;;;;;;2145:9;:33::i;:::-;2130:48;-1:-1:-1;2111:3:6;;;;:::i;:::-;;;;2073:116;;;-1:-1:-1;2205:12:6;-1:-1:-1;1934:290:6;;;;;:::o;9205:147::-;9268:7;9298:1;9294;:5;:51;;9426:13;9517:15;;;9552:4;9545:15;;;9598:4;9582:21;;9294:51;;;-1:-1:-1;9426:13:6;9517:15;;;9552:4;9545:15;9598:4;9582:21;;;9205:147::o;14:170:168:-;89:5;134:2;125:6;120:3;116:16;112:25;109:45;;;150:1;147;140:12;109:45;-1:-1:-1;172:6:168;14:170;-1:-1:-1;14:170:168:o;189:169::-;290:42;283:5;279:54;272:5;269:65;259:93;;348:1;345;338:12;259:93;189:169;:::o;363:347::-;414:8;424:6;478:3;471:4;463:6;459:17;455:27;445:55;;496:1;493;486:12;445:55;-1:-1:-1;519:20:168;;562:18;551:30;;548:50;;;594:1;591;584:12;548:50;631:4;623:6;619:17;607:29;;683:3;676:4;667:6;659;655:19;651:30;648:39;645:59;;;700:1;697;690:12;645:59;363:347;;;;;:::o;715:118::-;801:5;794:13;787:21;780:5;777:32;767:60;;823:1;820;813:12;838:128;903:20;;932:28;903:20;932:28;:::i;:::-;838:128;;;:::o;971:1004::-;1131:6;1139;1147;1155;1163;1216:3;1204:9;1195:7;1191:23;1187:33;1184:53;;;1233:1;1230;1223:12;1184:53;1273:9;1260:23;1302:18;1343:2;1335:6;1332:14;1329:34;;;1359:1;1356;1349:12;1329:34;1382:82;1456:7;1447:6;1436:9;1432:22;1382:82;:::i;:::-;1372:92;;1514:2;1503:9;1499:18;1486:32;1473:45;;1527:46;1567:5;1527:46;:::i;:::-;1592:5;;-1:-1:-1;1650:2:168;1635:18;;1622:32;;1666:16;;;1663:36;;;1695:1;1692;1685:12;1663:36;;1734:60;1786:7;1775:8;1764:9;1760:24;1734:60;:::i;:::-;1813:8;;-1:-1:-1;1708:86:168;-1:-1:-1;;1900:2:168;1885:18;;1872:32;1913:30;1872:32;1913:30;:::i;:::-;1962:7;1952:17;;;971:1004;;;;;;;;:::o;1980:153::-;2038:5;2083:2;2074:6;2069:3;2065:16;2061:25;2058:45;;;2099:1;2096;2089:12;2138:421;2232:6;2240;2293:2;2281:9;2272:7;2268:23;2264:32;2261:52;;;2309:1;2306;2299:12;2261:52;2345:9;2332:23;2322:33;;2406:2;2395:9;2391:18;2378:32;2433:18;2425:6;2422:30;2419:50;;;2465:1;2462;2455:12;2419:50;2488:65;2545:7;2536:6;2525:9;2521:22;2488:65;:::i;:::-;2478:75;;;2138:421;;;;;:::o;2564:149::-;2632:20;;2661:46;2632:20;2661:46;:::i;2718:330::-;2786:6;2794;2847:2;2835:9;2826:7;2822:23;2818:32;2815:52;;;2863:1;2860;2853:12;2815:52;2902:9;2889:23;2921:46;2961:5;2921:46;:::i;:::-;2986:5;3038:2;3023:18;;;;3010:32;;-1:-1:-1;;;2718:330:168:o;3235:1318::-;3402:6;3410;3418;3426;3434;3442;3495:3;3483:9;3474:7;3470:23;3466:33;3463:53;;;3512:1;3509;3502:12;3463:53;3551:9;3538:23;3570:46;3610:5;3570:46;:::i;:::-;3635:5;-1:-1:-1;3691:2:168;3676:18;;3663:32;3714:18;3744:14;;;3741:34;;;3771:1;3768;3761:12;3741:34;3794:82;3868:7;3859:6;3848:9;3844:22;3794:82;:::i;:::-;3784:92;;3929:2;3918:9;3914:18;3901:32;3885:48;;3958:2;3948:8;3945:16;3942:36;;;3974:1;3971;3964:12;3942:36;4013:60;4065:7;4054:8;4043:9;4039:24;4013:60;:::i;:::-;4092:8;;-1:-1:-1;3987:86:168;-1:-1:-1;4180:2:168;4165:18;;4152:32;;-1:-1:-1;4196:16:168;;;4193:36;;;4225:1;4222;4215:12;4193:36;4263:8;4252:9;4248:24;4238:34;;4310:7;4303:4;4299:2;4295:13;4291:27;4281:55;;4332:1;4329;4322:12;4281:55;4372:2;4359:16;4398:2;4390:6;4387:14;4384:34;;;4414:1;4411;4404:12;4384:34;4467:7;4462:2;4452:6;4449:1;4445:14;4441:2;4437:23;4433:32;4430:45;4427:65;;;4488:1;4485;4478:12;4427:65;4519:2;4515;4511:11;4501:21;;4541:6;4531:16;;;;;3235:1318;;;;;;;;:::o;4893:1045::-;4978:12;;4643:42;4632:54;4620:67;;5042:4;5035:5;5031:16;5025:23;5057:56;5107:4;5102:3;5098:14;5084:12;4643:42;4632:54;4620:67;;4558:135;5057:56;;5161:4;5154:5;5150:16;5144:23;5176:58;5228:4;5223:3;5219:14;5203;4643:42;4632:54;4620:67;;4558:135;5176:58;;5283:4;5276:5;5272:16;5266:23;5259:4;5254:3;5250:14;5243:47;5339:4;5332:5;5328:16;5322:23;5315:4;5310:3;5306:14;5299:47;5394:4;5387:5;5383:16;5377:23;5409:49;5452:4;5447:3;5443:14;5427;4774:10;4763:22;4751:35;;4698:94;5409:49;;5507:4;5500:5;5496:16;5490:23;5483:4;5478:3;5474:14;5467:47;5563:4;5556:5;5552:16;5546:23;5539:4;5534:3;5530:14;5523:47;5589:6;5642:2;5635:5;5631:14;5625:21;5620:2;5615:3;5611:12;5604:43;;5666:6;5720:2;5713:5;5709:14;5703:21;5733:45;5774:2;5769:3;5765:12;5749:14;4867:13;4860:21;4848:34;;4797:91;5733:45;-1:-1:-1;;5797:6:168;5839:14;;;5833:21;5819:12;;;5812:43;5874:6;5916:14;;;5910:21;5896:12;;5889:43;4893:1045::o;5943:481::-;5984:3;6022:5;6016:12;6049:6;6044:3;6037:19;6074:1;6084:162;6098:6;6095:1;6092:13;6084:162;;;6160:4;6216:13;;;6212:22;;6206:29;6188:11;;;6184:20;;6177:59;6113:12;6084:162;;;6088:3;6291:1;6284:4;6275:6;6270:3;6266:16;6262:27;6255:38;6413:4;6343:66;6338:2;6330:6;6326:15;6322:88;6317:3;6313:98;6309:109;6302:116;;;5943:481;;;;:::o;6429:373::-;6613:4;6642:3;6654:41;6685:9;6677:6;6654:41;:::i;:::-;6732:2;6726:3;6715:9;6711:19;6704:31;6752:44;6792:2;6781:9;6777:18;6769:6;6752:44;:::i;6807:1245::-;6956:6;6964;6972;6980;6988;6996;7004;7012;7020;7073:3;7061:9;7052:7;7048:23;7044:33;7041:53;;;7090:1;7087;7080:12;7041:53;7129:9;7116:23;7148:46;7188:5;7148:46;:::i;:::-;7213:5;-1:-1:-1;7270:2:168;7255:18;;7242:32;7283:48;7242:32;7283:48;:::i;:::-;7350:7;-1:-1:-1;7404:2:168;7389:18;;7376:32;;-1:-1:-1;7455:2:168;7440:18;;7427:32;;-1:-1:-1;7506:3:168;7491:19;;7478:33;;-1:-1:-1;7562:3:168;7547:19;;7534:33;7586:18;7616:14;;;7613:34;;;7643:1;7640;7633:12;7613:34;7682:58;7732:7;7723:6;7712:9;7708:22;7682:58;:::i;:::-;7759:8;;-1:-1:-1;7656:84:168;-1:-1:-1;7847:3:168;7832:19;;7819:33;;-1:-1:-1;7864:16:168;;;7861:36;;;7893:1;7890;7883:12;7861:36;;7932:60;7984:7;7973:8;7962:9;7958:24;7932:60;:::i;:::-;7906:86;;8011:8;8001:18;;;8038:8;8028:18;;;6807:1245;;;;;;;;;;;:::o;8310:184::-;8362:77;8359:1;8352:88;8459:4;8456:1;8449:15;8483:4;8480:1;8473:15;8499:253;8571:2;8565:9;8613:4;8601:17;;8648:18;8633:34;;8669:22;;;8630:62;8627:88;;;8695:18;;:::i;:::-;8731:2;8724:22;8499:253;:::o;8757:252::-;8829:2;8823:9;8871:3;8859:16;;8905:18;8890:34;;8926:22;;;8887:62;8884:88;;;8952:18;;:::i;9014:334::-;9085:2;9079:9;9141:2;9131:13;;9146:66;9127:86;9115:99;;9244:18;9229:34;;9265:22;;;9226:62;9223:88;;;9291:18;;:::i;:::-;9327:2;9320:22;9014:334;;-1:-1:-1;9014:334:168:o;9353:589::-;9395:5;9448:3;9441:4;9433:6;9429:17;9425:27;9415:55;;9466:1;9463;9456:12;9415:55;9502:6;9489:20;9528:18;9524:2;9521:26;9518:52;;;9550:18;;:::i;:::-;9594:114;9702:4;9633:66;9626:4;9622:2;9618:13;9614:86;9610:97;9594:114;:::i;:::-;9733:2;9724:7;9717:19;9779:3;9772:4;9767:2;9759:6;9755:15;9751:26;9748:35;9745:55;;;9796:1;9793;9786:12;9745:55;9861:2;9854:4;9846:6;9842:17;9835:4;9826:7;9822:18;9809:55;9909:1;9884:16;;;9902:4;9880:27;9873:38;;;;9888:7;9353:589;-1:-1:-1;;;9353:589:168:o;9947:577::-;10016:5;10064:4;10052:9;10047:3;10043:19;10039:30;10036:50;;;10082:1;10079;10072:12;10036:50;10104:22;;:::i;:::-;10095:31;;10163:9;10150:23;10182:48;10222:7;10182:48;:::i;:::-;10239:22;;10321:2;10306:18;;;10293:32;10277:14;;;10270:56;10377:2;10362:18;;10349:32;10404:18;10393:30;;10390:50;;;10436:1;10433;10426:12;10390:50;10472:45;10513:3;10504:6;10493:9;10489:22;10472:45;:::i;:::-;10467:2;10460:5;10456:14;10449:69;;9947:577;;;;:::o;10529:376::-;10629:6;10682:2;10670:9;10661:7;10657:23;10653:32;10650:52;;;10698:1;10695;10688:12;10650:52;10738:9;10725:23;10771:18;10763:6;10760:30;10757:50;;;10803:1;10800;10793:12;10757:50;10826:73;10891:7;10882:6;10871:9;10867:22;10826:73;:::i;:::-;10816:83;10529:376;-1:-1:-1;;;;10529:376:168:o;10910:903::-;11056:6;11064;11072;11080;11088;11141:3;11129:9;11120:7;11116:23;11112:33;11109:53;;;11158:1;11155;11148:12;11109:53;11194:9;11181:23;11171:33;;11255:2;11244:9;11240:18;11227:32;11278:18;11319:2;11311:6;11308:14;11305:34;;;11335:1;11332;11325:12;11305:34;11358:65;11415:7;11406:6;11395:9;11391:22;11358:65;:::i;:::-;11348:75;;11473:2;11462:9;11458:18;11445:32;11432:45;;11486:46;11526:5;11486:46;:::i;:::-;11551:5;;-1:-1:-1;11609:2:168;11594:18;;11581:32;;11625:16;;;11622:36;;;11654:1;11651;11644:12;11622:36;;11693:60;11745:7;11734:8;11723:9;11719:24;11693:60;:::i;:::-;10910:903;;;;-1:-1:-1;10910:903:168;;-1:-1:-1;11772:8:168;;11667:86;10910:903;-1:-1:-1;;;10910:903:168:o;11818:262::-;11877:6;11930:2;11918:9;11909:7;11905:23;11901:32;11898:52;;;11946:1;11943;11936:12;11898:52;11985:9;11972:23;12004:46;12044:5;12004:46;:::i;12528:516::-;12636:6;12644;12697:2;12685:9;12676:7;12672:23;12668:32;12665:52;;;12713:1;12710;12703:12;12665:52;12753:9;12740:23;12786:18;12778:6;12775:30;12772:50;;;12818:1;12815;12808:12;12772:50;12841:82;12915:7;12906:6;12895:9;12891:22;12841:82;:::i;:::-;12831:92;;;12973:2;12962:9;12958:18;12945:32;12986:28;13008:5;12986:28;:::i;:::-;13033:5;13023:15;;;12528:516;;;;;:::o;13336:180::-;13395:6;13448:2;13436:9;13427:7;13423:23;13419:32;13416:52;;;13464:1;13461;13454:12;13416:52;-1:-1:-1;13487:23:168;;13336:180;-1:-1:-1;13336:180:168:o;13521:325::-;13609:6;13604:3;13597:19;13661:6;13654:5;13647:4;13642:3;13638:14;13625:43;;13713:1;13706:4;13697:6;13692:3;13688:16;13684:27;13677:38;13579:3;13835:4;13765:66;13760:2;13752:6;13748:15;13744:88;13739:3;13735:98;13731:109;13724:116;;13521:325;;;;:::o;13851:244::-;14008:2;13997:9;13990:21;13971:4;14028:61;14085:2;14074:9;14070:18;14062:6;14054;14028:61;:::i;14100:184::-;14170:6;14223:2;14211:9;14202:7;14198:23;14194:32;14191:52;;;14239:1;14236;14229:12;14191:52;-1:-1:-1;14262:16:168;;14100:184;-1:-1:-1;14100:184:168:o;14289:240::-;14423:9;14460:63;14508:14;14501:5;14460:63;:::i;14534:559::-;14592:5;14599:6;14659:3;14646:17;14741:66;14730:8;14714:14;14710:29;14706:102;14686:18;14682:127;14672:155;;14823:1;14820;14813:12;14672:155;14851:33;;14955:4;14942:18;;;-1:-1:-1;14903:21:168;;-1:-1:-1;14983:18:168;14972:30;;14969:50;;;15015:1;15012;15005:12;14969:50;15062:6;15046:14;15042:27;15035:5;15031:39;15028:59;;;15083:1;15080;15073:12;15098:544;15305:6;15294:9;15287:25;15348:2;15343;15332:9;15328:18;15321:30;15400:6;15387:20;15382:2;15371:9;15367:18;15360:48;15268:4;15451:55;15502:2;15494:6;15490:15;15482:6;15451:55;:::i;:::-;15542:2;15537;15526:9;15522:18;15515:30;15562:74;15631:3;15620:9;15616:19;15602:12;15588;15562:74;:::i;:::-;15554:82;15098:544;-1:-1:-1;;;;;;15098:544:168:o;15941:132::-;16017:13;;16039:28;16017:13;16039:28;:::i;16078:245::-;16145:6;16198:2;16186:9;16177:7;16173:23;16169:32;16166:52;;;16214:1;16211;16204:12;16166:52;16246:9;16240:16;16265:28;16287:5;16265:28;:::i;16328:580::-;16405:4;16411:6;16471:11;16458:25;16561:66;16550:8;16534:14;16530:29;16526:102;16506:18;16502:127;16492:155;;16643:1;16640;16633:12;16492:155;16670:33;;16722:20;;;-1:-1:-1;16765:18:168;16754:30;;16751:50;;;16797:1;16794;16787:12;16751:50;16830:4;16818:17;;-1:-1:-1;16861:14:168;16857:27;;;16847:38;;16844:58;;;16898:1;16895;16888:12;16913:726;17173:4;17202:42;17283:2;17275:6;17271:15;17260:9;17253:34;17335:2;17327:6;17323:15;17318:2;17307:9;17303:18;17296:43;;17375:6;17370:2;17359:9;17355:18;17348:34;17418:3;17413:2;17402:9;17398:18;17391:31;17445:62;17502:3;17491:9;17487:19;17479:6;17471;17445:62;:::i;:::-;17556:9;17548:6;17544:22;17538:3;17527:9;17523:19;17516:51;17584:49;17626:6;17618;17610;17584:49;:::i;:::-;17576:57;16913:726;-1:-1:-1;;;;;;;;;;16913:726:168:o;17644:161::-;17731:13;;17753:46;17731:13;17753:46;:::i;17810:121::-;17895:10;17888:5;17884:22;17877:5;17874:33;17864:61;;17921:1;17918;17911:12;17936:136;18014:13;;18036:30;18014:13;18036:30;:::i;18077:1155::-;18170:6;18223:3;18211:9;18202:7;18198:23;18194:33;18191:53;;;18240:1;18237;18230:12;18191:53;18266:22;;:::i;:::-;18311:48;18349:9;18311:48;:::i;:::-;18304:5;18297:63;18392:57;18445:2;18434:9;18430:18;18392:57;:::i;:::-;18387:2;18380:5;18376:14;18369:81;18482:57;18535:2;18524:9;18520:18;18482:57;:::i;:::-;18477:2;18470:5;18466:14;18459:81;18593:2;18582:9;18578:18;18572:25;18567:2;18560:5;18556:14;18549:49;18652:3;18641:9;18637:19;18631:26;18625:3;18618:5;18614:15;18607:51;18691:49;18735:3;18724:9;18720:19;18691:49;:::i;:::-;18685:3;18678:5;18674:15;18667:74;18795:3;18784:9;18780:19;18774:26;18768:3;18761:5;18757:15;18750:51;18855:3;18844:9;18840:19;18834:26;18828:3;18821:5;18817:15;18810:51;18880:3;18936:2;18925:9;18921:18;18915:25;18910:2;18903:5;18899:14;18892:49;;18960:3;18995:46;19037:2;19026:9;19022:18;18995:46;:::i;:::-;18979:14;;;18972:70;19061:3;19102:18;;;19096:25;19080:14;;;19073:49;19141:3;19182:18;;;19176:25;19160:14;;;19153:49;;;;-1:-1:-1;18983:5:168;18077:1155;-1:-1:-1;18077:1155:168:o;19237:370::-;19350:42;19342:5;19336:12;19332:61;19327:3;19320:74;19443:4;19436:5;19432:16;19426:23;19419:4;19414:3;19410:14;19403:47;19302:3;19496:4;19489:5;19485:16;19479:23;19534:4;19527;19522:3;19518:14;19511:28;19555:46;19595:4;19590:3;19586:14;19572:12;19555:46;:::i;19612:914::-;19741:12;;19707:4;19762:17;;;19828:19;;19698:14;;;19856:20;;;19668:3;;19926:4;;19953:21;;;;19903:3;19894:13;;;19668:3;20002:175;20016:6;20013:1;20010:13;20002:175;;;20079:13;;20065:28;;20152:15;;;;20115:14;;;;20038:1;20031:9;20002:175;;;20006:3;;20225:2;20218:5;20214:14;20208:21;20186:43;;20270:3;20263:5;20259:15;20254:2;20249:3;20245:12;20238:37;20298:63;20355:5;20339:14;20298:63;:::i;:::-;20284:77;;;;20409:4;20402:5;20398:16;20392:23;20459:3;20451:6;20447:16;20440:4;20435:3;20431:14;20424:40;20480;20513:6;20497:14;20480:40;:::i;20531:434::-;20761:4;20790:3;20802:41;20833:9;20825:6;20802:41;:::i;:::-;20880:2;20874:3;20863:9;20859:19;20852:31;20900:59;20955:2;20944:9;20940:18;20932:6;20900:59;:::i;20970:240::-;21150:3;21135:19;;21163:41;21139:9;21186:6;21163:41;:::i;21215:278::-;21408:2;21397:9;21390:21;21371:4;21428:59;21483:2;21472:9;21468:18;21460:6;21428:59;:::i;21498:521::-;21747:6;21736:9;21729:25;21790:6;21785:2;21774:9;21770:18;21763:34;21833:3;21828:2;21817:9;21813:18;21806:31;21710:4;21860:45;21900:3;21889:9;21885:19;21877:6;21860:45;:::i;:::-;21953:9;21945:6;21941:22;21936:2;21925:9;21921:18;21914:50;21981:32;22006:6;21998;21981:32;:::i;:::-;21973:40;21498:521;-1:-1:-1;;;;;;;21498:521:168:o;22024:1572::-;22115:6;22146:2;22189;22177:9;22168:7;22164:23;22160:32;22157:52;;;22205:1;22202;22195:12;22157:52;22245:9;22232:23;22274:18;22315:2;22307:6;22304:14;22301:34;;;22331:1;22328;22321:12;22301:34;22354:22;;;;22410:4;22392:16;;;22388:27;22385:47;;;22428:1;22425;22418:12;22385:47;22454:22;;:::i;:::-;22514:2;22501:16;22542:2;22532:8;22529:16;22526:36;;;22558:1;22555;22548:12;22526:36;22581:17;;22629:4;22621:13;;22617:27;-1:-1:-1;22607:55:168;;22658:1;22655;22648:12;22607:55;22694:2;22681:16;22716:2;22712;22709:10;22706:36;;;22722:18;;:::i;:::-;22768:2;22765:1;22761:10;22791:28;22815:2;22811;22807:11;22791:28;:::i;:::-;22853:15;;;22923:11;;;22919:20;;;22884:12;;;;22951:19;;;22948:39;;;22983:1;22980;22973:12;22948:39;23007:11;;;;23027:142;23043:6;23038:3;23035:15;23027:142;;;23109:17;;23097:30;;23060:12;;;;23147;;;;23027:142;;;23178:20;;-1:-1:-1;;;;23236:11:168;;;23223:25;23260:16;;;23257:36;;;23289:1;23286;23279:12;23257:36;23325:68;23385:7;23374:8;23370:2;23366:17;23325:68;:::i;:::-;23320:2;23313:5;23309:14;23302:92;;23440:2;23436;23432:11;23419:25;23403:41;;23469:2;23459:8;23456:16;23453:36;;;23485:1;23482;23475:12;23453:36;23521:44;23557:7;23546:8;23542:2;23538:17;23521:44;:::i;:::-;23516:2;23505:14;;23498:68;23509:5;22024:1572;-1:-1:-1;;;;;;22024:1572:168:o;23601:132::-;23668:20;;23697:30;23668:20;23697:30;:::i;23738:1114::-;23820:6;23873:3;23861:9;23852:7;23848:23;23844:33;23841:53;;;23890:1;23887;23880:12;23841:53;23916:22;;:::i;:::-;23961:29;23980:9;23961:29;:::i;:::-;23954:5;23947:44;24023:38;24057:2;24046:9;24042:18;24023:38;:::i;:::-;24018:2;24011:5;24007:14;24000:62;24094:38;24128:2;24117:9;24113:18;24094:38;:::i;:::-;24089:2;24082:5;24078:14;24071:62;24193:2;24182:9;24178:18;24165:32;24160:2;24153:5;24149:14;24142:56;24259:3;24248:9;24244:19;24231:33;24225:3;24218:5;24214:15;24207:58;24298:38;24331:3;24320:9;24316:19;24298:38;:::i;:::-;24292:3;24285:5;24281:15;24274:63;24398:3;24387:9;24383:19;24370:33;24364:3;24357:5;24353:15;24346:58;24465:3;24454:9;24450:19;24437:33;24431:3;24424:5;24420:15;24413:58;24490:3;24553:2;24542:9;24538:18;24525:32;24520:2;24513:5;24509:14;24502:56;;24577:3;24612:35;24643:2;24632:9;24628:18;24612:35;:::i;:::-;24596:14;;;24589:59;24667:3;24715:18;;;24702:32;24686:14;;;24679:56;24754:3;24802:18;;;24789:32;24773:14;;;24766:56;;;;-1:-1:-1;24600:5:168;23738:1114;-1:-1:-1;23738:1114:168:o;24857:970::-;25227:4;25256:3;25278:42;25359:2;25351:6;25347:15;25336:9;25329:34;25411:2;25403:6;25399:15;25394:2;25383:9;25379:18;25372:43;;25451:6;25446:2;25435:9;25431:18;25424:34;25494:6;25489:2;25478:9;25474:18;25467:34;25538:6;25532:3;25521:9;25517:19;25510:35;25582:2;25576:3;25565:9;25561:19;25554:31;25608:44;25648:2;25637:9;25633:18;25625:6;25608:44;:::i;:::-;25594:58;;25701:9;25693:6;25689:22;25683:3;25672:9;25668:19;25661:51;25729:32;25754:6;25746;25729:32;:::i;:::-;25721:40;;;25770:51;25816:3;25805:9;25801:19;25793:6;25770:51;:::i;25832:305::-;26043:2;26032:9;26025:21;26006:4;26063:68;26127:2;26116:9;26112:18;26104:6;26063:68;:::i;26142:708::-;26355:2;26344:9;26337:21;26318:4;26393:6;26380:20;26409:46;26449:5;26409:46;:::i;:::-;26502:42;26495:5;26491:54;26486:2;26475:9;26471:18;26464:82;;26607:2;26599:6;26595:15;26582:29;26577:2;26566:9;26562:18;26555:57;26655:55;26706:2;26698:6;26694:15;26686:6;26655:55;:::i;:::-;26748:4;26741;26730:9;26726:20;26719:34;26770:74;26839:3;26828:9;26824:19;26810:12;26796;26770:74;:::i;27042:694::-;27364:4;27393:3;27405:41;27436:9;27428:6;27405:41;:::i;:::-;27483:6;27477:3;27466:9;27462:19;27455:35;27527:2;27521:3;27510:9;27506:19;27499:31;27553:68;27617:2;27606:9;27602:18;27594:6;27553:68;:::i;:::-;27539:82;;27670:9;27662:6;27658:22;27652:3;27641:9;27637:19;27630:51;27698:32;27723:6;27715;27698:32;:::i;27741:184::-;27793:77;27790:1;27783:88;27890:4;27887:1;27880:15;27914:4;27911:1;27904:15;27930:349;27969:3;28000:66;27993:5;27990:77;27987:257;;28100:77;28097:1;28090:88;28201:4;28198:1;28191:15;28229:4;28226:1;28219:15;27987:257;-1:-1:-1;28271:1:168;28260:13;;27930:349::o", - "linkReferences": {}, - "immutableReferences": { - "53564": [ - { - "start": 808, - "length": 32 - }, - { - "start": 2346, - "length": 32 - } - ] - } - }, - "methodIdentifiers": { - "cabinet(address,bytes32)": "1c7662c8", - "create((address,bytes32,bytes),bool)": "6bfae1ca", - "createWithContext((address,bytes32,bytes),address,bytes,bool)": "0d0d9800", - "domainSeparator()": "f698da25", - "getTradeableOrderWithSignature(address,(address,bytes32,bytes),bytes,bytes32[])": "26e0a196", - "hash((address,bytes32,bytes))": "5500079d", - "isValidSafeSignature(address,address,bytes32,bytes32,bytes32,bytes,bytes)": "53f00b14", - "remove(bytes32)": "95bc2673", - "roots(address)": "a4546876", - "setRoot(bytes32,(uint256,bytes))": "1ab0dd9d", - "setRootWithContext(bytes32,(uint256,bytes),address,bytes)": "57f1d41a", - "setSwapGuard(address)": "8f7984ed", - "singleOrders(address,bytes32)": "6108c532", - "swapGuards(address)": "595001b2" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_settlement\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFallbackHandler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidHandler\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofNotAuthed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SingleOrderNotAuthed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SwapGuardRestricted\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract IConditionalOrder\",\"name\":\"handler\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct IConditionalOrder.ConditionalOrderParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"ConditionalOrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"location\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct ComposableCoW.Proof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"MerkleRootSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract ISwapGuard\",\"name\":\"swapGuard\",\"type\":\"address\"}],\"name\":\"SwapGuardSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"cabinet\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IConditionalOrder\",\"name\":\"handler\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"}],\"internalType\":\"struct IConditionalOrder.ConditionalOrderParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"dispatch\",\"type\":\"bool\"}],\"name\":\"create\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IConditionalOrder\",\"name\":\"handler\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"}],\"internalType\":\"struct IConditionalOrder.ConditionalOrderParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"contract IValueFactory\",\"name\":\"factory\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"dispatch\",\"type\":\"bool\"}],\"name\":\"createWithContext\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract IConditionalOrder\",\"name\":\"handler\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"}],\"internalType\":\"struct IConditionalOrder.ConditionalOrderParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"getTradeableOrderWithSignature\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IERC20\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sellAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"buyAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"validTo\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"appData\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"kind\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"partiallyFillable\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"sellTokenBalance\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"buyTokenBalance\",\"type\":\"bytes32\"}],\"internalType\":\"struct GPv2Order.Data\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IConditionalOrder\",\"name\":\"handler\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"}],\"internalType\":\"struct IConditionalOrder.ConditionalOrderParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"encodeData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"isValidSafeSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magic\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"singleOrderHash\",\"type\":\"bytes32\"}],\"name\":\"remove\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"location\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct ComposableCoW.Proof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"setRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"location\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct ComposableCoW.Proof\",\"name\":\"proof\",\"type\":\"tuple\"},{\"internalType\":\"contract IValueFactory\",\"name\":\"factory\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setRootWithContext\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISwapGuard\",\"name\":\"swapGuard\",\"type\":\"address\"}],\"name\":\"setSwapGuard\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"singleOrders\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"swapGuards\",\"outputs\":[{\"internalType\":\"contract ISwapGuard\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Designed to be used with Safe + ExtensibleFallbackHandler\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_settlement\":\"The GPv2 settlement contract\"}},\"create((address,bytes32,bytes),bool)\":{\"params\":{\"dispatch\":\"Whether to dispatch the `ConditionalOrderCreated` event\",\"params\":\"The parameters of the conditional order\"}},\"createWithContext((address,bytes32,bytes),address,bytes,bool)\":{\"params\":{\"data\":\"Implementation specific off-chain data\",\"dispatch\":\"Whether to dispatch the `ConditionalOrderCreated` event\",\"factory\":\"A factory from which to get a value to store in the cabinet\",\"params\":\"The parameters of the conditional order\"}},\"getTradeableOrderWithSignature(address,(address,bytes32,bytes),bytes,bytes32[])\":{\"params\":{\"offchainInput\":\"any dynamic off-chain input for generating the discrete order\",\"owner\":\"of the order\",\"params\":\"`ConditionalOrderParams` for the order\",\"proof\":\"if using merkle-roots that H(handler || salt || staticInput) is in the merkle tree\"},\"returns\":{\"order\":\"discrete order for submitting to CoW Protocol API\",\"signature\":\"for submitting to CoW Protocol API\"}},\"hash((address,bytes32,bytes))\":{\"params\":{\"params\":\"`ConditionalOrderParams` for the order\"},\"returns\":{\"_0\":\"hash of the conditional order parameters\"}},\"isValidSafeSignature(address,address,bytes32,bytes32,bytes32,bytes,bytes)\":{\"details\":\"This function does not make use of the `typeHash` parameter as CoW Protocol does not have more than one type.\",\"params\":{\"encodeData\":\"Is the abi encoded `GPv2Order.Data`\",\"payload\":\"Is the abi encoded `PayloadStruct`\"},\"returns\":{\"magic\":\"The magic value that should be returned if the signature is valid (0x1626ba7e)\"}},\"remove(bytes32)\":{\"params\":{\"singleOrderHash\":\"The hash of the single conditional order to remove\"}},\"setRoot(bytes32,(uint256,bytes))\":{\"params\":{\"proof\":\"Where to find the proofs\",\"root\":\"The merkle root of the user's conditional orders\"}},\"setRootWithContext(bytes32,(uint256,bytes),address,bytes)\":{\"params\":{\"data\":\"Implementation specific off-chain data\",\"factory\":\"A factory from which to get a value to store in the cabinet related to the merkle root\",\"proof\":\"Where to find the proofs\",\"root\":\"The merkle root of the user's conditional orders\"}},\"setSwapGuard(address)\":{\"params\":{\"swapGuard\":\"The address of the swap guard\"}}},\"stateVariables\":{\"roots\":{\"details\":\"Mapping of owner's merkle roots\"},\"singleOrders\":{\"details\":\"Mapping of owner's single orders\"}},\"title\":\"ComposableCoW - A contract that allows users to create multiple conditional orders\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"create((address,bytes32,bytes),bool)\":{\"notice\":\"Authorise a single conditional order\"},\"createWithContext((address,bytes32,bytes),address,bytes,bool)\":{\"notice\":\"Authorise a single conditional order and store a value from on-chain in the cabinet\"},\"getTradeableOrderWithSignature(address,(address,bytes32,bytes),bytes,bytes32[])\":{\"notice\":\"Get the `GPv2Order.Data` and signature for submitting to CoW Protocol API\"},\"hash((address,bytes32,bytes))\":{\"notice\":\"Return the hash of the conditional order parameters\"},\"remove(bytes32)\":{\"notice\":\"Remove the authorisation of a single conditional order\"},\"setRoot(bytes32,(uint256,bytes))\":{\"notice\":\"Set the merkle root of the user's conditional ordersSet the merkle root of the user's conditional orders\"},\"setRootWithContext(bytes32,(uint256,bytes),address,bytes)\":{\"notice\":\"Set the merkle root of the user's conditional orders and store a value from on-chain in the cabinet\"},\"setSwapGuard(address)\":{\"notice\":\"Set the swap guard of the user's conditional orders\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/ComposableCoW.sol\":\"ComposableCoW\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/contracts/\",\":@openzeppelin/contracts/=lib/@openzeppelin/contracts/\",\":balancer/=lib/balancer/src/\",\":canonical-weth/=lib/canonical-weth/src/\",\":cowprotocol/=lib/cowprotocol/src/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/@openzeppelin/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":helpers/=lib/balancer/src/lib/helpers/\",\":math/=lib/balancer/src/lib/math/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/murky/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/@openzeppelin/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"lib/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"lib/cowprotocol/src/contracts/libraries/GPv2Interaction.sol\":{\"keccak256\":\"0xb950f05f76ac8044b82314ea5510941fdbc0f0e76e7f159023d435652b429528\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://c081155e1b18c060aaab781b4887744413efffdfc55ce190db45c321444f165f\",\"dweb:/ipfs/QmbK3Qu7ZgwBfx2Es5EQcvG6q2srkHjzfNK2ziQ4ojxLSF\"]},\"lib/cowprotocol/src/contracts/libraries/GPv2Order.sol\":{\"keccak256\":\"0xffd0cc3de3209aa38045d57def570ccbde028a39a54b00c696dbe19f4f6d7f9f\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://5714a47cae551d3364bfc6a753d92822b29d277298e55942a2814ed1e2afd87d\",\"dweb:/ipfs/QmS2G8ftdhk11qoSYHX8twZK5vFArhcnVVe6gy5UGTvXmg\"]},\"lib/safe/contracts/Safe.sol\":{\"keccak256\":\"0xbab2f7bec33283e349342e7b23f5191c678c64fe02065bac4f4f44fb3f5d2638\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://f95884e85691d49ba3efb9b2a160466fed17377bfa92fc8bf5923f3c61e99119\",\"dweb:/ipfs/QmQjhP9RnB3Cj3DNpWLzWqqvRdKBya6Efx6xzmRrwLqjm9\"]},\"lib/safe/contracts/base/Executor.sol\":{\"keccak256\":\"0xf0be832e7529e92000544170a5529d73666a9b5e836b30c6f2ed6ef7d7d8c94a\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://710022b40c9f78a5b55b97f6ce600e4834df2ddd36bf714974d953883c82d58c\",\"dweb:/ipfs/QmbdJNKH5opevm7HxQKQAe6W7dQTgSHKa4nKvbUNGRcQQp\"]},\"lib/safe/contracts/base/FallbackManager.sol\":{\"keccak256\":\"0x646b3088f15af8b4f71ac5eeffaa24ce0c1abed5f494f90368208b09e35d5165\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://7975be46d228510c70659b18076aecb3b0e7331b4d3a162444304145143bdc6e\",\"dweb:/ipfs/QmRRbZrWUnoky6pVo8zMUzCTsshR4sZ2FjR13s8vyAb8dV\"]},\"lib/safe/contracts/base/GuardManager.sol\":{\"keccak256\":\"0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64\",\"dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx\"]},\"lib/safe/contracts/base/ModuleManager.sol\":{\"keccak256\":\"0xd71b0d56dce386fa6f67c51061face071b2c7b03ec535d68717e2538ec47113a\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://30812896d9f57cae84a432c67fbb3007d566071ec203b2992f1c0f762722df0d\",\"dweb:/ipfs/QmRyJ3JbsUwDQxQDTrqDDX4qNtVu7XiW8cD8WP5kgNJGGz\"]},\"lib/safe/contracts/base/OwnerManager.sol\":{\"keccak256\":\"0xec9799093eb7a73461cd5e563198751ee222f956f754ea622a03fe953e515b2c\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://5729c58b14e7b656c71dd3377e9519c0d34ef8c04851a9a21c3d62393e4fae7a\",\"dweb:/ipfs/QmRRtfFpNqvdANny9TYBr8rA3HbT1egUCpb2uXALMHkVxK\"]},\"lib/safe/contracts/common/Enum.sol\":{\"keccak256\":\"0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34\",\"dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo\"]},\"lib/safe/contracts/common/NativeCurrencyPaymentFallback.sol\":{\"keccak256\":\"0x3ddcd4130c67326033dcf773d2d87d7147e3a8386993ea3ab3f1c38da406adba\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://740a729397b6a0d903f4738a50e856d4e5039555024937b148d97529525dbfa9\",\"dweb:/ipfs/QmQJuNVvHbkeJ6jjd75D8FsZBPXH6neoGBZdQgtsA82E7g\"]},\"lib/safe/contracts/common/SecuredTokenTransfer.sol\":{\"keccak256\":\"0x1eb8c3601538b73dd6a823ac4fca49bb8adc97d1302a936622156636c971eb05\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://c26495b1fe9229ea17f90b70f295030880d629b9ea3016ea20b634983865f7b3\",\"dweb:/ipfs/QmTc1UmKcynkKn8DeviLMuy6scxNvAVSdLoX4ndUtdEL9N\"]},\"lib/safe/contracts/common/SelfAuthorized.sol\":{\"keccak256\":\"0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3\",\"dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu\"]},\"lib/safe/contracts/common/SignatureDecoder.sol\":{\"keccak256\":\"0x2a3baf0efa1585ddf2276505c6d34fa16f01cafff1288e40110d5e67fb459c7c\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://00cdded3068b9051ee0a966f40926fbc57dbe7ef8bf4285db3740f9d50468c80\",\"dweb:/ipfs/QmcP5hKmaRqBe7TpgoXtncZqsNKKdCCKxZgXoxEL4Nj5F4\"]},\"lib/safe/contracts/common/Singleton.sol\":{\"keccak256\":\"0xcab7c6e5fb6d7295a9343f72fec26a2f632ddfe220a6f267b5c5a1eb2f9bce50\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://dd1c31d5787ef590a60f6b0dbc74d09e6fe4d3ad2f0529940d662bf315521cde\",\"dweb:/ipfs/QmSAS5DYrGksJe4cPQ4wLrveXa1CjxAuEiohcLpPG5h2bo\"]},\"lib/safe/contracts/common/StorageAccessible.sol\":{\"keccak256\":\"0x2c5412a8f014db332322a6b24ee3cedce15dca17a721ae49fdef368568d4391e\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://e775f267d3e60ebe452d9533f46a0eb1f1dc4593d1bcb553e86cea205a5f361e\",\"dweb:/ipfs/QmQdYDHGQsiMx1AADWRhX7tduU9ycTzrT5q3zBWvphXzKZ\"]},\"lib/safe/contracts/external/SafeMath.sol\":{\"keccak256\":\"0x5f856674d9be11344c5899deb43364e19baa75bc881cada4c159938270b2bd89\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://351c66e5fe92c0a51f79d133521545dabdd3f756312a7b1428c1fc813c512a1c\",\"dweb:/ipfs/QmdnrRmgef8SdamEU6fVEqFD5RQwXeDFTfQuZEfX2vxC4x\"]},\"lib/safe/contracts/handler/ExtensibleFallbackHandler.sol\":{\"keccak256\":\"0x7e511290dae21c9b1710c9250320d9b98ffd71c9501af354814485b58e1b64e9\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3e55ba23bde90d2cdd07baa7172ea41bdc1d638bc7b6eb5dce03189d86412515\",\"dweb:/ipfs/QmbxH73sqooeQL8ehsP2FDoXhLBoPs3wr3nod6ZgJwVcFV\"]},\"lib/safe/contracts/handler/HandlerContext.sol\":{\"keccak256\":\"0x3e105ebac003af9c8d34e3eed517ff0355d5f487e17478c85df0f225b04846f5\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://657bec347d746453883c461a3d9a2275bf2b99625dcaef0960e1c0276c3d56c4\",\"dweb:/ipfs/QmUGj8Tzs1CsmUf63LbTMK81EEGtYYnWKLGdHHtoYCd9CF\"]},\"lib/safe/contracts/handler/extensible/Base.sol\":{\"keccak256\":\"0xe5b71121b0020728158ee60756982e74809f9d77cb294a6d65930bff09d84d15\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fd7fd2702b31fc8569a9986a476dd9fe9aa76624d0da6d832547f624426925f9\",\"dweb:/ipfs/QmWjYGtW38Fnwvm8qFvoJYhz2nTuySGkHouwRF3eksd6Nh\"]},\"lib/safe/contracts/handler/extensible/ERC165Handler.sol\":{\"keccak256\":\"0x6e19ba1deb09a34cca28891bfefd853697b808dfb8a9cddd4051d3058d3eb718\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://0b1059e752bd142160a4fbe8ee08377a50902d31b8b909df002480d191af0cf4\",\"dweb:/ipfs/QmbuUmvgoodsZGgqR793duEWF5t7h6USAXfpr2N1VvBmeP\"]},\"lib/safe/contracts/handler/extensible/FallbackHandler.sol\":{\"keccak256\":\"0xbe7db6cbdb034c9aee1eae12200ab2e94fa4743ae08dbba2f1a001c4b62f3e0b\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://4fbba0ea04349873b38f7c7104d0a88ffd6e7ec399a3fdd0e1297ce12eebb19e\",\"dweb:/ipfs/QmYiDukcX2y7ratxsMX6hLMKzGQTD67CKLpuiSpgm1HGue\"]},\"lib/safe/contracts/handler/extensible/MarshalLib.sol\":{\"keccak256\":\"0x531476118b7948b06a0c7094badd6f1ae33ae2ddca815110030e87ee62c4a895\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://f21ad2619b5bcbc977c5943d2f668e8bfb9ef6968db1193415e046171a5a150a\",\"dweb:/ipfs/QmYZeu3vr6eRWjeYp8GvWSVRLm9baFbTyEGgAy2hMAqbLX\"]},\"lib/safe/contracts/handler/extensible/SignatureVerifierMuxer.sol\":{\"keccak256\":\"0xc60a1d55ff0cf532a44bd864683719e3d6e1fa6d20d4c77812e21c33afecf304\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://298c7efe668a4ca8d3b712770973931d604c84304aececd621f0350d7d293b68\",\"dweb:/ipfs/QmVcNdQ7ZsnmDgSX8TFRLHk4HZUXH86u2akAM5q3g1PFfZ\"]},\"lib/safe/contracts/handler/extensible/TokenCallbacks.sol\":{\"keccak256\":\"0xfb0f8f01a7191ab358f196a7e055441ede00f36805f12c579a742a5cd3c4f8d7\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://0d485ea9fc430a89953ffe2d2c7032b5a330f086bbb784e81eb6b00a692f6438\",\"dweb:/ipfs/QmNofKrkU9VTtGMN9Rc6js2jyUscSFxce8kjBz5rZL4RSJ\"]},\"lib/safe/contracts/interfaces/ERC1155TokenReceiver.sol\":{\"keccak256\":\"0x87e62665c041cade64e753ecdccf931cb100ab6e4bcc98769c1e6474be9db493\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://59ca1157dcfe19c72b9d1244a6ae5ec70fee9793d4d8af523b70f22ae567d55c\",\"dweb:/ipfs/QmfE3kv73QuQWAWQND927LWVHVLCp19m1mLUvxVYJDEFZM\"]},\"lib/safe/contracts/interfaces/ERC721TokenReceiver.sol\":{\"keccak256\":\"0x96c4c5457fede2d4c6012011dfda36f8e8ffdb7388468f2dddb35661538bf479\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://99a54737bc23722f79ec9cf9de63ba35b556a61df453eb332f3cac783503f26c\",\"dweb:/ipfs/QmbLW5C2RhoLbwDWEPtTKpyYE5apT9B3q4U11PZG3wSM1n\"]},\"lib/safe/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"lib/safe/contracts/interfaces/ISignatureValidator.sol\":{\"keccak256\":\"0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25\",\"dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978\"]},\"src/ComposableCoW.sol\":{\"keccak256\":\"0x565c6fabc8a1e185acfb4539baeb7e3cabb004b54da2c777cbdbb3c98dbd6a52\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b876b6b4a69f69b7f9445e67a0e60dd7a65f028d54ba9c4c8c983a00ee23642\",\"dweb:/ipfs/Qmf95tsR515WFv2yBKp4NzhFc9xvfZRtS194Lq7SY2r7zC\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699\",\"dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ\"]},\"src/interfaces/ISwapGuard.sol\":{\"keccak256\":\"0x60abdef709d22cb95e4b1d4680cb70d5286cfb5aa71ec65868cc44164ef8790f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7593245e22ffc533a073891affdbb003fa56eaa5ef7f0202a673b52968ad7ed5\",\"dweb:/ipfs/QmRhAvNzbHp8qfrw7eHZP6EDWw42tXMXSV3KuyhyxFy3Nx\"]},\"src/interfaces/IValueFactory.sol\":{\"keccak256\":\"0x3304ef8a0a1727258ac8278bf5426daeac37ece4653eaaff87b15143814a8122\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9934d278069dd9474065777833a81e65af227b85d350b6c1f012b812101be9de\",\"dweb:/ipfs/QmcMBdvY7wLs92FCyutDGQGtHnYryjnaykREvDNBNM8Yih\"]},\"src/vendored/CoWSettlement.sol\":{\"keccak256\":\"0x4e4e317b24017cd87eb11d16368b8c06ec19306d31946c330a86f9f136df38d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34b9b2fc2c89e60497457cd812da9c53718c15ddfbf70f6e11832d22092c1840\",\"dweb:/ipfs/QmYFzaynWZfdpmFRf2dZrQ32Ep53AtQDd5fTE3a89xVkaR\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.19+commit.7dd6d404" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_settlement", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "type": "error", - "name": "InterfaceNotSupported" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidFallbackHandler" - }, - { - "inputs": [], - "type": "error", - "name": "InvalidHandler" - }, - { - "inputs": [], - "type": "error", - "name": "ProofNotAuthed" - }, - { - "inputs": [], - "type": "error", - "name": "SingleOrderNotAuthed" - }, - { - "inputs": [], - "type": "error", - "name": "SwapGuardRestricted" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "struct IConditionalOrder.ConditionalOrderParams", - "name": "params", - "type": "tuple", - "components": [ - { - "internalType": "contract IConditionalOrder", - "name": "handler", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "staticInput", - "type": "bytes" - } - ], - "indexed": false - } - ], - "type": "event", - "name": "ConditionalOrderCreated", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "bytes32", - "name": "root", - "type": "bytes32", - "indexed": false - }, - { - "internalType": "struct ComposableCoW.Proof", - "name": "proof", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "location", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "indexed": false - } - ], - "type": "event", - "name": "MerkleRootSet", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "contract ISwapGuard", - "name": "swapGuard", - "type": "address", - "indexed": false - } - ], - "type": "event", - "name": "SwapGuardSet", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "cabinet", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct IConditionalOrder.ConditionalOrderParams", - "name": "params", - "type": "tuple", - "components": [ - { - "internalType": "contract IConditionalOrder", - "name": "handler", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "staticInput", - "type": "bytes" - } - ] - }, - { - "internalType": "bool", - "name": "dispatch", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "create" - }, - { - "inputs": [ - { - "internalType": "struct IConditionalOrder.ConditionalOrderParams", - "name": "params", - "type": "tuple", - "components": [ - { - "internalType": "contract IConditionalOrder", - "name": "handler", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "staticInput", - "type": "bytes" - } - ] - }, - { - "internalType": "contract IValueFactory", - "name": "factory", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "dispatch", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "createWithContext" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "struct IConditionalOrder.ConditionalOrderParams", - "name": "params", - "type": "tuple", - "components": [ - { - "internalType": "contract IConditionalOrder", - "name": "handler", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "staticInput", - "type": "bytes" - } - ] - }, - { - "internalType": "bytes", - "name": "offchainInput", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "proof", - "type": "bytes32[]" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getTradeableOrderWithSignature", - "outputs": [ - { - "internalType": "struct GPv2Order.Data", - "name": "order", - "type": "tuple", - "components": [ - { - "internalType": "contract IERC20", - "name": "sellToken", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "buyToken", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "sellAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyAmount", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "validTo", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "appData", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "kind", - "type": "bytes32" - }, - { - "internalType": "bool", - "name": "partiallyFillable", - "type": "bool" - }, - { - "internalType": "bytes32", - "name": "sellTokenBalance", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "buyTokenBalance", - "type": "bytes32" - } - ] - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct IConditionalOrder.ConditionalOrderParams", - "name": "params", - "type": "tuple", - "components": [ - { - "internalType": "contract IConditionalOrder", - "name": "handler", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "staticInput", - "type": "bytes" - } - ] - } - ], - "stateMutability": "pure", - "type": "function", - "name": "hash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "contract Safe", - "name": "safe", - "type": "address" - }, - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_domainSeparator", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "encodeData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "payload", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function", - "name": "isValidSafeSignature", - "outputs": [ - { - "internalType": "bytes4", - "name": "magic", - "type": "bytes4" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "singleOrderHash", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "remove" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "roots", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "root", - "type": "bytes32" - }, - { - "internalType": "struct ComposableCoW.Proof", - "name": "proof", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "location", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setRoot" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "root", - "type": "bytes32" - }, - { - "internalType": "struct ComposableCoW.Proof", - "name": "proof", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "location", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ] - }, - { - "internalType": "contract IValueFactory", - "name": "factory", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setRootWithContext" - }, - { - "inputs": [ - { - "internalType": "contract ISwapGuard", - "name": "swapGuard", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setSwapGuard" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "singleOrders", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "swapGuards", - "outputs": [ - { - "internalType": "contract ISwapGuard", - "name": "", - "type": "address" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "constructor": { - "params": { - "_settlement": "The GPv2 settlement contract" - } - }, - "create((address,bytes32,bytes),bool)": { - "params": { - "dispatch": "Whether to dispatch the `ConditionalOrderCreated` event", - "params": "The parameters of the conditional order" - } - }, - "createWithContext((address,bytes32,bytes),address,bytes,bool)": { - "params": { - "data": "Implementation specific off-chain data", - "dispatch": "Whether to dispatch the `ConditionalOrderCreated` event", - "factory": "A factory from which to get a value to store in the cabinet", - "params": "The parameters of the conditional order" - } - }, - "getTradeableOrderWithSignature(address,(address,bytes32,bytes),bytes,bytes32[])": { - "params": { - "offchainInput": "any dynamic off-chain input for generating the discrete order", - "owner": "of the order", - "params": "`ConditionalOrderParams` for the order", - "proof": "if using merkle-roots that H(handler || salt || staticInput) is in the merkle tree" - }, - "returns": { - "order": "discrete order for submitting to CoW Protocol API", - "signature": "for submitting to CoW Protocol API" - } - }, - "hash((address,bytes32,bytes))": { - "params": { - "params": "`ConditionalOrderParams` for the order" - }, - "returns": { - "_0": "hash of the conditional order parameters" - } - }, - "isValidSafeSignature(address,address,bytes32,bytes32,bytes32,bytes,bytes)": { - "details": "This function does not make use of the `typeHash` parameter as CoW Protocol does not have more than one type.", - "params": { - "encodeData": "Is the abi encoded `GPv2Order.Data`", - "payload": "Is the abi encoded `PayloadStruct`" - }, - "returns": { - "magic": "The magic value that should be returned if the signature is valid (0x1626ba7e)" - } - }, - "remove(bytes32)": { - "params": { - "singleOrderHash": "The hash of the single conditional order to remove" - } - }, - "setRoot(bytes32,(uint256,bytes))": { - "params": { - "proof": "Where to find the proofs", - "root": "The merkle root of the user's conditional orders" - } - }, - "setRootWithContext(bytes32,(uint256,bytes),address,bytes)": { - "params": { - "data": "Implementation specific off-chain data", - "factory": "A factory from which to get a value to store in the cabinet related to the merkle root", - "proof": "Where to find the proofs", - "root": "The merkle root of the user's conditional orders" - } - }, - "setSwapGuard(address)": { - "params": { - "swapGuard": "The address of the swap guard" - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "create((address,bytes32,bytes),bool)": { - "notice": "Authorise a single conditional order" - }, - "createWithContext((address,bytes32,bytes),address,bytes,bool)": { - "notice": "Authorise a single conditional order and store a value from on-chain in the cabinet" - }, - "getTradeableOrderWithSignature(address,(address,bytes32,bytes),bytes,bytes32[])": { - "notice": "Get the `GPv2Order.Data` and signature for submitting to CoW Protocol API" - }, - "hash((address,bytes32,bytes))": { - "notice": "Return the hash of the conditional order parameters" - }, - "remove(bytes32)": { - "notice": "Remove the authorisation of a single conditional order" - }, - "setRoot(bytes32,(uint256,bytes))": { - "notice": "Set the merkle root of the user's conditional ordersSet the merkle root of the user's conditional orders" - }, - "setRootWithContext(bytes32,(uint256,bytes),address,bytes)": { - "notice": "Set the merkle root of the user's conditional orders and store a value from on-chain in the cabinet" - }, - "setSwapGuard(address)": { - "notice": "Set the swap guard of the user's conditional orders" - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - ":@openzeppelin/=lib/@openzeppelin/contracts/", - ":@openzeppelin/contracts/=lib/@openzeppelin/contracts/", - ":balancer/=lib/balancer/src/", - ":canonical-weth/=lib/canonical-weth/src/", - ":cowprotocol/=lib/cowprotocol/src/contracts/", - ":ds-test/=lib/forge-std/lib/ds-test/src/", - ":erc4626-tests/=lib/@openzeppelin/lib/erc4626-tests/", - ":forge-std/=lib/forge-std/src/", - ":helpers/=lib/balancer/src/lib/helpers/", - ":math/=lib/balancer/src/lib/math/", - ":murky/=lib/murky/src/", - ":openzeppelin-contracts/=lib/murky/lib/openzeppelin-contracts/", - ":openzeppelin/=lib/@openzeppelin/contracts/", - ":safe/=lib/safe/contracts/" - ], - "optimizer": { - "enabled": true, - "runs": 20000 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/ComposableCoW.sol": "ComposableCoW" - }, - "libraries": {} - }, - "sources": { - "lib/@openzeppelin/contracts/interfaces/IERC20.sol": { - "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", - "urls": [ - "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", - "dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq" - ], - "license": "MIT" - }, - "lib/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", - "urls": [ - "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", - "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" - ], - "license": "MIT" - }, - "lib/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol": { - "keccak256": "0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac", - "urls": [ - "bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04", - "dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG" - ], - "license": "MIT" - }, - "lib/cowprotocol/src/contracts/libraries/GPv2Interaction.sol": { - "keccak256": "0xb950f05f76ac8044b82314ea5510941fdbc0f0e76e7f159023d435652b429528", - "urls": [ - "bzz-raw://c081155e1b18c060aaab781b4887744413efffdfc55ce190db45c321444f165f", - "dweb:/ipfs/QmbK3Qu7ZgwBfx2Es5EQcvG6q2srkHjzfNK2ziQ4ojxLSF" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/libraries/GPv2Order.sol": { - "keccak256": "0xffd0cc3de3209aa38045d57def570ccbde028a39a54b00c696dbe19f4f6d7f9f", - "urls": [ - "bzz-raw://5714a47cae551d3364bfc6a753d92822b29d277298e55942a2814ed1e2afd87d", - "dweb:/ipfs/QmS2G8ftdhk11qoSYHX8twZK5vFArhcnVVe6gy5UGTvXmg" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/safe/contracts/Safe.sol": { - "keccak256": "0xbab2f7bec33283e349342e7b23f5191c678c64fe02065bac4f4f44fb3f5d2638", - "urls": [ - "bzz-raw://f95884e85691d49ba3efb9b2a160466fed17377bfa92fc8bf5923f3c61e99119", - "dweb:/ipfs/QmQjhP9RnB3Cj3DNpWLzWqqvRdKBya6Efx6xzmRrwLqjm9" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/base/Executor.sol": { - "keccak256": "0xf0be832e7529e92000544170a5529d73666a9b5e836b30c6f2ed6ef7d7d8c94a", - "urls": [ - "bzz-raw://710022b40c9f78a5b55b97f6ce600e4834df2ddd36bf714974d953883c82d58c", - "dweb:/ipfs/QmbdJNKH5opevm7HxQKQAe6W7dQTgSHKa4nKvbUNGRcQQp" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/base/FallbackManager.sol": { - "keccak256": "0x646b3088f15af8b4f71ac5eeffaa24ce0c1abed5f494f90368208b09e35d5165", - "urls": [ - "bzz-raw://7975be46d228510c70659b18076aecb3b0e7331b4d3a162444304145143bdc6e", - "dweb:/ipfs/QmRRbZrWUnoky6pVo8zMUzCTsshR4sZ2FjR13s8vyAb8dV" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/base/GuardManager.sol": { - "keccak256": "0xedfc7c830ab35e52d1208986b253f3422c2f0ca68054c10819fb348fcc6ccf5d", - "urls": [ - "bzz-raw://3ff8a4194d1160d2e23142937bc9d7eac7b6b553b1ee226390a0df07ebac1b64", - "dweb:/ipfs/QmSw8Y7z4TQrUTEosdWqcug7TUv9Tg1kxqMKHd7RuTnyzx" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/base/ModuleManager.sol": { - "keccak256": "0xd71b0d56dce386fa6f67c51061face071b2c7b03ec535d68717e2538ec47113a", - "urls": [ - "bzz-raw://30812896d9f57cae84a432c67fbb3007d566071ec203b2992f1c0f762722df0d", - "dweb:/ipfs/QmRyJ3JbsUwDQxQDTrqDDX4qNtVu7XiW8cD8WP5kgNJGGz" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/base/OwnerManager.sol": { - "keccak256": "0xec9799093eb7a73461cd5e563198751ee222f956f754ea622a03fe953e515b2c", - "urls": [ - "bzz-raw://5729c58b14e7b656c71dd3377e9519c0d34ef8c04851a9a21c3d62393e4fae7a", - "dweb:/ipfs/QmRRtfFpNqvdANny9TYBr8rA3HbT1egUCpb2uXALMHkVxK" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/common/Enum.sol": { - "keccak256": "0x4ff3008926a118e9f36e6747facc39dd13168e0d00f516888ae966ec20766453", - "urls": [ - "bzz-raw://385929800d1c0f92eb165fcf37a9e28b395b17d8b74f74755654d3a096a0fc34", - "dweb:/ipfs/QmagieLuN2jrp2oJHFyZuyz65Sh1CcupnXSEKypGFS5Gvo" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/common/NativeCurrencyPaymentFallback.sol": { - "keccak256": "0x3ddcd4130c67326033dcf773d2d87d7147e3a8386993ea3ab3f1c38da406adba", - "urls": [ - "bzz-raw://740a729397b6a0d903f4738a50e856d4e5039555024937b148d97529525dbfa9", - "dweb:/ipfs/QmQJuNVvHbkeJ6jjd75D8FsZBPXH6neoGBZdQgtsA82E7g" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/common/SecuredTokenTransfer.sol": { - "keccak256": "0x1eb8c3601538b73dd6a823ac4fca49bb8adc97d1302a936622156636c971eb05", - "urls": [ - "bzz-raw://c26495b1fe9229ea17f90b70f295030880d629b9ea3016ea20b634983865f7b3", - "dweb:/ipfs/QmTc1UmKcynkKn8DeviLMuy6scxNvAVSdLoX4ndUtdEL9N" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/common/SelfAuthorized.sol": { - "keccak256": "0xfb0e176bb208e047a234fe757e2acd13787e27879570b8544547ac787feb5f13", - "urls": [ - "bzz-raw://8e9a317f0c3c02ab1d6c38039bff2b3e0c97f4dc9d229d3d9149c1af1c5023b3", - "dweb:/ipfs/QmNcZjNChsuXF34T6f3Zu7i3tnqvKN4NyWBWZ4tXLH9kMu" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/common/SignatureDecoder.sol": { - "keccak256": "0x2a3baf0efa1585ddf2276505c6d34fa16f01cafff1288e40110d5e67fb459c7c", - "urls": [ - "bzz-raw://00cdded3068b9051ee0a966f40926fbc57dbe7ef8bf4285db3740f9d50468c80", - "dweb:/ipfs/QmcP5hKmaRqBe7TpgoXtncZqsNKKdCCKxZgXoxEL4Nj5F4" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/common/Singleton.sol": { - "keccak256": "0xcab7c6e5fb6d7295a9343f72fec26a2f632ddfe220a6f267b5c5a1eb2f9bce50", - "urls": [ - "bzz-raw://dd1c31d5787ef590a60f6b0dbc74d09e6fe4d3ad2f0529940d662bf315521cde", - "dweb:/ipfs/QmSAS5DYrGksJe4cPQ4wLrveXa1CjxAuEiohcLpPG5h2bo" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/common/StorageAccessible.sol": { - "keccak256": "0x2c5412a8f014db332322a6b24ee3cedce15dca17a721ae49fdef368568d4391e", - "urls": [ - "bzz-raw://e775f267d3e60ebe452d9533f46a0eb1f1dc4593d1bcb553e86cea205a5f361e", - "dweb:/ipfs/QmQdYDHGQsiMx1AADWRhX7tduU9ycTzrT5q3zBWvphXzKZ" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/external/SafeMath.sol": { - "keccak256": "0x5f856674d9be11344c5899deb43364e19baa75bc881cada4c159938270b2bd89", - "urls": [ - "bzz-raw://351c66e5fe92c0a51f79d133521545dabdd3f756312a7b1428c1fc813c512a1c", - "dweb:/ipfs/QmdnrRmgef8SdamEU6fVEqFD5RQwXeDFTfQuZEfX2vxC4x" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/handler/ExtensibleFallbackHandler.sol": { - "keccak256": "0x7e511290dae21c9b1710c9250320d9b98ffd71c9501af354814485b58e1b64e9", - "urls": [ - "bzz-raw://3e55ba23bde90d2cdd07baa7172ea41bdc1d638bc7b6eb5dce03189d86412515", - "dweb:/ipfs/QmbxH73sqooeQL8ehsP2FDoXhLBoPs3wr3nod6ZgJwVcFV" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/handler/HandlerContext.sol": { - "keccak256": "0x3e105ebac003af9c8d34e3eed517ff0355d5f487e17478c85df0f225b04846f5", - "urls": [ - "bzz-raw://657bec347d746453883c461a3d9a2275bf2b99625dcaef0960e1c0276c3d56c4", - "dweb:/ipfs/QmUGj8Tzs1CsmUf63LbTMK81EEGtYYnWKLGdHHtoYCd9CF" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/handler/extensible/Base.sol": { - "keccak256": "0xe5b71121b0020728158ee60756982e74809f9d77cb294a6d65930bff09d84d15", - "urls": [ - "bzz-raw://fd7fd2702b31fc8569a9986a476dd9fe9aa76624d0da6d832547f624426925f9", - "dweb:/ipfs/QmWjYGtW38Fnwvm8qFvoJYhz2nTuySGkHouwRF3eksd6Nh" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/handler/extensible/ERC165Handler.sol": { - "keccak256": "0x6e19ba1deb09a34cca28891bfefd853697b808dfb8a9cddd4051d3058d3eb718", - "urls": [ - "bzz-raw://0b1059e752bd142160a4fbe8ee08377a50902d31b8b909df002480d191af0cf4", - "dweb:/ipfs/QmbuUmvgoodsZGgqR793duEWF5t7h6USAXfpr2N1VvBmeP" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/handler/extensible/FallbackHandler.sol": { - "keccak256": "0xbe7db6cbdb034c9aee1eae12200ab2e94fa4743ae08dbba2f1a001c4b62f3e0b", - "urls": [ - "bzz-raw://4fbba0ea04349873b38f7c7104d0a88ffd6e7ec399a3fdd0e1297ce12eebb19e", - "dweb:/ipfs/QmYiDukcX2y7ratxsMX6hLMKzGQTD67CKLpuiSpgm1HGue" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/handler/extensible/MarshalLib.sol": { - "keccak256": "0x531476118b7948b06a0c7094badd6f1ae33ae2ddca815110030e87ee62c4a895", - "urls": [ - "bzz-raw://f21ad2619b5bcbc977c5943d2f668e8bfb9ef6968db1193415e046171a5a150a", - "dweb:/ipfs/QmYZeu3vr6eRWjeYp8GvWSVRLm9baFbTyEGgAy2hMAqbLX" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/handler/extensible/SignatureVerifierMuxer.sol": { - "keccak256": "0xc60a1d55ff0cf532a44bd864683719e3d6e1fa6d20d4c77812e21c33afecf304", - "urls": [ - "bzz-raw://298c7efe668a4ca8d3b712770973931d604c84304aececd621f0350d7d293b68", - "dweb:/ipfs/QmVcNdQ7ZsnmDgSX8TFRLHk4HZUXH86u2akAM5q3g1PFfZ" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/handler/extensible/TokenCallbacks.sol": { - "keccak256": "0xfb0f8f01a7191ab358f196a7e055441ede00f36805f12c579a742a5cd3c4f8d7", - "urls": [ - "bzz-raw://0d485ea9fc430a89953ffe2d2c7032b5a330f086bbb784e81eb6b00a692f6438", - "dweb:/ipfs/QmNofKrkU9VTtGMN9Rc6js2jyUscSFxce8kjBz5rZL4RSJ" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/interfaces/ERC1155TokenReceiver.sol": { - "keccak256": "0x87e62665c041cade64e753ecdccf931cb100ab6e4bcc98769c1e6474be9db493", - "urls": [ - "bzz-raw://59ca1157dcfe19c72b9d1244a6ae5ec70fee9793d4d8af523b70f22ae567d55c", - "dweb:/ipfs/QmfE3kv73QuQWAWQND927LWVHVLCp19m1mLUvxVYJDEFZM" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/interfaces/ERC721TokenReceiver.sol": { - "keccak256": "0x96c4c5457fede2d4c6012011dfda36f8e8ffdb7388468f2dddb35661538bf479", - "urls": [ - "bzz-raw://99a54737bc23722f79ec9cf9de63ba35b556a61df453eb332f3cac783503f26c", - "dweb:/ipfs/QmbLW5C2RhoLbwDWEPtTKpyYE5apT9B3q4U11PZG3wSM1n" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/interfaces/IERC165.sol": { - "keccak256": "0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb", - "urls": [ - "bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89", - "dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38" - ], - "license": "LGPL-3.0-only" - }, - "lib/safe/contracts/interfaces/ISignatureValidator.sol": { - "keccak256": "0x2459cb3ed73ecb80e1e7a6508d09a58cc59570b049f77042f669dedfcc5f6457", - "urls": [ - "bzz-raw://3c4a1371948b11f78171bc4ae4fd169a1eec11e5c4b273eb2c54bc030a1aae25", - "dweb:/ipfs/QmPuztatXZYVS65n8YbCyccJFZYPP6zQfBQ8tTY27pB978" - ], - "license": "LGPL-3.0-only" - }, - "src/ComposableCoW.sol": { - "keccak256": "0x565c6fabc8a1e185acfb4539baeb7e3cabb004b54da2c777cbdbb3c98dbd6a52", - "urls": [ - "bzz-raw://2b876b6b4a69f69b7f9445e67a0e60dd7a65f028d54ba9c4c8c983a00ee23642", - "dweb:/ipfs/Qmf95tsR515WFv2yBKp4NzhFc9xvfZRtS194Lq7SY2r7zC" - ], - "license": "GPL-3.0" - }, - "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", - "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" - ], - "license": "GPL-3.0" - }, - "src/interfaces/ISwapGuard.sol": { - "keccak256": "0x60abdef709d22cb95e4b1d4680cb70d5286cfb5aa71ec65868cc44164ef8790f", - "urls": [ - "bzz-raw://7593245e22ffc533a073891affdbb003fa56eaa5ef7f0202a673b52968ad7ed5", - "dweb:/ipfs/QmRhAvNzbHp8qfrw7eHZP6EDWw42tXMXSV3KuyhyxFy3Nx" - ], - "license": "GPL-3.0" - }, - "src/interfaces/IValueFactory.sol": { - "keccak256": "0x3304ef8a0a1727258ac8278bf5426daeac37ece4653eaaff87b15143814a8122", - "urls": [ - "bzz-raw://9934d278069dd9474065777833a81e65af227b85d350b6c1f012b812101be9de", - "dweb:/ipfs/QmcMBdvY7wLs92FCyutDGQGtHnYryjnaykREvDNBNM8Yih" - ], - "license": "GPL-3.0" - }, - "src/vendored/CoWSettlement.sol": { - "keccak256": "0x4e4e317b24017cd87eb11d16368b8c06ec19306d31946c330a86f9f136df38d7", - "urls": [ - "bzz-raw://34b9b2fc2c89e60497457cd812da9c53718c15ddfbf70f6e11832d22092c1840", - "dweb:/ipfs/QmYFzaynWZfdpmFRf2dZrQ32Ep53AtQDd5fTE3a89xVkaR" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/ComposableCoW.sol", - "id": 54178, - "exportedSymbols": { - "CoWSettlement": [ - 55972 - ], - "ComposableCoW": [ - 54177 - ], - "EIP712": [ - 52037 - ], - "ERC1155TokenReceiver": [ - 52147 - ], - "ERC1271": [ - 51612 - ], - "ERC165Handler": [ - 51370 - ], - "ERC721TokenReceiver": [ - 52165 - ], - "ExtensibleBase": [ - 51012 - ], - "ExtensibleFallbackHandler": [ - 50607 - ], - "FallbackHandler": [ - 51492 - ], - "GPv2Interaction": [ - 17090 - ], - "GPv2Order": [ - 17246 - ], - "HandlerContext": [ - 50638 - ], - "IConditionalOrder": [ - 54437 - ], - "IConditionalOrderGenerator": [ - 54468 - ], - "IERC165": [ - 52197 - ], - "IERC165Handler": [ - 51051 - ], - "IFallbackHandler": [ - 51381 - ], - "IFallbackMethod": [ - 50786 - ], - "ISafeSignatureVerifier": [ - 51635 - ], - "ISignatureValidator": [ - 52216 - ], - "ISignatureValidatorConstants": [ - 52203 - ], - "ISignatureVerifierMuxer": [ - 51655 - ], - "IStaticFallbackMethod": [ - 50801 - ], - "ISwapGuard": [ - 54496 - ], - "IValueFactory": [ - 54508 - ], - "MarshalLib": [ - 51598 - ], - "MerkleProof": [ - 1245 - ], - "Safe": [ - 48851 - ], - "SignatureVerifierMuxer": [ - 52004 - ], - "TokenCallbacks": [ - 52110 - ] - }, - "nodeType": "SourceUnit", - "src": "36:12230:134", - "nodes": [ - { - "id": 53503, - "nodeType": "PragmaDirective", - "src": "36:31:134", - "nodes": [], - "literals": [ - "solidity", - ">=", - "0.8", - ".0", - "<", - "0.9", - ".0" - ] - }, - { - "id": 53505, - "nodeType": "ImportDirective", - "src": "69:87:134", - "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol", - "file": "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol", - "nameLocation": "-1:-1:-1", - "scope": 54178, - "sourceUnit": 1246, - "symbolAliases": [ - { - "foreign": { - "id": 53504, - "name": "MerkleProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "77:11:134", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 53506, - "nodeType": "ImportDirective", - "src": "157:52:134", - "nodes": [], - "absolutePath": "lib/safe/contracts/handler/ExtensibleFallbackHandler.sol", - "file": "safe/handler/ExtensibleFallbackHandler.sol", - "nameLocation": "-1:-1:-1", - "scope": 54178, - "sourceUnit": 50608, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 53507, - "nodeType": "ImportDirective", - "src": "211:44:134", - "nodes": [], - "absolutePath": "src/interfaces/IConditionalOrder.sol", - "file": "./interfaces/IConditionalOrder.sol", - "nameLocation": "-1:-1:-1", - "scope": 54178, - "sourceUnit": 54469, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 53508, - "nodeType": "ImportDirective", - "src": "256:37:134", - "nodes": [], - "absolutePath": "src/interfaces/ISwapGuard.sol", - "file": "./interfaces/ISwapGuard.sol", - "nameLocation": "-1:-1:-1", - "scope": 54178, - "sourceUnit": 54497, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 53509, - "nodeType": "ImportDirective", - "src": "294:40:134", - "nodes": [], - "absolutePath": "src/interfaces/IValueFactory.sol", - "file": "./interfaces/IValueFactory.sol", - "nameLocation": "-1:-1:-1", - "scope": 54178, - "sourceUnit": 54509, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 53510, - "nodeType": "ImportDirective", - "src": "335:38:134", - "nodes": [], - "absolutePath": "src/vendored/CoWSettlement.sol", - "file": "./vendored/CoWSettlement.sol", - "nameLocation": "-1:-1:-1", - "scope": 54178, - "sourceUnit": 55973, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 54177, - "nodeType": "ContractDefinition", - "src": "579:11686:134", - "nodes": [ - { - "id": 53515, - "nodeType": "ErrorDefinition", - "src": "652:23:134", - "nodes": [], - "errorSelector": "4a821464", - "name": "ProofNotAuthed", - "nameLocation": "658:14:134", - "parameters": { - "id": 53514, - "nodeType": "ParameterList", - "parameters": [], - "src": "672:2:134" - } - }, - { - "id": 53517, - "nodeType": "ErrorDefinition", - "src": "680:29:134", - "nodes": [], - "errorSelector": "7a933234", - "name": "SingleOrderNotAuthed", - "nameLocation": "686:20:134", - "parameters": { - "id": 53516, - "nodeType": "ParameterList", - "parameters": [], - "src": "706:2:134" - } - }, - { - "id": 53519, - "nodeType": "ErrorDefinition", - "src": "714:28:134", - "nodes": [], - "errorSelector": "03fc2a7e", - "name": "SwapGuardRestricted", - "nameLocation": "720:19:134", - "parameters": { - "id": 53518, - "nodeType": "ParameterList", - "parameters": [], - "src": "739:2:134" - } - }, - { - "id": 53521, - "nodeType": "ErrorDefinition", - "src": "747:23:134", - "nodes": [], - "errorSelector": "d8f59fa5", - "name": "InvalidHandler", - "nameLocation": "753:14:134", - "parameters": { - "id": 53520, - "nodeType": "ParameterList", - "parameters": [], - "src": "767:2:134" - } - }, - { - "id": 53523, - "nodeType": "ErrorDefinition", - "src": "775:31:134", - "nodes": [], - "errorSelector": "79ac63cd", - "name": "InvalidFallbackHandler", - "nameLocation": "781:22:134", - "parameters": { - "id": 53522, - "nodeType": "ParameterList", - "parameters": [], - "src": "803:2:134" - } - }, - { - "id": 53525, - "nodeType": "ErrorDefinition", - "src": "811:30:134", - "nodes": [], - "errorSelector": "2c7ca6d7", - "name": "InterfaceNotSupported", - "nameLocation": "817:21:134", - "parameters": { - "id": 53524, - "nodeType": "ParameterList", - "parameters": [], - "src": "838:2:134" - } - }, - { - "id": 53534, - "nodeType": "StructDefinition", - "src": "930:139:134", - "nodes": [], - "canonicalName": "ComposableCoW.PayloadStruct", - "members": [ - { - "constant": false, - "id": 53528, - "mutability": "mutable", - "name": "proof", - "nameLocation": "971:5:134", - "nodeType": "VariableDeclaration", - "scope": 53534, - "src": "961:15:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 53526, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "961:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 53527, - "nodeType": "ArrayTypeName", - "src": "961:9:134", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53531, - "mutability": "mutable", - "name": "params", - "nameLocation": "1027:6:134", - "nodeType": "VariableDeclaration", - "scope": 53534, - "src": "986:47:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - }, - "typeName": { - "id": 53530, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53529, - "name": "IConditionalOrder.ConditionalOrderParams", - "nameLocations": [ - "986:17:134", - "1004:22:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "986:40:134" - }, - "referencedDeclaration": 54415, - "src": "986:40:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53533, - "mutability": "mutable", - "name": "offchainInput", - "nameLocation": "1049:13:134", - "nodeType": "VariableDeclaration", - "scope": 53534, - "src": "1043:19:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 53532, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1043:5:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "name": "PayloadStruct", - "nameLocation": "937:13:134", - "scope": 54177, - "visibility": "public" - }, - { - "id": 53539, - "nodeType": "StructDefinition", - "src": "1129:66:134", - "nodes": [], - "canonicalName": "ComposableCoW.Proof", - "members": [ - { - "constant": false, - "id": 53536, - "mutability": "mutable", - "name": "location", - "nameLocation": "1160:8:134", - "nodeType": "VariableDeclaration", - "scope": 53539, - "src": "1152:16:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 53535, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1152:7:134", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53538, - "mutability": "mutable", - "name": "data", - "nameLocation": "1184:4:134", - "nodeType": "VariableDeclaration", - "scope": 53539, - "src": "1178:10:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 53537, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1178:5:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "name": "Proof", - "nameLocation": "1136:5:134", - "scope": 54177, - "visibility": "public" - }, - { - "id": 53548, - "nodeType": "EventDefinition", - "src": "1279:70:134", - "nodes": [], - "anonymous": false, - "eventSelector": "58662f46b4a87d0f96d929b24c37fe25c55d52c0025d0b2bec3936534cc31e57", - "name": "MerkleRootSet", - "nameLocation": "1285:13:134", - "parameters": { - "id": 53547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53541, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1315:5:134", - "nodeType": "VariableDeclaration", - "scope": 53548, - "src": "1299:21:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53540, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1299:7:134", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53543, - "indexed": false, - "mutability": "mutable", - "name": "root", - "nameLocation": "1330:4:134", - "nodeType": "VariableDeclaration", - "scope": 53548, - "src": "1322:12:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 53542, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1322:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53546, - "indexed": false, - "mutability": "mutable", - "name": "proof", - "nameLocation": "1342:5:134", - "nodeType": "VariableDeclaration", - "scope": 53548, - "src": "1336:11:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_memory_ptr", - "typeString": "struct ComposableCoW.Proof" - }, - "typeName": { - "id": 53545, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53544, - "name": "Proof", - "nameLocations": [ - "1336:5:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 53539, - "src": "1336:5:134" - }, - "referencedDeclaration": 53539, - "src": "1336:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_storage_ptr", - "typeString": "struct ComposableCoW.Proof" - } - }, - "visibility": "internal" - } - ], - "src": "1298:50:134" - } - }, - { - "id": 53555, - "nodeType": "EventDefinition", - "src": "1354:102:134", - "nodes": [], - "anonymous": false, - "eventSelector": "2cceac5555b0ca45a3744ced542f54b56ad2eb45e521962372eef212a2cbf361", - "name": "ConditionalOrderCreated", - "nameLocation": "1360:23:134", - "parameters": { - "id": 53554, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53550, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1400:5:134", - "nodeType": "VariableDeclaration", - "scope": 53555, - "src": "1384:21:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53549, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1384:7:134", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53553, - "indexed": false, - "mutability": "mutable", - "name": "params", - "nameLocation": "1448:6:134", - "nodeType": "VariableDeclaration", - "scope": 53555, - "src": "1407:47:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - }, - "typeName": { - "id": 53552, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53551, - "name": "IConditionalOrder.ConditionalOrderParams", - "nameLocations": [ - "1407:17:134", - "1425:22:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "1407:40:134" - }, - "referencedDeclaration": 54415, - "src": "1407:40:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - } - }, - "visibility": "internal" - } - ], - "src": "1383:72:134" - } - }, - { - "id": 53562, - "nodeType": "EventDefinition", - "src": "1461:64:134", - "nodes": [], - "anonymous": false, - "eventSelector": "41f583e2d25b3921afe66987b63b0b5e4cf2acbbbed4a477fd19a22180f3f859", - "name": "SwapGuardSet", - "nameLocation": "1467:12:134", - "parameters": { - "id": 53561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53557, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1496:5:134", - "nodeType": "VariableDeclaration", - "scope": 53562, - "src": "1480:21:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53556, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1480:7:134", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53560, - "indexed": false, - "mutability": "mutable", - "name": "swapGuard", - "nameLocation": "1514:9:134", - "nodeType": "VariableDeclaration", - "scope": 53562, - "src": "1503:20:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - }, - "typeName": { - "id": 53559, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53558, - "name": "ISwapGuard", - "nameLocations": [ - "1503:10:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54496, - "src": "1503:10:134" - }, - "referencedDeclaration": 54496, - "src": "1503:10:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - }, - "visibility": "internal" - } - ], - "src": "1479:45:134" - } - }, - { - "id": 53564, - "nodeType": "VariableDeclaration", - "src": "1611:40:134", - "nodes": [], - "constant": false, - "functionSelector": "f698da25", - "mutability": "immutable", - "name": "domainSeparator", - "nameLocation": "1636:15:134", - "scope": 54177, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 53563, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1611:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "id": 53569, - "nodeType": "VariableDeclaration", - "src": "1702:40:134", - "nodes": [], - "constant": false, - "documentation": { - "id": 53565, - "nodeType": "StructuredDocumentation", - "src": "1657:40:134", - "text": "@dev Mapping of owner's merkle roots" - }, - "functionSelector": "a4546876", - "mutability": "mutable", - "name": "roots", - "nameLocation": "1737:5:134", - "scope": 54177, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$", - "typeString": "mapping(address => bytes32)" - }, - "typeName": { - "id": 53568, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 53566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1710:7:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1702:27:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$", - "typeString": "mapping(address => bytes32)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 53567, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1721:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - }, - "visibility": "public" - }, - { - "id": 53576, - "nodeType": "VariableDeclaration", - "src": "1794:64:134", - "nodes": [], - "constant": false, - "documentation": { - "id": 53570, - "nodeType": "StructuredDocumentation", - "src": "1748:41:134", - "text": "@dev Mapping of owner's single orders" - }, - "functionSelector": "6108c532", - "mutability": "mutable", - "name": "singleOrders", - "nameLocation": "1846:12:134", - "scope": 54177, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", - "typeString": "mapping(address => mapping(bytes32 => bool))" - }, - "typeName": { - "id": 53575, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 53571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1802:7:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1794:44:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", - "typeString": "mapping(address => mapping(bytes32 => bool))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 53574, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 53572, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1821:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1813:24:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 53573, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1832:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "visibility": "public" - }, - { - "id": 53581, - "nodeType": "VariableDeclaration", - "src": "1906:48:134", - "nodes": [], - "constant": false, - "functionSelector": "595001b2", - "mutability": "mutable", - "name": "swapGuards", - "nameLocation": "1944:10:134", - "scope": 54177, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54496_$", - "typeString": "mapping(address => contract ISwapGuard)" - }, - "typeName": { - "id": 53580, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 53577, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1914:7:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1906:30:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54496_$", - "typeString": "mapping(address => contract ISwapGuard)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 53579, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53578, - "name": "ISwapGuard", - "nameLocations": [ - "1925:10:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54496, - "src": "1925:10:134" - }, - "referencedDeclaration": 54496, - "src": "1925:10:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - } - }, - "visibility": "public" - }, - { - "id": 53587, - "nodeType": "VariableDeclaration", - "src": "2014:62:134", - "nodes": [], - "constant": false, - "functionSelector": "1c7662c8", - "mutability": "mutable", - "name": "cabinet", - "nameLocation": "2069:7:134", - "scope": 54177, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes32_$_$", - "typeString": "mapping(address => mapping(bytes32 => bytes32))" - }, - "typeName": { - "id": 53586, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 53582, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2022:7:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2014:47:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes32_$_$", - "typeString": "mapping(address => mapping(bytes32 => bytes32))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 53585, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 53583, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2041:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2033:27:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 53584, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2052:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - } - }, - "visibility": "public" - }, - { - "id": 53602, - "nodeType": "FunctionDefinition", - "src": "2178:112:134", - "nodes": [], - "body": { - "id": 53601, - "nodeType": "Block", - "src": "2211:79:134", - "nodes": [], - "statements": [ - { - "expression": { - "id": 53599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 53593, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53564, - "src": "2221:15:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 53595, - "name": "_settlement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53590, - "src": "2253:11:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 53594, - "name": "CoWSettlement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55972, - "src": "2239:13:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_CoWSettlement_$55972_$", - "typeString": "type(contract CoWSettlement)" - } - }, - "id": 53596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2239:26:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_CoWSettlement_$55972", - "typeString": "contract CoWSettlement" - } - }, - "id": 53597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2266:15:134", - "memberName": "domainSeparator", - "nodeType": "MemberAccess", - "referencedDeclaration": 55971, - "src": "2239:42:134", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$", - "typeString": "function () view external returns (bytes32)" - } - }, - "id": 53598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2239:44:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2221:62:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 53600, - "nodeType": "ExpressionStatement", - "src": "2221:62:134" - } - ] - }, - "documentation": { - "id": 53588, - "nodeType": "StructuredDocumentation", - "src": "2107:66:134", - "text": " @param _settlement The GPv2 settlement contract" - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 53591, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53590, - "mutability": "mutable", - "name": "_settlement", - "nameLocation": "2198:11:134", - "nodeType": "VariableDeclaration", - "scope": 53602, - "src": "2190:19:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53589, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2190:7:134", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2189:21:134" - }, - "returnParameters": { - "id": 53592, - "nodeType": "ParameterList", - "parameters": [], - "src": "2211:0:134" - }, - "scope": 54177, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 53626, - "nodeType": "FunctionDefinition", - "src": "2573:154:134", - "nodes": [], - "body": { - "id": 53625, - "nodeType": "Block", - "src": "2633:94:134", - "nodes": [], - "statements": [ - { - "expression": { - "id": 53616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 53611, - "name": "roots", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53569, - "src": "2643:5:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$", - "typeString": "mapping(address => bytes32)" - } - }, - "id": 53614, - "indexExpression": { - "expression": { - "id": 53612, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2649:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2653:6:134", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2649:10:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2643:17:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 53615, - "name": "root", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53605, - "src": "2663:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2643:24:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 53617, - "nodeType": "ExpressionStatement", - "src": "2643:24:134" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 53619, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2696:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2700:6:134", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2696:10:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 53621, - "name": "root", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53605, - "src": "2708:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 53622, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53608, - "src": "2714:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", - "typeString": "struct ComposableCoW.Proof calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", - "typeString": "struct ComposableCoW.Proof calldata" - } - ], - "id": 53618, - "name": "MerkleRootSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53548, - "src": "2682:13:134", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_struct$_Proof_$53539_memory_ptr_$returns$__$", - "typeString": "function (address,bytes32,struct ComposableCoW.Proof memory)" - } - }, - "id": 53623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2682:38:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 53624, - "nodeType": "EmitStatement", - "src": "2677:43:134" - } - ] - }, - "documentation": { - "id": 53603, - "nodeType": "StructuredDocumentation", - "src": "2316:252:134", - "text": " Set the merkle root of the user's conditional orders\n @notice Set the merkle root of the user's conditional orders\n @param root The merkle root of the user's conditional orders\n @param proof Where to find the proofs" - }, - "functionSelector": "1ab0dd9d", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setRoot", - "nameLocation": "2582:7:134", - "parameters": { - "id": 53609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53605, - "mutability": "mutable", - "name": "root", - "nameLocation": "2598:4:134", - "nodeType": "VariableDeclaration", - "scope": 53626, - "src": "2590:12:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 53604, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2590:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53608, - "mutability": "mutable", - "name": "proof", - "nameLocation": "2619:5:134", - "nodeType": "VariableDeclaration", - "scope": 53626, - "src": "2604:20:134", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", - "typeString": "struct ComposableCoW.Proof" - }, - "typeName": { - "id": 53607, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53606, - "name": "Proof", - "nameLocations": [ - "2604:5:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 53539, - "src": "2604:5:134" - }, - "referencedDeclaration": 53539, - "src": "2604:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_storage_ptr", - "typeString": "struct ComposableCoW.Proof" - } - }, - "visibility": "internal" - } - ], - "src": "2589:36:134" - }, - "returnParameters": { - "id": 53610, - "nodeType": "ParameterList", - "parameters": [], - "src": "2633:0:134" - }, - "scope": 54177, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 53661, - "nodeType": "FunctionDefinition", - "src": "3136:425:134", - "nodes": [], - "body": { - "id": 53660, - "nodeType": "Block", - "src": "3265:296:134", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 53641, - "name": "root", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53629, - "src": "3283:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 53642, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53632, - "src": "3289:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", - "typeString": "struct ComposableCoW.Proof calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", - "typeString": "struct ComposableCoW.Proof calldata" - } - ], - "id": 53640, - "name": "setRoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53626, - "src": "3275:7:134", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Proof_$53539_calldata_ptr_$returns$__$", - "typeString": "function (bytes32,struct ComposableCoW.Proof calldata)" - } - }, - "id": 53643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3275:20:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 53644, - "nodeType": "ExpressionStatement", - "src": "3275:20:134" - }, - { - "expression": { - "id": 53658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 53645, - "name": "cabinet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53587, - "src": "3498:7:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes32_$_$", - "typeString": "mapping(address => mapping(bytes32 => bytes32))" - } - }, - "id": 53652, - "indexExpression": { - "expression": { - "id": 53646, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3506:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3510:6:134", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3506:10:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3498:19:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - } - }, - "id": 53653, - "indexExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 53650, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3526:1:134", - "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": 53649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3518:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 53648, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3518:7:134", - "typeDescriptions": {} - } - }, - "id": 53651, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3518:10:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3498:31:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 53656, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53637, - "src": "3549:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "id": 53654, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53635, - "src": "3532:7:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", - "typeString": "contract IValueFactory" - } - }, - "id": 53655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3540:8:134", - "memberName": "getValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 54507, - "src": "3532:16:134", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view external returns (bytes32)" - } - }, - "id": 53657, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3532:22:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "3498:56:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 53659, - "nodeType": "ExpressionStatement", - "src": "3498:56:134" - } - ] - }, - "documentation": { - "id": 53627, - "nodeType": "StructuredDocumentation", - "src": "2733:398:134", - "text": " Set the merkle root of the user's conditional orders and store a value from on-chain in the cabinet\n @param root The merkle root of the user's conditional orders\n @param proof Where to find the proofs\n @param factory A factory from which to get a value to store in the cabinet related to the merkle root\n @param data Implementation specific off-chain data" - }, - "functionSelector": "57f1d41a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setRootWithContext", - "nameLocation": "3145:18:134", - "parameters": { - "id": 53638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53629, - "mutability": "mutable", - "name": "root", - "nameLocation": "3172:4:134", - "nodeType": "VariableDeclaration", - "scope": 53661, - "src": "3164:12:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 53628, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3164:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53632, - "mutability": "mutable", - "name": "proof", - "nameLocation": "3193:5:134", - "nodeType": "VariableDeclaration", - "scope": 53661, - "src": "3178:20:134", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", - "typeString": "struct ComposableCoW.Proof" - }, - "typeName": { - "id": 53631, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53630, - "name": "Proof", - "nameLocations": [ - "3178:5:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 53539, - "src": "3178:5:134" - }, - "referencedDeclaration": 53539, - "src": "3178:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_storage_ptr", - "typeString": "struct ComposableCoW.Proof" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53635, - "mutability": "mutable", - "name": "factory", - "nameLocation": "3214:7:134", - "nodeType": "VariableDeclaration", - "scope": 53661, - "src": "3200:21:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", - "typeString": "contract IValueFactory" - }, - "typeName": { - "id": 53634, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53633, - "name": "IValueFactory", - "nameLocations": [ - "3200:13:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54508, - "src": "3200:13:134" - }, - "referencedDeclaration": 54508, - "src": "3200:13:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", - "typeString": "contract IValueFactory" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53637, - "mutability": "mutable", - "name": "data", - "nameLocation": "3238:4:134", - "nodeType": "VariableDeclaration", - "scope": 53661, - "src": "3223:19:134", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 53636, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3223:5:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3163:80:134" - }, - "returnParameters": { - "id": 53639, - "nodeType": "ParameterList", - "parameters": [], - "src": "3265:0:134" - }, - "scope": 54177, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 53708, - "nodeType": "FunctionDefinition", - "src": "3767:358:134", - "nodes": [], - "body": { - "id": 53707, - "nodeType": "Block", - "src": "3863:262:134", - "nodes": [], - "statements": [ - { - "condition": { - "id": 53681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3877:40:134", - "subExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 53679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "expression": { - "id": 53672, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53665, - "src": "3887:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - }, - "id": 53673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3894:7:134", - "memberName": "handler", - "nodeType": "MemberAccess", - "referencedDeclaration": 54410, - "src": "3887:14:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", - "typeString": "contract IConditionalOrder" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", - "typeString": "contract IConditionalOrder" - } - ], - "id": 53671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3879:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 53670, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3879:7:134", - "typeDescriptions": {} - } - }, - "id": 53674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3879:23:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 53677, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3914:1:134", - "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": 53676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3906:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 53675, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3906:7:134", - "typeDescriptions": {} - } - }, - "id": 53678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3906:10:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3879:37:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 53680, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3878:39:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 53686, - "nodeType": "IfStatement", - "src": "3873:94:134", - "trueBody": { - "id": 53685, - "nodeType": "Block", - "src": "3919:48:134", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 53682, - "name": "InvalidHandler", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53521, - "src": "3940:14:134", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 53683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3940:16:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 53684, - "nodeType": "RevertStatement", - "src": "3933:23:134" - } - ] - } - }, - { - "expression": { - "id": 53696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 53687, - "name": "singleOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53576, - "src": "3977:12:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", - "typeString": "mapping(address => mapping(bytes32 => bool))" - } - }, - "id": 53693, - "indexExpression": { - "expression": { - "id": 53688, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3990:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3994:6:134", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3990:10:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3977:24:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 53694, - "indexExpression": { - "arguments": [ - { - "id": 53691, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53665, - "src": "4007:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - ], - "id": 53690, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54063, - "src": "4002:4:134", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (struct IConditionalOrder.ConditionalOrderParams memory) pure returns (bytes32)" - } - }, - "id": 53692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4002:12:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3977:38:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 53695, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4018:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3977:45:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 53697, - "nodeType": "ExpressionStatement", - "src": "3977:45:134" - }, - { - "condition": { - "id": 53698, - "name": "dispatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53667, - "src": "4036:8:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 53706, - "nodeType": "IfStatement", - "src": "4032:87:134", - "trueBody": { - "id": 53705, - "nodeType": "Block", - "src": "4046:73:134", - "statements": [ - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 53700, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4089:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4093:6:134", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4089:10:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 53702, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53665, - "src": "4101:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - ], - "id": 53699, - "name": "ConditionalOrderCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53555, - "src": "4065:23:134", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$returns$__$", - "typeString": "function (address,struct IConditionalOrder.ConditionalOrderParams memory)" - } - }, - "id": 53703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4065:43:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 53704, - "nodeType": "EmitStatement", - "src": "4060:48:134" - } - ] - } - } - ] - }, - "documentation": { - "id": 53662, - "nodeType": "StructuredDocumentation", - "src": "3567:195:134", - "text": " Authorise a single conditional order\n @param params The parameters of the conditional order\n @param dispatch Whether to dispatch the `ConditionalOrderCreated` event" - }, - "functionSelector": "6bfae1ca", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "create", - "nameLocation": "3776:6:134", - "parameters": { - "id": 53668, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53665, - "mutability": "mutable", - "name": "params", - "nameLocation": "3833:6:134", - "nodeType": "VariableDeclaration", - "scope": 53708, - "src": "3783:56:134", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - }, - "typeName": { - "id": 53664, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53663, - "name": "IConditionalOrder.ConditionalOrderParams", - "nameLocations": [ - "3783:17:134", - "3801:22:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "3783:40:134" - }, - "referencedDeclaration": 54415, - "src": "3783:40:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53667, - "mutability": "mutable", - "name": "dispatch", - "nameLocation": "3846:8:134", - "nodeType": "VariableDeclaration", - "scope": 53708, - "src": "3841:13:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 53666, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3841:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "3782:73:134" - }, - "returnParameters": { - "id": 53669, - "nodeType": "ParameterList", - "parameters": [], - "src": "3863:0:134" - }, - "scope": 54177, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 53742, - "nodeType": "FunctionDefinition", - "src": "4518:524:134", - "nodes": [], - "body": { - "id": 53741, - "nodeType": "Block", - "src": "4709:333:134", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 53723, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53712, - "src": "4726:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - }, - { - "id": 53724, - "name": "dispatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53719, - "src": "4734:8:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 53722, - "name": "create", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53708, - "src": "4719:6:134", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_ConditionalOrderParams_$54415_calldata_ptr_$_t_bool_$returns$__$", - "typeString": "function (struct IConditionalOrder.ConditionalOrderParams calldata,bool)" - } - }, - "id": 53725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4719:24:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 53726, - "nodeType": "ExpressionStatement", - "src": "4719:24:134" - }, - { - "expression": { - "id": 53739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 53727, - "name": "cabinet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53587, - "src": "4977:7:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes32_$_$", - "typeString": "mapping(address => mapping(bytes32 => bytes32))" - } - }, - "id": 53733, - "indexExpression": { - "expression": { - "id": 53728, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4985:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4989:6:134", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4985:10:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4977:19:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - } - }, - "id": 53734, - "indexExpression": { - "arguments": [ - { - "id": 53731, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53712, - "src": "5002:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - ], - "id": 53730, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54063, - "src": "4997:4:134", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (struct IConditionalOrder.ConditionalOrderParams memory) pure returns (bytes32)" - } - }, - "id": 53732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4997:12:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4977:33:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 53737, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53717, - "src": "5030:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "id": 53735, - "name": "factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53715, - "src": "5013:7:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", - "typeString": "contract IValueFactory" - } - }, - "id": 53736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5021:8:134", - "memberName": "getValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 54507, - "src": "5013:16:134", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view external returns (bytes32)" - } - }, - "id": 53738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5013:22:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "4977:58:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 53740, - "nodeType": "ExpressionStatement", - "src": "4977:58:134" - } - ] - }, - "documentation": { - "id": 53709, - "nodeType": "StructuredDocumentation", - "src": "4131:382:134", - "text": " Authorise a single conditional order and store a value from on-chain in the cabinet\n @param params The parameters of the conditional order\n @param factory A factory from which to get a value to store in the cabinet\n @param data Implementation specific off-chain data\n @param dispatch Whether to dispatch the `ConditionalOrderCreated` event" - }, - "functionSelector": "0d0d9800", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createWithContext", - "nameLocation": "4527:17:134", - "parameters": { - "id": 53720, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53712, - "mutability": "mutable", - "name": "params", - "nameLocation": "4604:6:134", - "nodeType": "VariableDeclaration", - "scope": 53742, - "src": "4554:56:134", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - }, - "typeName": { - "id": 53711, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53710, - "name": "IConditionalOrder.ConditionalOrderParams", - "nameLocations": [ - "4554:17:134", - "4572:22:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "4554:40:134" - }, - "referencedDeclaration": 54415, - "src": "4554:40:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53715, - "mutability": "mutable", - "name": "factory", - "nameLocation": "4634:7:134", - "nodeType": "VariableDeclaration", - "scope": 53742, - "src": "4620:21:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", - "typeString": "contract IValueFactory" - }, - "typeName": { - "id": 53714, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53713, - "name": "IValueFactory", - "nameLocations": [ - "4620:13:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54508, - "src": "4620:13:134" - }, - "referencedDeclaration": 54508, - "src": "4620:13:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", - "typeString": "contract IValueFactory" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53717, - "mutability": "mutable", - "name": "data", - "nameLocation": "4666:4:134", - "nodeType": "VariableDeclaration", - "scope": 53742, - "src": "4651:19:134", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 53716, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4651:5:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53719, - "mutability": "mutable", - "name": "dispatch", - "nameLocation": "4685:8:134", - "nodeType": "VariableDeclaration", - "scope": 53742, - "src": "4680:13:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 53718, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4680:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "4544:155:134" - }, - "returnParameters": { - "id": 53721, - "nodeType": "ParameterList", - "parameters": [], - "src": "4709:0:134" - }, - "scope": 54177, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 53770, - "nodeType": "FunctionDefinition", - "src": "5207:175:134", - "nodes": [], - "body": { - "id": 53769, - "nodeType": "Block", - "src": "5257:125:134", - "nodes": [], - "statements": [ - { - "expression": { - "id": 53755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 53748, - "name": "singleOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53576, - "src": "5267:12:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", - "typeString": "mapping(address => mapping(bytes32 => bool))" - } - }, - "id": 53752, - "indexExpression": { - "expression": { - "id": 53749, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5280:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5284:6:134", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5280:10:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5267:24:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 53753, - "indexExpression": { - "id": 53751, - "name": "singleOrderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53745, - "src": "5292:15:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5267:41:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 53754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5311:5:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "5267:49:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 53756, - "nodeType": "ExpressionStatement", - "src": "5267:49:134" - }, - { - "expression": { - "id": 53767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 53757, - "name": "cabinet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53587, - "src": "5326:7:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes32_$_$", - "typeString": "mapping(address => mapping(bytes32 => bytes32))" - } - }, - "id": 53761, - "indexExpression": { - "expression": { - "id": 53758, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5334:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5338:6:134", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5334:10:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5326:19:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - } - }, - "id": 53762, - "indexExpression": { - "id": 53760, - "name": "singleOrderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53745, - "src": "5346:15:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5326:36:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "hexValue": "30", - "id": 53765, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5373:1:134", - "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": 53764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5365:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 53763, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5365:7:134", - "typeDescriptions": {} - } - }, - "id": 53766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5365:10:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "5326:49:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 53768, - "nodeType": "ExpressionStatement", - "src": "5326:49:134" - } - ] - }, - "documentation": { - "id": 53743, - "nodeType": "StructuredDocumentation", - "src": "5048:154:134", - "text": " Remove the authorisation of a single conditional order\n @param singleOrderHash The hash of the single conditional order to remove" - }, - "functionSelector": "95bc2673", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "remove", - "nameLocation": "5216:6:134", - "parameters": { - "id": 53746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53745, - "mutability": "mutable", - "name": "singleOrderHash", - "nameLocation": "5231:15:134", - "nodeType": "VariableDeclaration", - "scope": 53770, - "src": "5223:23:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 53744, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5223:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5222:25:134" - }, - "returnParameters": { - "id": 53747, - "nodeType": "ParameterList", - "parameters": [], - "src": "5257:0:134" - }, - "scope": 54177, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 53791, - "nodeType": "FunctionDefinition", - "src": "5517:154:134", - "nodes": [], - "body": { - "id": 53790, - "nodeType": "Block", - "src": "5570:101:134", - "nodes": [], - "statements": [ - { - "expression": { - "id": 53782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 53777, - "name": "swapGuards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53581, - "src": "5580:10:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54496_$", - "typeString": "mapping(address => contract ISwapGuard)" - } - }, - "id": 53780, - "indexExpression": { - "expression": { - "id": 53778, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5591:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5595:6:134", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5591:10:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5580:22:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 53781, - "name": "swapGuard", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53774, - "src": "5605:9:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - }, - "src": "5580:34:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - }, - "id": 53783, - "nodeType": "ExpressionStatement", - "src": "5580:34:134" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 53785, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5642:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5646:6:134", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5642:10:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 53787, - "name": "swapGuard", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53774, - "src": "5654:9:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - ], - "id": 53784, - "name": "SwapGuardSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53562, - "src": "5629:12:134", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_contract$_ISwapGuard_$54496_$returns$__$", - "typeString": "function (address,contract ISwapGuard)" - } - }, - "id": 53788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5629:35:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 53789, - "nodeType": "EmitStatement", - "src": "5624:40:134" - } - ] - }, - "documentation": { - "id": 53771, - "nodeType": "StructuredDocumentation", - "src": "5388:124:134", - "text": " Set the swap guard of the user's conditional orders\n @param swapGuard The address of the swap guard" - }, - "functionSelector": "8f7984ed", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setSwapGuard", - "nameLocation": "5526:12:134", - "parameters": { - "id": 53775, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53774, - "mutability": "mutable", - "name": "swapGuard", - "nameLocation": "5550:9:134", - "nodeType": "VariableDeclaration", - "scope": 53791, - "src": "5539:20:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - }, - "typeName": { - "id": 53773, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53772, - "name": "ISwapGuard", - "nameLocations": [ - "5539:10:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54496, - "src": "5539:10:134" - }, - "referencedDeclaration": 54496, - "src": "5539:10:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - }, - "visibility": "internal" - } - ], - "src": "5538:22:134" - }, - "returnParameters": { - "id": 53776, - "nodeType": "ParameterList", - "parameters": [], - "src": "5570:0:134" - }, - "scope": 54177, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 53896, - "nodeType": "FunctionDefinition", - "src": "6022:1259:134", - "nodes": [], - "body": { - "id": 53895, - "nodeType": "Block", - "src": "6300:981:134", - "nodes": [], - "statements": [ - { - "assignments": [ - 53815 - ], - "declarations": [ - { - "constant": false, - "id": 53815, - "mutability": "mutable", - "name": "_payload", - "nameLocation": "6367:8:134", - "nodeType": "VariableDeclaration", - "scope": 53895, - "src": "6346:29:134", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct" - }, - "typeName": { - "id": 53814, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53813, - "name": "PayloadStruct", - "nameLocations": [ - "6346:13:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 53534, - "src": "6346:13:134" - }, - "referencedDeclaration": 53534, - "src": "6346:13:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_storage_ptr", - "typeString": "struct ComposableCoW.PayloadStruct" - } - }, - "visibility": "internal" - } - ], - "id": 53822, - "initialValue": { - "arguments": [ - { - "id": 53818, - "name": "payload", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53807, - "src": "6389:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "id": 53819, - "name": "PayloadStruct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53534, - "src": "6399:13:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53534_storage_ptr_$", - "typeString": "type(struct ComposableCoW.PayloadStruct storage pointer)" - } - } - ], - "id": 53820, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6398:15:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53534_storage_ptr_$", - "typeString": "type(struct ComposableCoW.PayloadStruct storage pointer)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53534_storage_ptr_$", - "typeString": "type(struct ComposableCoW.PayloadStruct storage pointer)" - } - ], - "expression": { - "id": 53816, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "6378:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 53817, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6382:6:134", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "6378:10:134", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 53821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6378:36:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6346:68:134" - }, - { - "assignments": [ - 53824 - ], - "declarations": [ - { - "constant": false, - "id": 53824, - "mutability": "mutable", - "name": "ctx", - "nameLocation": "6477:3:134", - "nodeType": "VariableDeclaration", - "scope": 53895, - "src": "6469:11:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 53823, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6469:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 53835, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 53828, - "name": "safe", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53795, - "src": "6497:4:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Safe_$48851", - "typeString": "contract Safe" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Safe_$48851", - "typeString": "contract Safe" - } - ], - "id": 53827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6489:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 53826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6489:7:134", - "typeDescriptions": {} - } - }, - "id": 53829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6489:13:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 53830, - "name": "_payload", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "6504:8:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - }, - "id": 53831, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6513:6:134", - "memberName": "params", - "nodeType": "MemberAccess", - "referencedDeclaration": 53531, - "src": "6504:15:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - } - }, - { - "expression": { - "id": 53832, - "name": "_payload", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "6521:8:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - }, - "id": 53833, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6530:5:134", - "memberName": "proof", - "nodeType": "MemberAccess", - "referencedDeclaration": 53528, - "src": "6521:14:134", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - }, - { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - ], - "id": 53825, - "name": "_auth", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54129, - "src": "6483:5:134", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (address,struct IConditionalOrder.ConditionalOrderParams memory,bytes32[] memory) view returns (bytes32)" - } - }, - "id": 53834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6483:53:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6469:67:134" - }, - { - "assignments": [ - 53840 - ], - "declarations": [ - { - "constant": false, - "id": 53840, - "mutability": "mutable", - "name": "order", - "nameLocation": "6619:5:134", - "nodeType": "VariableDeclaration", - "scope": 53895, - "src": "6597:27:134", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data" - }, - "typeName": { - "id": 53839, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53838, - "name": "GPv2Order.Data", - "nameLocations": [ - "6597:9:134", - "6607:4:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "6597:14:134" - }, - "referencedDeclaration": 17121, - "src": "6597:14:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", - "typeString": "struct GPv2Order.Data" - } - }, - "visibility": "internal" - } - ], - "id": 53848, - "initialValue": { - "arguments": [ - { - "id": 53843, - "name": "encodeData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53805, - "src": "6638:10:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "expression": { - "id": 53844, - "name": "GPv2Order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "6651:9:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", - "typeString": "type(library GPv2Order)" - } - }, - "id": 53845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6661:4:134", - "memberName": "Data", - "nodeType": "MemberAccess", - "referencedDeclaration": 17121, - "src": "6651:14:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$17121_storage_ptr_$", - "typeString": "type(struct GPv2Order.Data storage pointer)" - } - } - ], - "id": 53846, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6650:16:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$17121_storage_ptr_$", - "typeString": "type(struct GPv2Order.Data storage pointer)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_type$_t_struct$_Data_$17121_storage_ptr_$", - "typeString": "type(struct GPv2Order.Data storage pointer)" - } - ], - "expression": { - "id": 53841, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "6627:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 53842, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6631:6:134", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "6627:10:134", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 53847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6627:40:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6597:70:134" - }, - { - "condition": { - "id": 53862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "6753:82:134", - "subExpression": { - "components": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 53852, - "name": "safe", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53795, - "src": "6775:4:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Safe_$48851", - "typeString": "contract Safe" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Safe_$48851", - "typeString": "contract Safe" - } - ], - "id": 53851, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6767:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 53850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6767:7:134", - "typeDescriptions": {} - } - }, - "id": 53853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6767:13:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 53854, - "name": "ctx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53824, - "src": "6782:3:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 53855, - "name": "_payload", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "6787:8:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - }, - "id": 53856, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6796:6:134", - "memberName": "params", - "nodeType": "MemberAccess", - "referencedDeclaration": 53531, - "src": "6787:15:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - } - }, - { - "expression": { - "id": 53857, - "name": "_payload", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "6804:8:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - }, - "id": 53858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6813:13:134", - "memberName": "offchainInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 53533, - "src": "6804:22:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 53859, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53840, - "src": "6828:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - ], - "id": 53849, - "name": "_guardCheck", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54176, - "src": "6755:11:134", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Data_$17121_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,bytes32,struct IConditionalOrder.ConditionalOrderParams memory,bytes memory,struct GPv2Order.Data memory) view returns (bool)" - } - }, - "id": 53860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6755:79:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 53861, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6754:81:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 53867, - "nodeType": "IfStatement", - "src": "6749:141:134", - "trueBody": { - "id": 53866, - "nodeType": "Block", - "src": "6837:53:134", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 53863, - "name": "SwapGuardRestricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53519, - "src": "6858:19:134", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 53864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6858:21:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 53865, - "nodeType": "RevertStatement", - "src": "6851:28:134" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 53877, - "name": "safe", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53795, - "src": "7026:4:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Safe_$48851", - "typeString": "contract Safe" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Safe_$48851", - "typeString": "contract Safe" - } - ], - "id": 53876, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7018:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 53875, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7018:7:134", - "typeDescriptions": {} - } - }, - "id": 53878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7018:13:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 53879, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53797, - "src": "7045:6:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 53880, - "name": "_hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53799, - "src": "7065:5:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 53881, - "name": "_domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53801, - "src": "7084:16:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 53882, - "name": "ctx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53824, - "src": "7114:3:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "expression": { - "id": 53883, - "name": "_payload", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "7131:8:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - }, - "id": 53884, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7140:6:134", - "memberName": "params", - "nodeType": "MemberAccess", - "referencedDeclaration": 53531, - "src": "7131:15:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - } - }, - "id": 53885, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7147:11:134", - "memberName": "staticInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 54414, - "src": "7131:27:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "expression": { - "id": 53886, - "name": "_payload", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "7172:8:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - }, - "id": 53887, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7181:13:134", - "memberName": "offchainInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 53533, - "src": "7172:22:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 53888, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53840, - "src": "7208:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - ], - "expression": { - "expression": { - "expression": { - "id": 53868, - "name": "_payload", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "6974:8:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - }, - "id": 53872, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6983:6:134", - "memberName": "params", - "nodeType": "MemberAccess", - "referencedDeclaration": 53531, - "src": "6974:15:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - } - }, - "id": 53873, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6990:7:134", - "memberName": "handler", - "nodeType": "MemberAccess", - "referencedDeclaration": 54410, - "src": "6974:23:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", - "typeString": "contract IConditionalOrder" - } - }, - "id": 53874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6998:6:134", - "memberName": "verify", - "nodeType": "MemberAccess", - "referencedDeclaration": 54436, - "src": "6974:30:134", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Data_$17121_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes32,bytes32,bytes32,bytes memory,bytes memory,struct GPv2Order.Data memory) view external" - } - }, - "id": 53889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6974:249:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 53890, - "nodeType": "ExpressionStatement", - "src": "6974:249:134" - }, - { - "expression": { - "expression": { - "expression": { - "id": 53891, - "name": "ERC1271", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51612, - "src": "7241:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC1271_$51612_$", - "typeString": "type(contract ERC1271)" - } - }, - "id": 53892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7249:16:134", - "memberName": "isValidSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 51611, - "src": "7241:24:134", - "typeDescriptions": { - "typeIdentifier": "t_function_declaration_view$_t_bytes32_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", - "typeString": "function ERC1271.isValidSignature(bytes32,bytes calldata) view returns (bytes4)" - } - }, - "id": 53893, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7266:8:134", - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "7241:33:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "functionReturnParameters": 53812, - "id": 53894, - "nodeType": "Return", - "src": "7234:40:134" - } - ] - }, - "baseFunctions": [ - 51634 - ], - "documentation": { - "id": 53792, - "nodeType": "StructuredDocumentation", - "src": "5712:305:134", - "text": " @inheritdoc ISafeSignatureVerifier\n @dev This function does not make use of the `typeHash` parameter as CoW Protocol does not\n have more than one type.\n @param encodeData Is the abi encoded `GPv2Order.Data`\n @param payload Is the abi encoded `PayloadStruct`" - }, - "functionSelector": "53f00b14", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isValidSafeSignature", - "nameLocation": "6031:20:134", - "overrides": { - "id": 53809, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "6268:8:134" - }, - "parameters": { - "id": 53808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53795, - "mutability": "mutable", - "name": "safe", - "nameLocation": "6066:4:134", - "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6061:9:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Safe_$48851", - "typeString": "contract Safe" - }, - "typeName": { - "id": 53794, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53793, - "name": "Safe", - "nameLocations": [ - "6061:4:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 48851, - "src": "6061:4:134" - }, - "referencedDeclaration": 48851, - "src": "6061:4:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Safe_$48851", - "typeString": "contract Safe" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53797, - "mutability": "mutable", - "name": "sender", - "nameLocation": "6088:6:134", - "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6080:14:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6080:7:134", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53799, - "mutability": "mutable", - "name": "_hash", - "nameLocation": "6112:5:134", - "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6104:13:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 53798, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6104:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53801, - "mutability": "mutable", - "name": "_domainSeparator", - "nameLocation": "6135:16:134", - "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6127:24:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 53800, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6127:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53803, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6161:7:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 53802, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6161:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53805, - "mutability": "mutable", - "name": "encodeData", - "nameLocation": "6205:10:134", - "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6190:25:134", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 53804, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6190:5:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53807, - "mutability": "mutable", - "name": "payload", - "nameLocation": "6240:7:134", - "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6225:22:134", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 53806, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6225:5:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6051:202:134" - }, - "returnParameters": { - "id": 53812, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53811, - "mutability": "mutable", - "name": "magic", - "nameLocation": "6293:5:134", - "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6286:12:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 53810, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6286:6:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "6285:14:134" - }, - "scope": 54177, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 54046, - "nodeType": "FunctionDefinition", - "src": "7821:2111:134", - "nodes": [], - "body": { - "id": 54045, - "nodeType": "Block", - "src": "8104:1828:134", - "nodes": [], - "statements": [ - { - "assignments": [ - 53916 - ], - "declarations": [ - { - "constant": false, - "id": 53916, - "mutability": "mutable", - "name": "ctx", - "nameLocation": "8199:3:134", - "nodeType": "VariableDeclaration", - "scope": 54045, - "src": "8191:11:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 53915, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8191:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 53922, - "initialValue": { - "arguments": [ - { - "id": 53918, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53899, - "src": "8211:5:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 53919, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "8218:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - }, - { - "id": 53920, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53907, - "src": "8226:5:134", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - }, - { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - ], - "id": 53917, - "name": "_auth", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54129, - "src": "8205:5:134", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (address,struct IConditionalOrder.ConditionalOrderParams memory,bytes32[] memory) view returns (bytes32)" - } - }, - "id": 53921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8205:27:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8191:41:134" - }, - { - "clauses": [ - { - "block": { - "id": 53946, - "nodeType": "Block", - "src": "8481:103:134", - "statements": [ - { - "condition": { - "id": 53940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8499:10:134", - "subExpression": { - "id": 53939, - "name": "supported", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53937, - "src": "8500:9:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 53945, - "nodeType": "IfStatement", - "src": "8495:79:134", - "trueBody": { - "id": 53944, - "nodeType": "Block", - "src": "8511:63:134", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 53941, - "name": "InterfaceNotSupported", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53525, - "src": "8536:21:134", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 53942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8536:23:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 53943, - "nodeType": "RevertStatement", - "src": "8529:30:134" - } - ] - } - } - ] - }, - "errorName": "", - "id": 53947, - "nodeType": "TryCatchClause", - "parameters": { - "id": 53938, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53937, - "mutability": "mutable", - "name": "supported", - "nameLocation": "8470:9:134", - "nodeType": "VariableDeclaration", - "scope": 53947, - "src": "8465:14:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 53936, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8465:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "8464:16:134" - }, - "src": "8456:128:134" - }, - { - "block": { - "id": 53951, - "nodeType": "Block", - "src": "8591:55:134", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 53948, - "name": "InterfaceNotSupported", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53525, - "src": "8612:21:134", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 53949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8612:23:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 53950, - "nodeType": "RevertStatement", - "src": "8605:30:134" - } - ] - }, - "errorName": "", - "id": 53952, - "nodeType": "TryCatchClause", - "src": "8585:61:134" - } - ], - "externalCall": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 53932, - "name": "IConditionalOrderGenerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54468, - "src": "8406:26:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54468_$", - "typeString": "type(contract IConditionalOrderGenerator)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54468_$", - "typeString": "type(contract IConditionalOrderGenerator)" - } - ], - "id": 53931, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "8401:4:134", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 53933, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8401:32:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_IConditionalOrderGenerator_$54468", - "typeString": "type(contract IConditionalOrderGenerator)" - } - }, - "id": 53934, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8434:11:134", - "memberName": "interfaceId", - "nodeType": "MemberAccess", - "src": "8401:44:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 53926, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "8353:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - }, - "id": 53927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8360:7:134", - "memberName": "handler", - "nodeType": "MemberAccess", - "referencedDeclaration": 54410, - "src": "8353:14:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", - "typeString": "contract IConditionalOrder" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", - "typeString": "contract IConditionalOrder" - } - ], - "id": 53925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8345:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 53924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8345:7:134", - "typeDescriptions": {} - } - }, - "id": 53928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8345:23:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 53923, - "name": "IConditionalOrderGenerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54468, - "src": "8318:26:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54468_$", - "typeString": "type(contract IConditionalOrderGenerator)" - } - }, - "id": 53929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8318:51:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrderGenerator_$54468", - "typeString": "contract IConditionalOrderGenerator" - } - }, - "id": 53930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8370:17:134", - "memberName": "supportsInterface", - "nodeType": "MemberAccess", - "referencedDeclaration": 52196, - "src": "8318:69:134", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes4_$returns$_t_bool_$", - "typeString": "function (bytes4) view external returns (bool)" - } - }, - "id": 53935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8318:137:134", - "tryCall": true, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 53953, - "nodeType": "TryStatement", - "src": "8314:332:134" - }, - { - "expression": { - "id": 53971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 53954, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53911, - "src": "8656:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 53963, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53899, - "src": "8747:5:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 53964, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8754:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 53965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8758:6:134", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "8754:10:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 53966, - "name": "ctx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53916, - "src": "8766:3:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 53967, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "8771:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - }, - "id": 53968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8778:11:134", - "memberName": "staticInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 54414, - "src": "8771:18:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "id": 53969, - "name": "offchainInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53904, - "src": "8791:13:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 53958, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "8699:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - }, - "id": 53959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8706:7:134", - "memberName": "handler", - "nodeType": "MemberAccess", - "referencedDeclaration": 54410, - "src": "8699:14:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", - "typeString": "contract IConditionalOrder" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", - "typeString": "contract IConditionalOrder" - } - ], - "id": 53957, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8691:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 53956, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8691:7:134", - "typeDescriptions": {} - } - }, - "id": 53960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8691:23:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 53955, - "name": "IConditionalOrderGenerator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54468, - "src": "8664:26:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54468_$", - "typeString": "type(contract IConditionalOrderGenerator)" - } - }, - "id": 53961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8664:51:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrderGenerator_$54468", - "typeString": "contract IConditionalOrderGenerator" - } - }, - "id": 53962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8716:17:134", - "memberName": "getTradeableOrder", - "nodeType": "MemberAccess", - "referencedDeclaration": 54467, - "src": "8664:69:134", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_Data_$17121_memory_ptr_$", - "typeString": "function (address,address,bytes32,bytes memory,bytes memory) view external returns (struct GPv2Order.Data memory)" - } - }, - "id": 53970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8664:150:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "src": "8656:158:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 53972, - "nodeType": "ExpressionStatement", - "src": "8656:158:134" - }, - { - "condition": { - "id": 53981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8900:56:134", - "subExpression": { - "components": [ - { - "arguments": [ - { - "id": 53974, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53899, - "src": "8914:5:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 53975, - "name": "ctx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53916, - "src": "8921:3:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 53976, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "8926:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - }, - { - "id": 53977, - "name": "offchainInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53904, - "src": "8934:13:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "id": 53978, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53911, - "src": "8949:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - ], - "id": 53973, - "name": "_guardCheck", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54176, - "src": "8902:11:134", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Data_$17121_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,bytes32,struct IConditionalOrder.ConditionalOrderParams memory,bytes memory,struct GPv2Order.Data memory) view returns (bool)" - } - }, - "id": 53979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8902:53:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 53980, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8901:55:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 53986, - "nodeType": "IfStatement", - "src": "8896:115:134", - "trueBody": { - "id": 53985, - "nodeType": "Block", - "src": "8958:53:134", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 53982, - "name": "SwapGuardRestricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53519, - "src": "8979:19:134", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 53983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8979:21:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 53984, - "nodeType": "RevertStatement", - "src": "8972:28:134" - } - ] - } - }, - { - "clauses": [ - { - "block": { - "id": 54028, - "nodeType": "Block", - "src": "9166:439:134", - "statements": [ - { - "condition": { - "id": 54000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "9184:10:134", - "subExpression": { - "id": 53999, - "name": "supported", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53997, - "src": "9185:9:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 54005, - "nodeType": "IfStatement", - "src": "9180:80:134", - "trueBody": { - "id": 54004, - "nodeType": "Block", - "src": "9196:64:134", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 54001, - "name": "InvalidFallbackHandler", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53523, - "src": "9221:22:134", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 54002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9221:24:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 54003, - "nodeType": "RevertStatement", - "src": "9214:31:134" - } - ] - } - }, - { - "expression": { - "id": 54026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 54006, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53913, - "src": "9273:9:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "hexValue": "736166655369676e617475726528627974657333322c627974657333322c62797465732c627974657329", - "id": 54009, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9326:44:134", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fd7e97d23ef360c5d2e60fa1c324a4e6732bed1784f8dbd80419b885c65f5a0", - "typeString": "literal_string \"safeSignature(bytes32,bytes32,bytes,bytes)\"" - }, - "value": "safeSignature(bytes32,bytes32,bytes,bytes)" - }, - { - "id": 54010, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53564, - "src": "9388:15:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 54011, - "name": "GPv2Order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "9421:9:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", - "typeString": "type(library GPv2Order)" - } - }, - "id": 54012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9431:9:134", - "memberName": "TYPE_HASH", - "nodeType": "MemberAccess", - "referencedDeclaration": 17125, - "src": "9421:19:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "arguments": [ - { - "id": 54015, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53911, - "src": "9469:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - ], - "expression": { - "id": 54013, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "9458:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 54014, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9462:6:134", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "9458:10:134", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 54016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9458:17:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 54020, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "9527:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - }, - { - "id": 54021, - "name": "offchainInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53904, - "src": "9550:13:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "id": 54022, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53907, - "src": "9572:5:134", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - ], - "id": 54019, - "name": "PayloadStruct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53534, - "src": "9504:13:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53534_storage_ptr_$", - "typeString": "type(struct ComposableCoW.PayloadStruct storage pointer)" - } - }, - "id": 54023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "9519:6:134", - "9535:13:134", - "9565:5:134" - ], - "names": [ - "params", - "offchainInput", - "proof" - ], - "nodeType": "FunctionCall", - "src": "9504:75:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - ], - "expression": { - "id": 54017, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "9493:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 54018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9497:6:134", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "9493:10:134", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 54024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9493:87:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_5fd7e97d23ef360c5d2e60fa1c324a4e6732bed1784f8dbd80419b885c65f5a0", - "typeString": "literal_string \"safeSignature(bytes32,bytes32,bytes,bytes)\"" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 54007, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "9285:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 54008, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9289:19:134", - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "src": "9285:23:134", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 54025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9285:309:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "9273:321:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 54027, - "nodeType": "ExpressionStatement", - "src": "9273:321:134" - } - ] - }, - "errorName": "", - "id": 54029, - "nodeType": "TryCatchClause", - "parameters": { - "id": 53998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53997, - "mutability": "mutable", - "name": "supported", - "nameLocation": "9146:9:134", - "nodeType": "VariableDeclaration", - "scope": 54029, - "src": "9141:14:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 53996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9141:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "9127:38:134" - }, - "src": "9119:486:134" - }, - { - "block": { - "id": 54042, - "nodeType": "Block", - "src": "9612:314:134", - "statements": [ - { - "expression": { - "id": 54040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 54030, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53913, - "src": "9809:9:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 54033, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53911, - "src": "9832:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - { - "arguments": [ - { - "id": 54035, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "9862:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - } - }, - { - "id": 54036, - "name": "offchainInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53904, - "src": "9885:13:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "id": 54037, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53907, - "src": "9907:5:134", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[] calldata" - } - ], - "id": 54034, - "name": "PayloadStruct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53534, - "src": "9839:13:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53534_storage_ptr_$", - "typeString": "type(struct ComposableCoW.PayloadStruct storage pointer)" - } - }, - "id": 54038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "9854:6:134", - "9870:13:134", - "9900:5:134" - ], - "names": [ - "params", - "offchainInput", - "proof" - ], - "nodeType": "FunctionCall", - "src": "9839:75:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - }, - { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", - "typeString": "struct ComposableCoW.PayloadStruct memory" - } - ], - "expression": { - "id": 54031, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "9821:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 54032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9825:6:134", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "9821:10:134", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 54039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9821:94:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "9809:106:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 54041, - "nodeType": "ExpressionStatement", - "src": "9809:106:134" - } - ] - }, - "errorName": "", - "id": 54043, - "nodeType": "TryCatchClause", - "src": "9606:320:134" - } - ], - "externalCall": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 53992, - "name": "ISignatureVerifierMuxer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 51655, - "src": "9081:23:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISignatureVerifierMuxer_$51655_$", - "typeString": "type(contract ISignatureVerifierMuxer)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_ISignatureVerifierMuxer_$51655_$", - "typeString": "type(contract ISignatureVerifierMuxer)" - } - ], - "id": 53991, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "9076:4:134", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 53993, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9076:29:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_ISignatureVerifierMuxer_$51655", - "typeString": "type(contract ISignatureVerifierMuxer)" - } - }, - "id": 53994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9106:11:134", - "memberName": "interfaceId", - "nodeType": "MemberAccess", - "src": "9076:41:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "arguments": [ - { - "id": 53988, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53899, - "src": "9051:5:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 53987, - "name": "ExtensibleFallbackHandler", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50607, - "src": "9025:25:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ExtensibleFallbackHandler_$50607_$", - "typeString": "type(contract ExtensibleFallbackHandler)" - } - }, - "id": 53989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9025:32:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ExtensibleFallbackHandler_$50607", - "typeString": "contract ExtensibleFallbackHandler" - } - }, - "id": 53990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9058:17:134", - "memberName": "supportsInterface", - "nodeType": "MemberAccess", - "referencedDeclaration": 51361, - "src": "9025:50:134", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes4_$returns$_t_bool_$", - "typeString": "function (bytes4) view external returns (bool)" - } - }, - "id": 53995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9025:93:134", - "tryCall": true, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 54044, - "nodeType": "TryStatement", - "src": "9021:905:134" - } - ] - }, - "documentation": { - "id": 53897, - "nodeType": "StructuredDocumentation", - "src": "7307:509:134", - "text": " Get the `GPv2Order.Data` and signature for submitting to CoW Protocol API\n @param owner of the order\n @param params `ConditionalOrderParams` for the order\n @param offchainInput any dynamic off-chain input for generating the discrete order\n @param proof if using merkle-roots that H(handler || salt || staticInput) is in the merkle tree\n @return order discrete order for submitting to CoW Protocol API\n @return signature for submitting to CoW Protocol API" - }, - "functionSelector": "26e0a196", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTradeableOrderWithSignature", - "nameLocation": "7830:30:134", - "parameters": { - "id": 53908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53899, - "mutability": "mutable", - "name": "owner", - "nameLocation": "7878:5:134", - "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "7870:13:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53898, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7870:7:134", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53902, - "mutability": "mutable", - "name": "params", - "nameLocation": "7943:6:134", - "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "7893:56:134", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - }, - "typeName": { - "id": 53901, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53900, - "name": "IConditionalOrder.ConditionalOrderParams", - "nameLocations": [ - "7893:17:134", - "7911:22:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "7893:40:134" - }, - "referencedDeclaration": 54415, - "src": "7893:40:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53904, - "mutability": "mutable", - "name": "offchainInput", - "nameLocation": "7974:13:134", - "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "7959:28:134", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 53903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7959:5:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53907, - "mutability": "mutable", - "name": "proof", - "nameLocation": "8016:5:134", - "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "7997:24:134", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 53905, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7997:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 53906, - "nodeType": "ArrayTypeName", - "src": "7997:9:134", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "visibility": "internal" - } - ], - "src": "7860:167:134" - }, - "returnParameters": { - "id": 53914, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53911, - "mutability": "mutable", - "name": "order", - "nameLocation": "8073:5:134", - "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "8051:27:134", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data" - }, - "typeName": { - "id": 53910, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 53909, - "name": "GPv2Order.Data", - "nameLocations": [ - "8051:9:134", - "8061:4:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "8051:14:134" - }, - "referencedDeclaration": 17121, - "src": "8051:14:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", - "typeString": "struct GPv2Order.Data" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 53913, - "mutability": "mutable", - "name": "signature", - "nameLocation": "8093:9:134", - "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "8080:22:134", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 53912, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8080:5:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "8050:53:134" - }, - "scope": 54177, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 54063, - "nodeType": "FunctionDefinition", - "src": "10165:153:134", - "nodes": [], - "body": { - "id": 54062, - "nodeType": "Block", - "src": "10265:53:134", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 54058, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54050, - "src": "10303:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - } - ], - "expression": { - "id": 54056, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "10292:3:134", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 54057, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "10296:6:134", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "10292:10:134", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 54059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10292:18:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 54055, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "10282:9:134", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 54060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10282:29:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 54054, - "id": 54061, - "nodeType": "Return", - "src": "10275:36:134" - } - ] - }, - "documentation": { - "id": 54047, - "nodeType": "StructuredDocumentation", - "src": "9974:186:134", - "text": " Return the hash of the conditional order parameters\n @param params `ConditionalOrderParams` for the order\n @return hash of the conditional order parameters" - }, - "functionSelector": "5500079d", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hash", - "nameLocation": "10174:4:134", - "parameters": { - "id": 54051, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 54050, - "mutability": "mutable", - "name": "params", - "nameLocation": "10227:6:134", - "nodeType": "VariableDeclaration", - "scope": 54063, - "src": "10179:54:134", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - }, - "typeName": { - "id": 54049, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 54048, - "name": "IConditionalOrder.ConditionalOrderParams", - "nameLocations": [ - "10179:17:134", - "10197:22:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "10179:40:134" - }, - "referencedDeclaration": 54415, - "src": "10179:40:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - } - }, - "visibility": "internal" - } - ], - "src": "10178:56:134" - }, - "returnParameters": { - "id": 54054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 54053, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 54063, - "src": "10256:7:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 54052, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10256:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "10255:9:134" - }, - "scope": 54177, - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - }, - { - "id": 54129, - "nodeType": "FunctionDefinition", - "src": "10702:721:134", - "nodes": [], - "body": { - "id": 54128, - "nodeType": "Block", - "src": "10876:547:134", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 54080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 54077, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54072, - "src": "10890:5:134", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 54078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10896:6:134", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "10890:12:134", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 54079, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10906:1:134", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10890:17:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 54126, - "nodeType": "Block", - "src": "11220:197:134", - "statements": [ - { - "expression": { - "id": 54113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 54109, - "name": "ctx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54075, - "src": "11282:3:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 54111, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54069, - "src": "11293:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - } - ], - "id": 54110, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54063, - "src": "11288:4:134", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (struct IConditionalOrder.ConditionalOrderParams memory) pure returns (bytes32)" - } - }, - "id": 54112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11288:12:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "11282:18:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 54114, - "nodeType": "ExpressionStatement", - "src": "11282:18:134" - }, - { - "condition": { - "id": 54120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11318:25:134", - "subExpression": { - "baseExpression": { - "baseExpression": { - "id": 54115, - "name": "singleOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53576, - "src": "11319:12:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", - "typeString": "mapping(address => mapping(bytes32 => bool))" - } - }, - "id": 54117, - "indexExpression": { - "id": 54116, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54066, - "src": "11332:5:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11319:19:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 54119, - "indexExpression": { - "id": 54118, - "name": "ctx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54075, - "src": "11339:3:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11319:24:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 54125, - "nodeType": "IfStatement", - "src": "11314:93:134", - "trueBody": { - "id": 54124, - "nodeType": "Block", - "src": "11345:62:134", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 54121, - "name": "SingleOrderNotAuthed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53517, - "src": "11370:20:134", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 54122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11370:22:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 54123, - "nodeType": "RevertStatement", - "src": "11363:29:134" - } - ] - } - } - ] - }, - "id": 54127, - "nodeType": "IfStatement", - "src": "10886:531:134", - "trueBody": { - "id": 54108, - "nodeType": "Block", - "src": "10909:305:134", - "statements": [ - { - "assignments": [ - 54083 - ], - "declarations": [ - { - "constant": false, - "id": 54083, - "mutability": "mutable", - "name": "leaf", - "nameLocation": "10994:4:134", - "nodeType": "VariableDeclaration", - "scope": 54108, - "src": "10986:12:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 54082, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10986:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "documentation": "@dev Computing proof using leaf double hashing", - "id": 54093, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 54089, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54069, - "src": "11029:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - } - ], - "id": 54088, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54063, - "src": "11024:4:134", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (struct IConditionalOrder.ConditionalOrderParams memory) pure returns (bytes32)" - } - }, - "id": 54090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11024:12:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 54086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11011:5:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 54085, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11011:5:134", - "typeDescriptions": {} - } - }, - "id": 54087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11017:6:134", - "memberName": "concat", - "nodeType": "MemberAccess", - "src": "11011:12:134", - "typeDescriptions": { - "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 54091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11011:26:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 54084, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "11001:9:134", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 54092, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11001:37:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10986:52:134" - }, - { - "condition": { - "id": 54102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11100:46:134", - "subExpression": { - "arguments": [ - { - "id": 54096, - "name": "proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54072, - "src": "11120:5:134", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - { - "baseExpression": { - "id": 54097, - "name": "roots", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53569, - "src": "11127:5:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$", - "typeString": "mapping(address => bytes32)" - } - }, - "id": 54099, - "indexExpression": { - "id": 54098, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54066, - "src": "11133:5:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11127:12:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 54100, - "name": "leaf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54083, - "src": "11141:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 54094, - "name": "MerkleProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "11101:11:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_MerkleProof_$1245_$", - "typeString": "type(library MerkleProof)" - } - }, - "id": 54095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11113:6:134", - "memberName": "verify", - "nodeType": "MemberAccess", - "referencedDeclaration": 741, - "src": "11101:18:134", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32[] memory,bytes32,bytes32) pure returns (bool)" - } - }, - "id": 54101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11101:45:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 54107, - "nodeType": "IfStatement", - "src": "11096:108:134", - "trueBody": { - "id": 54106, - "nodeType": "Block", - "src": "11148:56:134", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 54103, - "name": "ProofNotAuthed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53515, - "src": "11173:14:134", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 54104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11173:16:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 54105, - "nodeType": "RevertStatement", - "src": "11166:23:134" - } - ] - } - } - ] - } - } - ] - }, - "documentation": { - "id": 54064, - "nodeType": "StructuredDocumentation", - "src": "10355:342:134", - "text": " Check if the order has been authorised by the owner\n @dev If `proof.length == 0`, then we use the single order auth\n @param owner of the order whose authorisation is being checked\n @param params that uniquely identify the order\n @param proof to assert that H(params) is in the merkle tree (optional)" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_auth", - "nameLocation": "10711:5:134", - "parameters": { - "id": 54073, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 54066, - "mutability": "mutable", - "name": "owner", - "nameLocation": "10725:5:134", - "nodeType": "VariableDeclaration", - "scope": 54129, - "src": "10717:13:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 54065, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10717:7:134", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 54069, - "mutability": "mutable", - "name": "params", - "nameLocation": "10780:6:134", - "nodeType": "VariableDeclaration", - "scope": 54129, - "src": "10732:54:134", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - }, - "typeName": { - "id": 54068, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 54067, - "name": "IConditionalOrder.ConditionalOrderParams", - "nameLocations": [ - "10732:17:134", - "10750:22:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "10732:40:134" - }, - "referencedDeclaration": 54415, - "src": "10732:40:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 54072, - "mutability": "mutable", - "name": "proof", - "nameLocation": "10805:5:134", - "nodeType": "VariableDeclaration", - "scope": 54129, - "src": "10788:22:134", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 54070, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10788:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 54071, - "nodeType": "ArrayTypeName", - "src": "10788:9:134", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "visibility": "internal" - } - ], - "src": "10716:95:134" - }, - "returnParameters": { - "id": 54076, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 54075, - "mutability": "mutable", - "name": "ctx", - "nameLocation": "10867:3:134", - "nodeType": "VariableDeclaration", - "scope": 54129, - "src": "10859:11:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 54074, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10859:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "10858:13:134" - }, - "scope": 54177, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 54176, - "nodeType": "FunctionDefinition", - "src": "11830:433:134", - "nodes": [], - "body": { - "id": 54175, - "nodeType": "Block", - "src": "12067:196:134", - "nodes": [], - "statements": [ - { - "assignments": [ - 54149 - ], - "declarations": [ - { - "constant": false, - "id": 54149, - "mutability": "mutable", - "name": "guard", - "nameLocation": "12088:5:134", - "nodeType": "VariableDeclaration", - "scope": 54175, - "src": "12077:16:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - }, - "typeName": { - "id": 54148, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 54147, - "name": "ISwapGuard", - "nameLocations": [ - "12077:10:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54496, - "src": "12077:10:134" - }, - "referencedDeclaration": 54496, - "src": "12077:10:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - }, - "visibility": "internal" - } - ], - "id": 54153, - "initialValue": { - "baseExpression": { - "id": 54150, - "name": "swapGuards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53581, - "src": "12096:10:134", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54496_$", - "typeString": "mapping(address => contract ISwapGuard)" - } - }, - "id": 54152, - "indexExpression": { - "id": 54151, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54132, - "src": "12107:5:134", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12096:17:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12077:36:134" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 54162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 54156, - "name": "guard", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54149, - "src": "12135:5:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - ], - "id": 54155, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12127:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 54154, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12127:7:134", - "typeDescriptions": {} - } - }, - "id": 54157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12127:14:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 54160, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12153:1:134", - "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": 54159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12145:7:134", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 54158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12145:7:134", - "typeDescriptions": {} - } - }, - "id": 54161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12145:10:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12127:28:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 54172, - "nodeType": "IfStatement", - "src": "12123:113:134", - "trueBody": { - "id": 54171, - "nodeType": "Block", - "src": "12157:79:134", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 54165, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54142, - "src": "12191:5:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - { - "id": 54166, - "name": "ctx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54134, - "src": "12198:3:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 54167, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54137, - "src": "12203:6:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - } - }, - { - "id": 54168, - "name": "offchainInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54139, - "src": "12211:13:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 54163, - "name": "guard", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54149, - "src": "12178:5:134", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", - "typeString": "contract ISwapGuard" - } - }, - "id": 54164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12184:6:134", - "memberName": "verify", - "nodeType": "MemberAccess", - "referencedDeclaration": 54495, - "src": "12178:12:134", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_struct$_Data_$17121_memory_ptr_$_t_bytes32_$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct GPv2Order.Data memory,bytes32,struct IConditionalOrder.ConditionalOrderParams memory,bytes memory) view external returns (bool)" - } - }, - "id": 54169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12178:47:134", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 54146, - "id": 54170, - "nodeType": "Return", - "src": "12171:54:134" - } - ] - } - }, - { - "expression": { - "hexValue": "74727565", - "id": 54173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12252:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 54146, - "id": 54174, - "nodeType": "Return", - "src": "12245:11:134" - } - ] - }, - "documentation": { - "id": 54130, - "nodeType": "StructuredDocumentation", - "src": "11429:396:134", - "text": " Check the swap guard if the order is restricted or not\n @param owner who's swap guard to check\n @param ctx of the order (bytes32(0) if a merkle tree is used, otherwise H(params))\n @param params that uniquely identify the order\n @param offchainInput that has been proposed by `sender`\n @param order GPv2Order.Data that has been proposed by `sender`" - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_guardCheck", - "nameLocation": "11839:11:134", - "parameters": { - "id": 54143, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 54132, - "mutability": "mutable", - "name": "owner", - "nameLocation": "11868:5:134", - "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "11860:13:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 54131, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11860:7:134", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 54134, - "mutability": "mutable", - "name": "ctx", - "nameLocation": "11891:3:134", - "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "11883:11:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 54133, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11883:7:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 54137, - "mutability": "mutable", - "name": "params", - "nameLocation": "11952:6:134", - "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "11904:54:134", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - }, - "typeName": { - "id": 54136, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 54135, - "name": "IConditionalOrder.ConditionalOrderParams", - "nameLocations": [ - "11904:17:134", - "11922:22:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "11904:40:134" - }, - "referencedDeclaration": 54415, - "src": "11904:40:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", - "typeString": "struct IConditionalOrder.ConditionalOrderParams" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 54139, - "mutability": "mutable", - "name": "offchainInput", - "nameLocation": "11981:13:134", - "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "11968:26:134", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 54138, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11968:5:134", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 54142, - "mutability": "mutable", - "name": "order", - "nameLocation": "12026:5:134", - "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "12004:27:134", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data" - }, - "typeName": { - "id": 54141, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 54140, - "name": "GPv2Order.Data", - "nameLocations": [ - "12004:9:134", - "12014:4:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "12004:14:134" - }, - "referencedDeclaration": 17121, - "src": "12004:14:134", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", - "typeString": "struct GPv2Order.Data" - } - }, - "visibility": "internal" - } - ], - "src": "11850:187:134" - }, - "returnParameters": { - "id": 54146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 54145, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "12061:4:134", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 54144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12061:4:134", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "12060:6:134" - }, - "scope": 54177, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 53512, - "name": "ISafeSignatureVerifier", - "nameLocations": [ - "605:22:134" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 51635, - "src": "605:22:134" - }, - "id": 53513, - "nodeType": "InheritanceSpecifier", - "src": "605:22:134" - } - ], - "canonicalName": "ComposableCoW", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 53511, - "nodeType": "StructuredDocumentation", - "src": "375:203:134", - "text": " @title ComposableCoW - A contract that allows users to create multiple conditional orders\n @author mfw78 \n @dev Designed to be used with Safe + ExtensibleFallbackHandler" - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 54177, - 51635 - ], - "name": "ComposableCoW", - "nameLocation": "588:13:134", - "scope": 54178, - "usedErrors": [ - 53515, - 53517, - 53519, - 53521, - 53523, - 53525 - ] - } - ], - "license": "GPL-3.0" - }, - "id": 134 -} \ No newline at end of file diff --git a/actions/artifacts/ERC20.json b/actions/artifacts/ERC20.json deleted file mode 100644 index 15496d1..0000000 --- a/actions/artifacts/ERC20.json +++ /dev/null @@ -1,8241 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": { - "object": "0x60806040523480156200001157600080fd5b5060405162000e0f38038062000e0f83398101604081905262000034916200011f565b600362000042838262000218565b50600462000051828262000218565b505050620002e4565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b600093810190920192909252949350505050565b600080604083850312156200013357600080fd5b82516001600160401b03808211156200014b57600080fd5b620001598683870162000070565b935060208501519150808211156200017057600080fd5b506200017f8582860162000070565b9150509250929050565b600181811c908216806200019e57607f821691505b602082108103620001bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021357600081815260208120601f850160051c81016020861015620001ee5750805b601f850160051c820191505b818110156200020f57828155600101620001fa565b5050505b505050565b81516001600160401b038111156200023457620002346200005a565b6200024c8162000245845462000189565b84620001c5565b602080601f8311600181146200028457600084156200026b5750858301515b600019600386901b1c1916600185901b1785556200020f565b600085815260208120601f198616915b82811015620002b55788860151825594840194600190910190840162000294565b5085821015620002d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610b1b80620002f46000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610194578063a9059cbb146101a7578063dd62ed3e146101ba57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461018c57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d6610200565b6040516100e39190610908565b60405180910390f35b6100ff6100fa36600461099d565b610292565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f3660046109c7565b6102ac565b604051601281526020016100e3565b6100ff61015136600461099d565b6102d0565b610113610164366004610a03565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100d661031c565b6100ff6101a236600461099d565b61032b565b6100ff6101b536600461099d565b610401565b6101136101c8366004610a25565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461020f90610a58565b80601f016020809104026020016040519081016040528092919081815260200182805461023b90610a58565b80156102885780601f1061025d57610100808354040283529160200191610288565b820191906000526020600020905b81548152906001019060200180831161026b57829003601f168201915b5050505050905090565b6000336102a081858561040f565b60019150505b92915050565b6000336102ba8582856105c2565b6102c5858585610699565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102a09082908690610317908790610aab565b61040f565b60606004805461020f90610a58565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102c5828686840361040f565b6000336102a0818585610699565b73ffffffffffffffffffffffffffffffffffffffff83166104b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff8216610554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106935781811015610686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b610693848484840361040f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831661073c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff82166107df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610693565b600060208083528351808285015260005b8181101561093557858101830151858201604001528201610919565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461099857600080fd5b919050565b600080604083850312156109b057600080fd5b6109b983610974565b946020939093013593505050565b6000806000606084860312156109dc57600080fd5b6109e584610974565b92506109f360208501610974565b9150604084013590509250925092565b600060208284031215610a1557600080fd5b610a1e82610974565b9392505050565b60008060408385031215610a3857600080fd5b610a4183610974565b9150610a4f60208401610974565b90509250929050565b600181811c90821680610a6c57607f821691505b602082108103610aa5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b808201808211156102a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220b80ce698ffeb0bda529f68097e5174a05edacb91f912cc3381d76fc5aae2909164736f6c63430008130033", - "sourceMap": "1532:11312:2:-:0;;;1980:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2046:5;:13;2054:5;2046;:13;:::i;:::-;-1:-1:-1;2069:7:2;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;1532:11312;;14:127:168;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:168;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:168;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:168:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:168;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:168;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:168;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:168;;;3992:26;3943:89;-1:-1:-1;;2747:1:168;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:168;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:168;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:168;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:168:o;:::-;1532:11312:2;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610194578063a9059cbb146101a7578063dd62ed3e146101ba57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461018c57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d6610200565b6040516100e39190610908565b60405180910390f35b6100ff6100fa36600461099d565b610292565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f3660046109c7565b6102ac565b604051601281526020016100e3565b6100ff61015136600461099d565b6102d0565b610113610164366004610a03565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100d661031c565b6100ff6101a236600461099d565b61032b565b6100ff6101b536600461099d565b610401565b6101136101c8366004610a25565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461020f90610a58565b80601f016020809104026020016040519081016040528092919081815260200182805461023b90610a58565b80156102885780601f1061025d57610100808354040283529160200191610288565b820191906000526020600020905b81548152906001019060200180831161026b57829003601f168201915b5050505050905090565b6000336102a081858561040f565b60019150505b92915050565b6000336102ba8582856105c2565b6102c5858585610699565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102a09082908690610317908790610aab565b61040f565b60606004805461020f90610a58565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102c5828686840361040f565b6000336102a0818585610699565b73ffffffffffffffffffffffffffffffffffffffff83166104b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff8216610554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106935781811015610686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b610693848484840361040f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831661073c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff82166107df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610693565b600060208083528351808285015260005b8181101561093557858101830151858201604001528201610919565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461099857600080fd5b919050565b600080604083850312156109b057600080fd5b6109b983610974565b946020939093013593505050565b6000806000606084860312156109dc57600080fd5b6109e584610974565b92506109f360208501610974565b9150604084013590509250925092565b600060208284031215610a1557600080fd5b610a1e82610974565b9392505050565b60008060408385031215610a3857600080fd5b610a4183610974565b9150610a4f60208401610974565b90509250929050565b600181811c90821680610a6c57607f821691505b602082108103610aa5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b808201808211156102a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220b80ce698ffeb0bda529f68097e5174a05edacb91f912cc3381d76fc5aae2909164736f6c63430008130033", - "sourceMap": "1532:11312:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;1251:14:168;;1244:22;1226:41;;1214:2;1199:18;4444:197:2;1086:187:168;3255:106:2;3342:12;;3255:106;;;1424:25:168;;;1412:2;1397:18;3255:106:2;1278:177:168;5203:256:2;;;;;;:::i;:::-;;:::i;3104:91::-;;;3186:2;1935:36:168;;1923:2;1908:18;3104:91:2;1793:184:168;5854:234:2;;;;;;:::i;:::-;;:::i;3419:125::-;;;;;;:::i;:::-;3519:18;;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;4102:18;;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;719:10:5;4581:32:2;719:10:5;4597:7:2;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;719:10:5;5356:38:2;5372:4;719:10:5;5387:6:2;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:2;;5203:256;-1:-1:-1;;;;5203:256:2:o;5854:234::-;719:10:5;5942:4:2;4102:18;;;:11;:18;;;;;;;;;:27;;;;;;;;;;5942:4;;719:10:5;5996:64:2;;719:10:5;;4102:27:2;;6021:38;;6049:10;;6021:38;:::i;:::-;5996:8;:64::i;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;719:10:5;6668:4:2;4102:18;;;:11;:18;;;;;;;;;:27;;;;;;;;;;6668:4;;719:10:5;6812:15:2;6792:16;:35;;6784:85;;;;;;;3366:2:168;6784:85:2;;;3348:21:168;3405:2;3385:18;;;3378:30;3444:34;3424:18;;;3417:62;3515:7;3495:18;;;3488:35;3540:19;;6784:85:2;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;719:10:5;3873:28:2;719:10:5;3890:2:2;3894:6;3873:9;:28::i;10457:340::-;10558:19;;;10550:68;;;;;;;3772:2:168;10550:68:2;;;3754:21:168;3811:2;3791:18;;;3784:30;3850:34;3830:18;;;3823:62;3921:6;3901:18;;;3894:34;3945:19;;10550:68:2;3570:400:168;10550:68:2;10636:21;;;10628:68;;;;;;;4177:2:168;10628:68:2;;;4159:21:168;4216:2;4196:18;;;4189:30;4255:34;4235:18;;;4228:62;4326:4;4306:18;;;4299:32;4348:19;;10628:68:2;3975:398:168;10628:68:2;10707:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10758:32;;1424:25:168;;;10758:32:2;;1397:18:168;10758:32:2;;;;;;;10457:340;;;:::o;11078:411::-;4102:18;;;;11178:24;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;11264:17;11244:37;;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;4580:2:168;11297:68:2;;;4562:21:168;4619:2;4599:18;;;4592:30;4658:31;4638:18;;;4631:59;4707:18;;11297:68:2;4378:353:168;11297:68:2;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;7552:18;;;7544:68;;;;;;;4938:2:168;7544:68:2;;;4920:21:168;4977:2;4957:18;;;4950:30;5016:34;4996:18;;;4989:62;5087:7;5067:18;;;5060:35;5112:19;;7544:68:2;4736:401:168;7544:68:2;7630:16;;;7622:64;;;;;;;5344:2:168;7622:64:2;;;5326:21:168;5383:2;5363:18;;;5356:30;5422:34;5402:18;;;5395:62;5493:5;5473:18;;;5466:33;5516:19;;7622:64:2;5142:399:168;7622:64:2;7768:15;;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;;;;5748:2:168;7793:72:2;;;5730:21:168;5787:2;5767:18;;;5760:30;5826:34;5806:18;;;5799:62;5897:8;5877:18;;;5870:36;5923:19;;7793:72:2;5546:402:168;7793:72:2;7899:15;;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;1424:25:168;;;8114:13:2;;8163:26;;1397:18:168;8163:26:2;;;;;;;8200:37;12073:91;14:607:168;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;612:2;542:66;537:2;529:6;525:15;521:88;510:9;506:104;502:113;494:121;;;;14:607;;;;:::o;626:196::-;694:20;;754:42;743:54;;733:65;;723:93;;812:1;809;802:12;723:93;626:196;;;:::o;827:254::-;895:6;903;956:2;944:9;935:7;931:23;927:32;924:52;;;972:1;969;962:12;924:52;995:29;1014:9;995:29;:::i;:::-;985:39;1071:2;1056:18;;;;1043:32;;-1:-1:-1;;;827:254:168:o;1460:328::-;1537:6;1545;1553;1606:2;1594:9;1585:7;1581:23;1577:32;1574:52;;;1622:1;1619;1612:12;1574:52;1645:29;1664:9;1645:29;:::i;:::-;1635:39;;1693:38;1727:2;1716:9;1712:18;1693:38;:::i;:::-;1683:48;;1778:2;1767:9;1763:18;1750:32;1740:42;;1460:328;;;;;:::o;1982:186::-;2041:6;2094:2;2082:9;2073:7;2069:23;2065:32;2062:52;;;2110:1;2107;2100:12;2062:52;2133:29;2152:9;2133:29;:::i;:::-;2123:39;1982:186;-1:-1:-1;;;1982:186:168:o;2173:260::-;2241:6;2249;2302:2;2290:9;2281:7;2277:23;2273:32;2270:52;;;2318:1;2315;2308:12;2270:52;2341:29;2360:9;2341:29;:::i;:::-;2331:39;;2389:38;2423:2;2412:9;2408:18;2389:38;:::i;:::-;2379:48;;2173:260;;;;;:::o;2438:437::-;2517:1;2513:12;;;;2560;;;2581:61;;2635:4;2627:6;2623:17;2613:27;;2581:61;2688:2;2680:6;2677:14;2657:18;2654:38;2651:218;;2725:77;2722:1;2715:88;2826:4;2823:1;2816:15;2854:4;2851:1;2844:15;2651:218;;2438:437;;;:::o;2880:279::-;2945:9;;;2966:10;;;2963:190;;;3009:77;3006:1;2999:88;3110:4;3107:1;3100:15;3138:4;3135:1;3128:15", - "linkReferences": {} - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "decreaseAllowance(address,uint256)": "a457c2d7", - "increaseAllowance(address,uint256)": "39509351", - "name()": "06fdde03", - "symbol()": "95d89b41", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/contracts/\",\":@openzeppelin/contracts/=lib/@openzeppelin/contracts/\",\":balancer/=lib/balancer/src/\",\":canonical-weth/=lib/canonical-weth/src/\",\":cowprotocol/=lib/cowprotocol/src/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/@openzeppelin/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":helpers/=lib/balancer/src/lib/helpers/\",\":math/=lib/balancer/src/lib/math/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/murky/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/@openzeppelin/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"lib/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.19+commit.7dd6d404" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "spender", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "Approval", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "to", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "Transfer", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "allowance(address,address)": { - "details": "See {IERC20-allowance}." - }, - "approve(address,uint256)": { - "details": "See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address." - }, - "balanceOf(address)": { - "details": "See {IERC20-balanceOf}." - }, - "constructor": { - "details": "Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction." - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}." - }, - "decreaseAllowance(address,uint256)": { - "details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." - }, - "increaseAllowance(address,uint256)": { - "details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address." - }, - "name()": { - "details": "Returns the name of the token." - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the name." - }, - "totalSupply()": { - "details": "See {IERC20-totalSupply}." - }, - "transfer(address,uint256)": { - "details": "See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`." - }, - "transferFrom(address,address,uint256)": { - "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [ - ":@openzeppelin/=lib/@openzeppelin/contracts/", - ":@openzeppelin/contracts/=lib/@openzeppelin/contracts/", - ":balancer/=lib/balancer/src/", - ":canonical-weth/=lib/canonical-weth/src/", - ":cowprotocol/=lib/cowprotocol/src/contracts/", - ":ds-test/=lib/forge-std/lib/ds-test/src/", - ":erc4626-tests/=lib/@openzeppelin/lib/erc4626-tests/", - ":forge-std/=lib/forge-std/src/", - ":helpers/=lib/balancer/src/lib/helpers/", - ":math/=lib/balancer/src/lib/math/", - ":murky/=lib/murky/src/", - ":openzeppelin-contracts/=lib/murky/lib/openzeppelin-contracts/", - ":openzeppelin/=lib/@openzeppelin/contracts/", - ":safe/=lib/safe/contracts/" - ], - "optimizer": { - "enabled": true, - "runs": 20000 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "lib/@openzeppelin/contracts/token/ERC20/ERC20.sol": "ERC20" - }, - "libraries": {} - }, - "sources": { - "lib/@openzeppelin/contracts/token/ERC20/ERC20.sol": { - "keccak256": "0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c", - "urls": [ - "bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15", - "dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih" - ], - "license": "MIT" - }, - "lib/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", - "urls": [ - "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", - "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" - ], - "license": "MIT" - }, - "lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { - "keccak256": "0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca", - "urls": [ - "bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd", - "dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8" - ], - "license": "MIT" - }, - "lib/@openzeppelin/contracts/utils/Context.sol": { - "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", - "urls": [ - "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", - "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" - ], - "license": "MIT" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "lib/@openzeppelin/contracts/token/ERC20/ERC20.sol", - "id": 593, - "exportedSymbols": { - "Context": [ - 717 - ], - "ERC20": [ - 592 - ], - "IERC20": [ - 670 - ], - "IERC20Metadata": [ - 695 - ] - }, - "nodeType": "SourceUnit", - "src": "105:12740:2", - "nodes": [ - { - "id": 7, - "nodeType": "PragmaDirective", - "src": "105:23:2", - "nodes": [], - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ] - }, - { - "id": 8, - "nodeType": "ImportDirective", - "src": "130:22:2", - "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/token/ERC20/IERC20.sol", - "file": "./IERC20.sol", - "nameLocation": "-1:-1:-1", - "scope": 593, - "sourceUnit": 671, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 9, - "nodeType": "ImportDirective", - "src": "153:41:2", - "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", - "file": "./extensions/IERC20Metadata.sol", - "nameLocation": "-1:-1:-1", - "scope": 593, - "sourceUnit": 696, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 10, - "nodeType": "ImportDirective", - "src": "195:33:2", - "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/utils/Context.sol", - "file": "../../utils/Context.sol", - "nameLocation": "-1:-1:-1", - "scope": 593, - "sourceUnit": 718, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 592, - "nodeType": "ContractDefinition", - "src": "1532:11312:2", - "nodes": [ - { - "id": 21, - "nodeType": "VariableDeclaration", - "src": "1588:45:2", - "nodes": [], - "constant": false, - "mutability": "mutable", - "name": "_balances", - "nameLocation": "1624:9:2", - "scope": 592, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 20, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 18, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1596:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1588:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 19, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1607:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "private" - }, - { - "id": 27, - "nodeType": "VariableDeclaration", - "src": "1640:67:2", - "nodes": [], - "constant": false, - "mutability": "mutable", - "name": "_allowances", - "nameLocation": "1696:11:2", - "scope": 592, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 26, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 22, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1648:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1640:47:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 25, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 23, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1667:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1659:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 24, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1678:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "visibility": "private" - }, - { - "id": 29, - "nodeType": "VariableDeclaration", - "src": "1714:28:2", - "nodes": [], - "constant": false, - "mutability": "mutable", - "name": "_totalSupply", - "nameLocation": "1730:12:2", - "scope": 592, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 28, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1714:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "private" - }, - { - "id": 31, - "nodeType": "VariableDeclaration", - "src": "1749:20:2", - "nodes": [], - "constant": false, - "mutability": "mutable", - "name": "_name", - "nameLocation": "1764:5:2", - "scope": 592, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 30, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1749:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "private" - }, - { - "id": 33, - "nodeType": "VariableDeclaration", - "src": "1775:22:2", - "nodes": [], - "constant": false, - "mutability": "mutable", - "name": "_symbol", - "nameLocation": "1790:7:2", - "scope": 592, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 32, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1775:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "private" - }, - { - "id": 50, - "nodeType": "FunctionDefinition", - "src": "1980:113:2", - "nodes": [], - "body": { - "id": 49, - "nodeType": "Block", - "src": "2036:57:2", - "nodes": [], - "statements": [ - { - "expression": { - "id": 43, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 41, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "2046:5:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 42, - "name": "name_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36, - "src": "2054:5:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2046:13:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 44, - "nodeType": "ExpressionStatement", - "src": "2046:13:2" - }, - { - "expression": { - "id": 47, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 45, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "2069:7:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 46, - "name": "symbol_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38, - "src": "2079:7:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2069:17:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 48, - "nodeType": "ExpressionStatement", - "src": "2069:17:2" - } - ] - }, - "documentation": { - "id": 34, - "nodeType": "StructuredDocumentation", - "src": "1804:171:2", - "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction." - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 39, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "mutability": "mutable", - "name": "name_", - "nameLocation": "2006:5:2", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1992:19:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 35, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1992:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "mutability": "mutable", - "name": "symbol_", - "nameLocation": "2027:7:2", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "2013:21:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 37, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2013:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1991:44:2" - }, - "returnParameters": { - "id": 40, - "nodeType": "ParameterList", - "parameters": [], - "src": "2036:0:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 60, - "nodeType": "FunctionDefinition", - "src": "2158:98:2", - "nodes": [], - "body": { - "id": 59, - "nodeType": "Block", - "src": "2227:29:2", - "nodes": [], - "statements": [ - { - "expression": { - "id": 57, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "2244:5:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 56, - "id": 58, - "nodeType": "Return", - "src": "2237:12:2" - } - ] - }, - "baseFunctions": [ - 682 - ], - "documentation": { - "id": 51, - "nodeType": "StructuredDocumentation", - "src": "2099:54:2", - "text": " @dev Returns the name of the token." - }, - "functionSelector": "06fdde03", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nameLocation": "2167:4:2", - "overrides": { - "id": 53, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2194:8:2" - }, - "parameters": { - "id": 52, - "nodeType": "ParameterList", - "parameters": [], - "src": "2171:2:2" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 60, - "src": "2212:13:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 54, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2212:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "2211:15:2" - }, - "scope": 592, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 70, - "nodeType": "FunctionDefinition", - "src": "2369:102:2", - "nodes": [], - "body": { - "id": 69, - "nodeType": "Block", - "src": "2440:31:2", - "nodes": [], - "statements": [ - { - "expression": { - "id": 67, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "2457:7:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 66, - "id": 68, - "nodeType": "Return", - "src": "2450:14:2" - } - ] - }, - "baseFunctions": [ - 688 - ], - "documentation": { - "id": 61, - "nodeType": "StructuredDocumentation", - "src": "2262:102:2", - "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name." - }, - "functionSelector": "95d89b41", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nameLocation": "2378:6:2", - "overrides": { - "id": 63, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2407:8:2" - }, - "parameters": { - "id": 62, - "nodeType": "ParameterList", - "parameters": [], - "src": "2384:2:2" - }, - "returnParameters": { - "id": 66, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "2425:13:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 64, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2425:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "2424:15:2" - }, - "scope": 592, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 80, - "nodeType": "FunctionDefinition", - "src": "3104:91:2", - "nodes": [], - "body": { - "id": 79, - "nodeType": "Block", - "src": "3169:26:2", - "nodes": [], - "statements": [ - { - "expression": { - "hexValue": "3138", - "id": 77, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3186:2:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "functionReturnParameters": 76, - "id": 78, - "nodeType": "Return", - "src": "3179:9:2" - } - ] - }, - "baseFunctions": [ - 694 - ], - "documentation": { - "id": 71, - "nodeType": "StructuredDocumentation", - "src": "2477:622:2", - "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}." - }, - "functionSelector": "313ce567", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nameLocation": "3113:8:2", - "overrides": { - "id": 73, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "3144:8:2" - }, - "parameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "3121:2:2" - }, - "returnParameters": { - "id": 76, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 80, - "src": "3162:5:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 74, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3162:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "3161:7:2" - }, - "scope": 592, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 90, - "nodeType": "FunctionDefinition", - "src": "3255:106:2", - "nodes": [], - "body": { - "id": 89, - "nodeType": "Block", - "src": "3325:36:2", - "nodes": [], - "statements": [ - { - "expression": { - "id": 87, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29, - "src": "3342:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 86, - "id": 88, - "nodeType": "Return", - "src": "3335:19:2" - } - ] - }, - "baseFunctions": [ - 619 - ], - "documentation": { - "id": 81, - "nodeType": "StructuredDocumentation", - "src": "3201:49:2", - "text": " @dev See {IERC20-totalSupply}." - }, - "functionSelector": "18160ddd", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nameLocation": "3264:11:2", - "overrides": { - "id": 83, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "3298:8:2" - }, - "parameters": { - "id": 82, - "nodeType": "ParameterList", - "parameters": [], - "src": "3275:2:2" - }, - "returnParameters": { - "id": 86, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 85, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 90, - "src": "3316:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 84, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3316:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3315:9:2" - }, - "scope": 592, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 104, - "nodeType": "FunctionDefinition", - "src": "3419:125:2", - "nodes": [], - "body": { - "id": 103, - "nodeType": "Block", - "src": "3502:42:2", - "nodes": [], - "statements": [ - { - "expression": { - "baseExpression": { - "id": 99, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "3519:9:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 101, - "indexExpression": { - "id": 100, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "3529:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3519:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 98, - "id": 102, - "nodeType": "Return", - "src": "3512:25:2" - } - ] - }, - "baseFunctions": [ - 627 - ], - "documentation": { - "id": 91, - "nodeType": "StructuredDocumentation", - "src": "3367:47:2", - "text": " @dev See {IERC20-balanceOf}." - }, - "functionSelector": "70a08231", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "3428:9:2", - "overrides": { - "id": 95, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "3475:8:2" - }, - "parameters": { - "id": 94, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "account", - "nameLocation": "3446:7:2", - "nodeType": "VariableDeclaration", - "scope": 104, - "src": "3438:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 92, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3438:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3437:17:2" - }, - "returnParameters": { - "id": 98, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 97, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 104, - "src": "3493:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 96, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3493:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3492:9:2" - }, - "scope": 592, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 129, - "nodeType": "FunctionDefinition", - "src": "3740:189:2", - "nodes": [], - "body": { - "id": 128, - "nodeType": "Block", - "src": "3825:104:2", - "nodes": [], - "statements": [ - { - "assignments": [ - 116 - ], - "declarations": [ - { - "constant": false, - "id": 116, - "mutability": "mutable", - "name": "owner", - "nameLocation": "3843:5:2", - "nodeType": "VariableDeclaration", - "scope": 128, - "src": "3835:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3835:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 119, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 117, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 707, - "src": "3851:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3851:12:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3835:28:2" - }, - { - "expression": { - "arguments": [ - { - "id": 121, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "3883:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 122, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "3890:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 123, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "3894:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 120, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 352, - "src": "3873:9:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3873:28:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 125, - "nodeType": "ExpressionStatement", - "src": "3873:28:2" - }, - { - "expression": { - "hexValue": "74727565", - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3918:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 114, - "id": 127, - "nodeType": "Return", - "src": "3911:11:2" - } - ] - }, - "baseFunctions": [ - 637 - ], - "documentation": { - "id": 105, - "nodeType": "StructuredDocumentation", - "src": "3550:185:2", - "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`." - }, - "functionSelector": "a9059cbb", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nameLocation": "3749:8:2", - "overrides": { - "id": 111, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "3801:8:2" - }, - "parameters": { - "id": 110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 107, - "mutability": "mutable", - "name": "to", - "nameLocation": "3766:2:2", - "nodeType": "VariableDeclaration", - "scope": 129, - "src": "3758:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3758:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 109, - "mutability": "mutable", - "name": "amount", - "nameLocation": "3778:6:2", - "nodeType": "VariableDeclaration", - "scope": 129, - "src": "3770:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 108, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3770:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3757:28:2" - }, - "returnParameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 113, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 129, - "src": "3819:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 112, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3819:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "3818:6:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "id": 147, - "nodeType": "FunctionDefinition", - "src": "3987:149:2", - "nodes": [], - "body": { - "id": 146, - "nodeType": "Block", - "src": "4085:51:2", - "nodes": [], - "statements": [ - { - "expression": { - "baseExpression": { - "baseExpression": { - "id": 140, - "name": "_allowances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "4102:11:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 142, - "indexExpression": { - "id": 141, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "4114:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4102:18:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 144, - "indexExpression": { - "id": 143, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "4121:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4102:27:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 139, - "id": 145, - "nodeType": "Return", - "src": "4095:34:2" - } - ] - }, - "baseFunctions": [ - 647 - ], - "documentation": { - "id": 130, - "nodeType": "StructuredDocumentation", - "src": "3935:47:2", - "text": " @dev See {IERC20-allowance}." - }, - "functionSelector": "dd62ed3e", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "3996:9:2", - "overrides": { - "id": 136, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4058:8:2" - }, - "parameters": { - "id": 135, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 132, - "mutability": "mutable", - "name": "owner", - "nameLocation": "4014:5:2", - "nodeType": "VariableDeclaration", - "scope": 147, - "src": "4006:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 131, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4006:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 134, - "mutability": "mutable", - "name": "spender", - "nameLocation": "4029:7:2", - "nodeType": "VariableDeclaration", - "scope": 147, - "src": "4021:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 133, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4021:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4005:32:2" - }, - "returnParameters": { - "id": 139, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 138, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 147, - "src": "4076:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 137, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4076:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4075:9:2" - }, - "scope": 592, - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "id": 172, - "nodeType": "FunctionDefinition", - "src": "4444:197:2", - "nodes": [], - "body": { - "id": 171, - "nodeType": "Block", - "src": "4533:108:2", - "nodes": [], - "statements": [ - { - "assignments": [ - 159 - ], - "declarations": [ - { - "constant": false, - "id": 159, - "mutability": "mutable", - "name": "owner", - "nameLocation": "4551:5:2", - "nodeType": "VariableDeclaration", - "scope": 171, - "src": "4543:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4543:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 162, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 160, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 707, - "src": "4559:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4559:12:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4543:28:2" - }, - { - "expression": { - "arguments": [ - { - "id": 164, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 159, - "src": "4590:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 165, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "4597:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 166, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 152, - "src": "4606:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 163, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "4581:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4581:32:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 168, - "nodeType": "ExpressionStatement", - "src": "4581:32:2" - }, - { - "expression": { - "hexValue": "74727565", - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4630:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 157, - "id": 170, - "nodeType": "Return", - "src": "4623:11:2" - } - ] - }, - "baseFunctions": [ - 657 - ], - "documentation": { - "id": 148, - "nodeType": "StructuredDocumentation", - "src": "4142:297:2", - "text": " @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address." - }, - "functionSelector": "095ea7b3", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nameLocation": "4453:7:2", - "overrides": { - "id": 154, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4509:8:2" - }, - "parameters": { - "id": 153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 150, - "mutability": "mutable", - "name": "spender", - "nameLocation": "4469:7:2", - "nodeType": "VariableDeclaration", - "scope": 172, - "src": "4461:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4461:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 152, - "mutability": "mutable", - "name": "amount", - "nameLocation": "4486:6:2", - "nodeType": "VariableDeclaration", - "scope": 172, - "src": "4478:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 151, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4478:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4460:33:2" - }, - "returnParameters": { - "id": 157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 156, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 172, - "src": "4527:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 155, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4527:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "4526:6:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "id": 205, - "nodeType": "FunctionDefinition", - "src": "5203:256:2", - "nodes": [], - "body": { - "id": 204, - "nodeType": "Block", - "src": "5306:153:2", - "nodes": [], - "statements": [ - { - "assignments": [ - 186 - ], - "declarations": [ - { - "constant": false, - "id": 186, - "mutability": "mutable", - "name": "spender", - "nameLocation": "5324:7:2", - "nodeType": "VariableDeclaration", - "scope": 204, - "src": "5316:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 185, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5316:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 189, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 187, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 707, - "src": "5334:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5334:12:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5316:30:2" - }, - { - "expression": { - "arguments": [ - { - "id": 191, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 175, - "src": "5372:4:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 192, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "5378:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 193, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "5387:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 190, - "name": "_spendAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 569, - "src": "5356:15:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5356:38:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 195, - "nodeType": "ExpressionStatement", - "src": "5356:38:2" - }, - { - "expression": { - "arguments": [ - { - "id": 197, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 175, - "src": "5414:4:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 198, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "5420:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 199, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "5424:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 196, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 352, - "src": "5404:9:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5404:27:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 201, - "nodeType": "ExpressionStatement", - "src": "5404:27:2" - }, - { - "expression": { - "hexValue": "74727565", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5448:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 184, - "id": 203, - "nodeType": "Return", - "src": "5441:11:2" - } - ] - }, - "baseFunctions": [ - 669 - ], - "documentation": { - "id": 173, - "nodeType": "StructuredDocumentation", - "src": "4647:551:2", - "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`." - }, - "functionSelector": "23b872dd", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nameLocation": "5212:12:2", - "overrides": { - "id": 181, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "5282:8:2" - }, - "parameters": { - "id": 180, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 175, - "mutability": "mutable", - "name": "from", - "nameLocation": "5233:4:2", - "nodeType": "VariableDeclaration", - "scope": 205, - "src": "5225:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 174, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5225:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 177, - "mutability": "mutable", - "name": "to", - "nameLocation": "5247:2:2", - "nodeType": "VariableDeclaration", - "scope": 205, - "src": "5239:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5239:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 179, - "mutability": "mutable", - "name": "amount", - "nameLocation": "5259:6:2", - "nodeType": "VariableDeclaration", - "scope": 205, - "src": "5251:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 178, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5224:42:2" - }, - "returnParameters": { - "id": 184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 183, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 205, - "src": "5300:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 182, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5300:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "5299:6:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "id": 234, - "nodeType": "FunctionDefinition", - "src": "5854:234:2", - "nodes": [], - "body": { - "id": 233, - "nodeType": "Block", - "src": "5948:140:2", - "nodes": [], - "statements": [ - { - "assignments": [ - 216 - ], - "declarations": [ - { - "constant": false, - "id": 216, - "mutability": "mutable", - "name": "owner", - "nameLocation": "5966:5:2", - "nodeType": "VariableDeclaration", - "scope": 233, - "src": "5958:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5958:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 219, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 217, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 707, - "src": "5974:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5974:12:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5958:28:2" - }, - { - "expression": { - "arguments": [ - { - "id": 221, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "6005:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 222, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "6012:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 224, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "6031:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 225, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "6038:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 223, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "6021:9:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6021:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 227, - "name": "addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 210, - "src": "6049:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6021:38:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 220, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "5996:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5996:64:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 230, - "nodeType": "ExpressionStatement", - "src": "5996:64:2" - }, - { - "expression": { - "hexValue": "74727565", - "id": 231, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6077:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 214, - "id": 232, - "nodeType": "Return", - "src": "6070:11:2" - } - ] - }, - "documentation": { - "id": 206, - "nodeType": "StructuredDocumentation", - "src": "5465:384:2", - "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address." - }, - "functionSelector": "39509351", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increaseAllowance", - "nameLocation": "5863:17:2", - "parameters": { - "id": 211, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 208, - "mutability": "mutable", - "name": "spender", - "nameLocation": "5889:7:2", - "nodeType": "VariableDeclaration", - "scope": 234, - "src": "5881:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 207, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5881:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 210, - "mutability": "mutable", - "name": "addedValue", - "nameLocation": "5906:10:2", - "nodeType": "VariableDeclaration", - "scope": 234, - "src": "5898:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 209, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5898:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5880:37:2" - }, - "returnParameters": { - "id": 214, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 213, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 234, - "src": "5942:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 212, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5942:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "5941:6:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "id": 275, - "nodeType": "FunctionDefinition", - "src": "6575:427:2", - "nodes": [], - "body": { - "id": 274, - "nodeType": "Block", - "src": "6674:328:2", - "nodes": [], - "statements": [ - { - "assignments": [ - 245 - ], - "declarations": [ - { - "constant": false, - "id": 245, - "mutability": "mutable", - "name": "owner", - "nameLocation": "6692:5:2", - "nodeType": "VariableDeclaration", - "scope": 274, - "src": "6684:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6684:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 248, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 246, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 707, - "src": "6700:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6700:12:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6684:28:2" - }, - { - "assignments": [ - 250 - ], - "declarations": [ - { - "constant": false, - "id": 250, - "mutability": "mutable", - "name": "currentAllowance", - "nameLocation": "6730:16:2", - "nodeType": "VariableDeclaration", - "scope": 274, - "src": "6722:24:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6722:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 255, - "initialValue": { - "arguments": [ - { - "id": 252, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 245, - "src": "6759:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 253, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 237, - "src": "6766:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 251, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "6749:9:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6749:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6722:52:2" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 257, - "name": "currentAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6792:16:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 258, - "name": "subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "6812:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6792:35:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6829:39:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", - "typeString": "literal_string \"ERC20: decreased allowance below zero\"" - }, - "value": "ERC20: decreased allowance below zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8", - "typeString": "literal_string \"ERC20: decreased allowance below zero\"" - } - ], - "id": 256, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6784:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6784:85:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 262, - "nodeType": "ExpressionStatement", - "src": "6784:85:2" - }, - { - "id": 271, - "nodeType": "UncheckedBlock", - "src": "6879:95:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 264, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 245, - "src": "6912:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 265, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 237, - "src": "6919:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 266, - "name": "currentAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6928:16:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 267, - "name": "subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "6947:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:34:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 263, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "6903:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6903:60:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 270, - "nodeType": "ExpressionStatement", - "src": "6903:60:2" - } - ] - }, - { - "expression": { - "hexValue": "74727565", - "id": 272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6991:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 243, - "id": 273, - "nodeType": "Return", - "src": "6984:11:2" - } - ] - }, - "documentation": { - "id": 235, - "nodeType": "StructuredDocumentation", - "src": "6094:476:2", - "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`." - }, - "functionSelector": "a457c2d7", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decreaseAllowance", - "nameLocation": "6584:17:2", - "parameters": { - "id": 240, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 237, - "mutability": "mutable", - "name": "spender", - "nameLocation": "6610:7:2", - "nodeType": "VariableDeclaration", - "scope": 275, - "src": "6602:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6602:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 239, - "mutability": "mutable", - "name": "subtractedValue", - "nameLocation": "6627:15:2", - "nodeType": "VariableDeclaration", - "scope": 275, - "src": "6619:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 238, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6601:42:2" - }, - "returnParameters": { - "id": 243, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 242, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 275, - "src": "6668:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 241, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6668:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "6667:6:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "id": 352, - "nodeType": "FunctionDefinition", - "src": "7456:788:2", - "nodes": [], - "body": { - "id": 351, - "nodeType": "Block", - "src": "7534:710:2", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 286, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "7552:4:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7568:1:2", - "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": 288, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7560:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 287, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7560:7:2", - "typeDescriptions": {} - } - }, - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7560:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7552:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373", - "id": 292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7572:39:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", - "typeString": "literal_string \"ERC20: transfer from the zero address\"" - }, - "value": "ERC20: transfer from the zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea", - "typeString": "literal_string \"ERC20: transfer from the zero address\"" - } - ], - "id": 285, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7544:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7544:68:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 294, - "nodeType": "ExpressionStatement", - "src": "7544:68:2" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 296, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "7630:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 299, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7644:1:2", - "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": 298, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7636:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 297, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7636:7:2", - "typeDescriptions": {} - } - }, - "id": 300, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7636:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7630:16:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7648:37:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", - "typeString": "literal_string \"ERC20: transfer to the zero address\"" - }, - "value": "ERC20: transfer to the zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f", - "typeString": "literal_string \"ERC20: transfer to the zero address\"" - } - ], - "id": 295, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7622:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7622:64:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 304, - "nodeType": "ExpressionStatement", - "src": "7622:64:2" - }, - { - "expression": { - "arguments": [ - { - "id": 306, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "7718:4:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 307, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "7724:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 308, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "7728:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 305, - "name": "_beforeTokenTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "7697:20:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7697:38:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 310, - "nodeType": "ExpressionStatement", - "src": "7697:38:2" - }, - { - "assignments": [ - 312 - ], - "declarations": [ - { - "constant": false, - "id": 312, - "mutability": "mutable", - "name": "fromBalance", - "nameLocation": "7754:11:2", - "nodeType": "VariableDeclaration", - "scope": 351, - "src": "7746:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 311, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7746:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 316, - "initialValue": { - "baseExpression": { - "id": 313, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "7768:9:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 315, - "indexExpression": { - "id": 314, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "7778:4:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7768:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7746:37:2" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 318, - "name": "fromBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 312, - "src": "7801:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 319, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "7816:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7801:21:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365", - "id": 321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7824:40:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", - "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" - }, - "value": "ERC20: transfer amount exceeds balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6", - "typeString": "literal_string \"ERC20: transfer amount exceeds balance\"" - } - ], - "id": 317, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7793:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7793:72:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 323, - "nodeType": "ExpressionStatement", - "src": "7793:72:2" - }, - { - "id": 338, - "nodeType": "UncheckedBlock", - "src": "7875:273:2", - "statements": [ - { - "expression": { - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 324, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "7899:9:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 326, - "indexExpression": { - "id": 325, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "7909:4:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7899:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 327, - "name": "fromBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 312, - "src": "7917:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 328, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "7931:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7917:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7899:38:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 331, - "nodeType": "ExpressionStatement", - "src": "7899:38:2" - }, - { - "expression": { - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 332, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "8114:9:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 334, - "indexExpression": { - "id": 333, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8124:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8114:13:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 335, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "8131:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8114:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 337, - "nodeType": "ExpressionStatement", - "src": "8114:23:2" - } - ] - }, - { - "eventCall": { - "arguments": [ - { - "id": 340, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "8172:4:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 341, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8178:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 342, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "8182:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 339, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "8163:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8163:26:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 344, - "nodeType": "EmitStatement", - "src": "8158:31:2" - }, - { - "expression": { - "arguments": [ - { - "id": 346, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 278, - "src": "8220:4:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 347, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8226:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 348, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "8230:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 345, - "name": "_afterTokenTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "8200:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8200:37:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 350, - "nodeType": "ExpressionStatement", - "src": "8200:37:2" - } - ] - }, - "documentation": { - "id": 276, - "nodeType": "StructuredDocumentation", - "src": "7008:443:2", - "text": " @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transfer", - "nameLocation": "7465:9:2", - "parameters": { - "id": 283, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 278, - "mutability": "mutable", - "name": "from", - "nameLocation": "7483:4:2", - "nodeType": "VariableDeclaration", - "scope": 352, - "src": "7475:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 277, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7475:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 280, - "mutability": "mutable", - "name": "to", - "nameLocation": "7497:2:2", - "nodeType": "VariableDeclaration", - "scope": 352, - "src": "7489:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 279, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7489:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 282, - "mutability": "mutable", - "name": "amount", - "nameLocation": "7509:6:2", - "nodeType": "VariableDeclaration", - "scope": 352, - "src": "7501:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 281, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7501:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7474:42:2" - }, - "returnParameters": { - "id": 284, - "nodeType": "ParameterList", - "parameters": [], - "src": "7534:0:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "id": 409, - "nodeType": "FunctionDefinition", - "src": "8520:535:2", - "nodes": [], - "body": { - "id": 408, - "nodeType": "Block", - "src": "8585:470:2", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 361, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "8603:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8622:1:2", - "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": 363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8614:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 362, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8614:7:2", - "typeDescriptions": {} - } - }, - "id": 365, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8614:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8603:21:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373", - "id": 367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8626:33:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", - "typeString": "literal_string \"ERC20: mint to the zero address\"" - }, - "value": "ERC20: mint to the zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e", - "typeString": "literal_string \"ERC20: mint to the zero address\"" - } - ], - "id": 360, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8595:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8595:65:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 369, - "nodeType": "ExpressionStatement", - "src": "8595:65:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8700:1:2", - "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": 372, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8692:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 371, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8692:7:2", - "typeDescriptions": {} - } - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8692:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 375, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "8704:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 376, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 357, - "src": "8713:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 370, - "name": "_beforeTokenTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "8671:20:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8671:49:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 378, - "nodeType": "ExpressionStatement", - "src": "8671:49:2" - }, - { - "expression": { - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 379, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29, - "src": "8731:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 380, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 357, - "src": "8747:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8731:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 382, - "nodeType": "ExpressionStatement", - "src": "8731:22:2" - }, - { - "id": 389, - "nodeType": "UncheckedBlock", - "src": "8763:175:2", - "statements": [ - { - "expression": { - "id": 387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 383, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "8899:9:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 385, - "indexExpression": { - "id": 384, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "8909:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8899:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 386, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 357, - "src": "8921:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8899:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 388, - "nodeType": "ExpressionStatement", - "src": "8899:28:2" - } - ] - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8969:1:2", - "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": 392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8961:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 391, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8961:7:2", - "typeDescriptions": {} - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8961:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 395, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "8973:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 396, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 357, - "src": "8982:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 390, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "8952:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8952:37:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 398, - "nodeType": "EmitStatement", - "src": "8947:42:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9028:1:2", - "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": 401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9020:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 400, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9020:7:2", - "typeDescriptions": {} - } - }, - "id": 403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9020:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 404, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "9032:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 405, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 357, - "src": "9041:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 399, - "name": "_afterTokenTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "9000:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9000:48:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 407, - "nodeType": "ExpressionStatement", - "src": "9000:48:2" - } - ] - }, - "documentation": { - "id": 353, - "nodeType": "StructuredDocumentation", - "src": "8250:265:2", - "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nameLocation": "8529:5:2", - "parameters": { - "id": 358, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 355, - "mutability": "mutable", - "name": "account", - "nameLocation": "8543:7:2", - "nodeType": "VariableDeclaration", - "scope": 409, - "src": "8535:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8535:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 357, - "mutability": "mutable", - "name": "amount", - "nameLocation": "8560:6:2", - "nodeType": "VariableDeclaration", - "scope": 409, - "src": "8552:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 356, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8552:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8534:33:2" - }, - "returnParameters": { - "id": 359, - "nodeType": "ParameterList", - "parameters": [], - "src": "8585:0:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "id": 481, - "nodeType": "FunctionDefinition", - "src": "9375:659:2", - "nodes": [], - "body": { - "id": 480, - "nodeType": "Block", - "src": "9440:594:2", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 418, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "9458:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9477:1:2", - "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": 420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9469:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 419, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9469:7:2", - "typeDescriptions": {} - } - }, - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9469:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9458:21:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373", - "id": 424, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9481:35:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", - "typeString": "literal_string \"ERC20: burn from the zero address\"" - }, - "value": "ERC20: burn from the zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f", - "typeString": "literal_string \"ERC20: burn from the zero address\"" - } - ], - "id": 417, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9450:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9450:67:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "9450:67:2" - }, - { - "expression": { - "arguments": [ - { - "id": 428, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "9549:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9566:1:2", - "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": 430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9558:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 429, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9558:7:2", - "typeDescriptions": {} - } - }, - "id": 432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9558:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 433, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "9570:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 427, - "name": "_beforeTokenTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "9528:20:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9528:49:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 435, - "nodeType": "ExpressionStatement", - "src": "9528:49:2" - }, - { - "assignments": [ - 437 - ], - "declarations": [ - { - "constant": false, - "id": 437, - "mutability": "mutable", - "name": "accountBalance", - "nameLocation": "9596:14:2", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "9588:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9588:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 441, - "initialValue": { - "baseExpression": { - "id": 438, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "9613:9:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 440, - "indexExpression": { - "id": 439, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "9623:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9613:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9588:43:2" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 443, - "name": "accountBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 437, - "src": "9649:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 444, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "9667:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9649:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365", - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9675:36:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", - "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" - }, - "value": "ERC20: burn amount exceeds balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd", - "typeString": "literal_string \"ERC20: burn amount exceeds balance\"" - } - ], - "id": 442, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9641:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9641:71:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 448, - "nodeType": "ExpressionStatement", - "src": "9641:71:2" - }, - { - "id": 461, - "nodeType": "UncheckedBlock", - "src": "9722:194:2", - "statements": [ - { - "expression": { - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 449, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "9746:9:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 451, - "indexExpression": { - "id": 450, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "9756:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9746:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 452, - "name": "accountBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 437, - "src": "9767:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 453, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "9784:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9767:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9746:44:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 456, - "nodeType": "ExpressionStatement", - "src": "9746:44:2" - }, - { - "expression": { - "id": 459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 457, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29, - "src": "9883:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 458, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "9899:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9883:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 460, - "nodeType": "ExpressionStatement", - "src": "9883:22:2" - } - ] - }, - { - "eventCall": { - "arguments": [ - { - "id": 463, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "9940:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9957:1:2", - "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": 465, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9949:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 464, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9949:7:2", - "typeDescriptions": {} - } - }, - "id": 467, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9949:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 468, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "9961:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 462, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "9931:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9931:37:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 470, - "nodeType": "EmitStatement", - "src": "9926:42:2" - }, - { - "expression": { - "arguments": [ - { - "id": 472, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "9999:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10016:1:2", - "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": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10008:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 473, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10008:7:2", - "typeDescriptions": {} - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10008:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 477, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "10020:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 471, - "name": "_afterTokenTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "9979:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9979:48:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 479, - "nodeType": "ExpressionStatement", - "src": "9979:48:2" - } - ] - }, - "documentation": { - "id": 410, - "nodeType": "StructuredDocumentation", - "src": "9061:309:2", - "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nameLocation": "9384:5:2", - "parameters": { - "id": 415, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 412, - "mutability": "mutable", - "name": "account", - "nameLocation": "9398:7:2", - "nodeType": "VariableDeclaration", - "scope": 481, - "src": "9390:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 411, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9390:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 414, - "mutability": "mutable", - "name": "amount", - "nameLocation": "9415:6:2", - "nodeType": "VariableDeclaration", - "scope": 481, - "src": "9407:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9407:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9389:33:2" - }, - "returnParameters": { - "id": 416, - "nodeType": "ParameterList", - "parameters": [], - "src": "9440:0:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "id": 526, - "nodeType": "FunctionDefinition", - "src": "10457:340:2", - "nodes": [], - "body": { - "id": 525, - "nodeType": "Block", - "src": "10540:257:2", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 492, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "10558:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10575:1:2", - "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": 494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10567:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10567:7:2", - "typeDescriptions": {} - } - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10567:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10558:19:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373", - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10579:38:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", - "typeString": "literal_string \"ERC20: approve from the zero address\"" - }, - "value": "ERC20: approve from the zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208", - "typeString": "literal_string \"ERC20: approve from the zero address\"" - } - ], - "id": 491, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10550:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10550:68:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 500, - "nodeType": "ExpressionStatement", - "src": "10550:68:2" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 502, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "10636:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 505, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10655:1:2", - "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": 504, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10647:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 503, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10647:7:2", - "typeDescriptions": {} - } - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10647:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10636:21:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373", - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10659:36:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", - "typeString": "literal_string \"ERC20: approve to the zero address\"" - }, - "value": "ERC20: approve to the zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029", - "typeString": "literal_string \"ERC20: approve to the zero address\"" - } - ], - "id": 501, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10628:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10628:68:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 510, - "nodeType": "ExpressionStatement", - "src": "10628:68:2" - }, - { - "expression": { - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 511, - "name": "_allowances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "10707:11:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 514, - "indexExpression": { - "id": 512, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "10719:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10707:18:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 515, - "indexExpression": { - "id": 513, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "10726:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10707:27:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 516, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "10737:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10707:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 518, - "nodeType": "ExpressionStatement", - "src": "10707:36:2" - }, - { - "eventCall": { - "arguments": [ - { - "id": 520, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "10767:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 521, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "10774:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 522, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "10783:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 519, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "10758:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10758:32:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 524, - "nodeType": "EmitStatement", - "src": "10753:37:2" - } - ] - }, - "documentation": { - "id": 482, - "nodeType": "StructuredDocumentation", - "src": "10040:412:2", - "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_approve", - "nameLocation": "10466:8:2", - "parameters": { - "id": 489, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 484, - "mutability": "mutable", - "name": "owner", - "nameLocation": "10483:5:2", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "10475:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 483, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10475:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 486, - "mutability": "mutable", - "name": "spender", - "nameLocation": "10498:7:2", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "10490:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10490:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 488, - "mutability": "mutable", - "name": "amount", - "nameLocation": "10515:6:2", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "10507:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 487, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10507:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10474:48:2" - }, - "returnParameters": { - "id": 490, - "nodeType": "ParameterList", - "parameters": [], - "src": "10540:0:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "id": 569, - "nodeType": "FunctionDefinition", - "src": "11078:411:2", - "nodes": [], - "body": { - "id": 568, - "nodeType": "Block", - "src": "11168:321:2", - "nodes": [], - "statements": [ - { - "assignments": [ - 537 - ], - "declarations": [ - { - "constant": false, - "id": 537, - "mutability": "mutable", - "name": "currentAllowance", - "nameLocation": "11186:16:2", - "nodeType": "VariableDeclaration", - "scope": 568, - "src": "11178:24:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 536, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11178:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 542, - "initialValue": { - "arguments": [ - { - "id": 539, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "11215:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 540, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 531, - "src": "11222:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 538, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "11205:9:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11205:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11178:52:2" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 543, - "name": "currentAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "11244:16:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 546, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11269:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 545, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11269:7:2", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - ], - "id": 544, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "11264:4:2", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11264:13:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint256", - "typeString": "type(uint256)" - } - }, - "id": 548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "11278:3:2", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "11264:17:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11244:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 567, - "nodeType": "IfStatement", - "src": "11240:243:2", - "trueBody": { - "id": 566, - "nodeType": "Block", - "src": "11283:200:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 551, - "name": "currentAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "11305:16:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 552, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 533, - "src": "11325:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11305:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "45524332303a20696e73756666696369656e7420616c6c6f77616e6365", - "id": 554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11333:31:2", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", - "typeString": "literal_string \"ERC20: insufficient allowance\"" - }, - "value": "ERC20: insufficient allowance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe", - "typeString": "literal_string \"ERC20: insufficient allowance\"" - } - ], - "id": 550, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11297:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11297:68:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 556, - "nodeType": "ExpressionStatement", - "src": "11297:68:2" - }, - { - "id": 565, - "nodeType": "UncheckedBlock", - "src": "11379:94:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 558, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "11416:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 559, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 531, - "src": "11423:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 560, - "name": "currentAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "11432:16:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 561, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 533, - "src": "11451:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11432:25:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 557, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "11407:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11407:51:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 564, - "nodeType": "ExpressionStatement", - "src": "11407:51:2" - } - ] - } - ] - } - } - ] - }, - "documentation": { - "id": 527, - "nodeType": "StructuredDocumentation", - "src": "10803:270:2", - "text": " @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_spendAllowance", - "nameLocation": "11087:15:2", - "parameters": { - "id": 534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "mutability": "mutable", - "name": "owner", - "nameLocation": "11111:5:2", - "nodeType": "VariableDeclaration", - "scope": 569, - "src": "11103:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 528, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11103:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 531, - "mutability": "mutable", - "name": "spender", - "nameLocation": "11126:7:2", - "nodeType": "VariableDeclaration", - "scope": 569, - "src": "11118:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 530, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11118:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 533, - "mutability": "mutable", - "name": "amount", - "nameLocation": "11143:6:2", - "nodeType": "VariableDeclaration", - "scope": 569, - "src": "11135:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11135:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11102:48:2" - }, - "returnParameters": { - "id": 535, - "nodeType": "ParameterList", - "parameters": [], - "src": "11168:0:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "id": 580, - "nodeType": "FunctionDefinition", - "src": "12073:91:2", - "nodes": [], - "body": { - "id": 579, - "nodeType": "Block", - "src": "12162:2:2", - "nodes": [], - "statements": [] - }, - "documentation": { - "id": 570, - "nodeType": "StructuredDocumentation", - "src": "11495:573:2", - "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_beforeTokenTransfer", - "nameLocation": "12082:20:2", - "parameters": { - "id": 577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 572, - "mutability": "mutable", - "name": "from", - "nameLocation": "12111:4:2", - "nodeType": "VariableDeclaration", - "scope": 580, - "src": "12103:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12103:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 574, - "mutability": "mutable", - "name": "to", - "nameLocation": "12125:2:2", - "nodeType": "VariableDeclaration", - "scope": 580, - "src": "12117:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12117:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 576, - "mutability": "mutable", - "name": "amount", - "nameLocation": "12137:6:2", - "nodeType": "VariableDeclaration", - "scope": 580, - "src": "12129:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 575, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12129:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12102:42:2" - }, - "returnParameters": { - "id": 578, - "nodeType": "ParameterList", - "parameters": [], - "src": "12162:0:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "id": 591, - "nodeType": "FunctionDefinition", - "src": "12752:90:2", - "nodes": [], - "body": { - "id": 590, - "nodeType": "Block", - "src": "12840:2:2", - "nodes": [], - "statements": [] - }, - "documentation": { - "id": 581, - "nodeType": "StructuredDocumentation", - "src": "12170:577:2", - "text": " @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_afterTokenTransfer", - "nameLocation": "12761:19:2", - "parameters": { - "id": 588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 583, - "mutability": "mutable", - "name": "from", - "nameLocation": "12789:4:2", - "nodeType": "VariableDeclaration", - "scope": 591, - "src": "12781:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 582, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12781:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 585, - "mutability": "mutable", - "name": "to", - "nameLocation": "12803:2:2", - "nodeType": "VariableDeclaration", - "scope": 591, - "src": "12795:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12795:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 587, - "mutability": "mutable", - "name": "amount", - "nameLocation": "12815:6:2", - "nodeType": "VariableDeclaration", - "scope": 591, - "src": "12807:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 586, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12807:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12780:42:2" - }, - "returnParameters": { - "id": 589, - "nodeType": "ParameterList", - "parameters": [], - "src": "12840:0:2" - }, - "scope": 592, - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 12, - "name": "Context", - "nameLocations": [ - "1550:7:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 717, - "src": "1550:7:2" - }, - "id": 13, - "nodeType": "InheritanceSpecifier", - "src": "1550:7:2" - }, - { - "baseName": { - "id": 14, - "name": "IERC20", - "nameLocations": [ - "1559:6:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "1559:6:2" - }, - "id": 15, - "nodeType": "InheritanceSpecifier", - "src": "1559:6:2" - }, - { - "baseName": { - "id": 16, - "name": "IERC20Metadata", - "nameLocations": [ - "1567:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 695, - "src": "1567:14:2" - }, - "id": 17, - "nodeType": "InheritanceSpecifier", - "src": "1567:14:2" - } - ], - "canonicalName": "ERC20", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 11, - "nodeType": "StructuredDocumentation", - "src": "230:1301:2", - "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}." - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 592, - 695, - 670, - 717 - ], - "name": "ERC20", - "nameLocation": "1541:5:2", - "scope": 593, - "usedErrors": [] - } - ], - "license": "MIT" - }, - "id": 2 -} \ No newline at end of file diff --git a/actions/artifacts/GPv2Settlement.json b/actions/artifacts/GPv2Settlement.json deleted file mode 100644 index dcf1fda..0000000 --- a/actions/artifacts/GPv2Settlement.json +++ /dev/null @@ -1,15211 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "contract GPv2Authentication", - "name": "authenticator_", - "type": "address" - }, - { - "internalType": "contract IVault", - "name": "vault_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes4", - "name": "selector", - "type": "bytes4" - } - ], - "name": "Interaction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - } - ], - "name": "OrderInvalidated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bool", - "name": "signed", - "type": "bool" - } - ], - "name": "PreSignature", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "solver", - "type": "address" - } - ], - "name": "Settlement", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "contract IERC20", - "name": "sellToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "contract IERC20", - "name": "buyToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sellAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "buyAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - } - ], - "name": "Trade", - "type": "event" - }, - { - "inputs": [], - "name": "authenticator", - "outputs": [ - { - "internalType": "contract GPv2Authentication", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "filledAmount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "orderUids", - "type": "bytes[]" - } - ], - "name": "freeFilledAmountStorage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "orderUids", - "type": "bytes[]" - } - ], - "name": "freePreSignatureStorage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "offset", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "getStorageAt", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - } - ], - "name": "invalidateOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "preSignature", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "signed", - "type": "bool" - } - ], - "name": "setPreSignature", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20[]", - "name": "tokens", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "clearingPrices", - "type": "uint256[]" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "sellTokenIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyTokenIndex", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "sellAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyAmount", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "validTo", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "appData", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flags", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "executedAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct GPv2Trade.Data[]", - "name": "trades", - "type": "tuple[]" - }, - { - "components": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - } - ], - "internalType": "struct GPv2Interaction.Data[][3]", - "name": "interactions", - "type": "tuple[][3]" - } - ], - "name": "settle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "targetContract", - "type": "address" - }, - { - "internalType": "bytes", - "name": "calldataPayload", - "type": "bytes" - } - ], - "name": "simulateDelegatecall", - "outputs": [ - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "targetContract", - "type": "address" - }, - { - "internalType": "bytes", - "name": "calldataPayload", - "type": "bytes" - } - ], - "name": "simulateDelegatecallInternal", - "outputs": [ - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "poolId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "assetInIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "assetOutIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "userData", - "type": "bytes" - } - ], - "internalType": "struct IVault.BatchSwapStep[]", - "name": "swaps", - "type": "tuple[]" - }, - { - "internalType": "contract IERC20[]", - "name": "tokens", - "type": "address[]" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "sellTokenIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyTokenIndex", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "sellAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyAmount", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "validTo", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "appData", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flags", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "executedAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct GPv2Trade.Data", - "name": "trade", - "type": "tuple" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "vault", - "outputs": [ - { - "internalType": "contract IVault", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "vaultRelayer", - "outputs": [ - { - "internalType": "contract GPv2VaultRelayer", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": { - "object": "0x6101006040523480156200001257600080fd5b50604051620053a8380380620053a883398101604081905262000035916200016a565b604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f6c85c0337eba1661327f94f3bf46c8a7f9311a563f4d5c948362567f5d8ed60c918101919091527ff9446b8e937d86f0bc87cac73923491692b123ca5f8761908494703758206adf606082015246608082018190523060a08301529060c00160408051601f19818403018152908290528051602090910120608052600180556001600160a01b0380851660a052831660c052829150620001009062000143565b6001600160a01b039091168152602001604051809103906000f0801580156200012d573d6000803e3d6000fd5b506001600160a01b031660e05250620001a99050565b6114958062003f1383390190565b6001600160a01b03811681146200016757600080fd5b50565b600080604083850312156200017e57600080fd5b82516200018b8162000151565b60208401519092506200019e8162000151565b809150509250929050565b60805160a05160c05160e051613cff620002146000396000818161025d0152818161056401528181610d7001526114a701526000818161037d01526105fb01526000818161014c01528181610429015261092401526000818161032901526124f80152613cff6000f3fe6080604052600436106100ec5760003560e01c80639b552cc21161008a578063ed9f35ce11610059578063ed9f35ce146102f7578063f698da2514610317578063f84436bd1461034b578063fbfa77cf1461036b57600080fd5b80639b552cc21461024b578063a2a7d51b1461027f578063d08d33d11461029f578063ec6cb13f146102d757600080fd5b80632479fb6e116100c65780632479fb6e1461019857806343218e19146101de5780635624b25b1461020b578063845a101f1461022b57600080fd5b806313d79a0b146100f857806315337bc01461011a5780632335c76b1461013a57600080fd5b366100f357005b600080fd5b34801561010457600080fd5b50610118610113366004612e7d565b61039f565b005b34801561012657600080fd5b50610118610135366004612f84565b610666565b34801561014657600080fd5b5061016e7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101a457600080fd5b506101d06101b33660046130d2565b805160208183018101805160028252928201919093012091525481565b60405190815260200161018f565b3480156101ea57600080fd5b506101fe6101f936600461312c565b610775565b60405161018f91906131ea565b34801561021757600080fd5b506101fe6102263660046131fd565b610817565b34801561023757600080fd5b5061011861024636600461321f565b61089f565b34801561025757600080fd5b5061016e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561028b57600080fd5b5061011861029a3660046132bb565b6110e1565b3480156102ab57600080fd5b506101d06102ba3660046130d2565b805160208183018101805160008252928201919093012091525481565b3480156102e357600080fd5b506101186102f23660046132ff565b611140565b34801561030357600080fd5b506101186103123660046132bb565b611282565b34801561032357600080fd5b506101d07f000000000000000000000000000000000000000000000000000000000000000081565b34801561035757600080fd5b506101fe61036636600461312c565b6112dd565b34801561037757600080fd5b5061016e7f000000000000000000000000000000000000000000000000000000000000000081565b6002600154036103f65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026001556040517f02cc250d0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906302cc250d90602401602060405180830381865afa158015610485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a99190613356565b6104f55760405162461bcd60e51b815260206004820152601260248201527f475076323a206e6f74206120736f6c766572000000000000000000000000000060448201526064016103ed565b6105118160005b60200281019061050c91906133a2565b61145e565b6000806105228989898989896115e3565b6040517f7d10d11f000000000000000000000000000000000000000000000000000000008152919350915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637d10d11f9061059990859060040161340a565b600060405180830381600087803b1580156105b357600080fd5b505af11580156105c7573d6000803e3d6000fd5b505050506105e1836001600381106104fc576104fc613373565b61062173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016826117e2565b61062c8360026104fc565b60405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a250506001805550505050505050565b60006106728383611b26565b5091505073ffffffffffffffffffffffffffffffffffffffff811633146106db5760405162461bcd60e51b815260206004820152601f60248201527f475076323a2063616c6c657220646f6573206e6f74206f776e206f726465720060448201526064016103ed565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6002848460405161070e929190613493565b9081526020016040518091039020819055508073ffffffffffffffffffffffffffffffffffffffff167f875b6cb035bbd4ac6500fabc6d1e4ca5bdc58a3e2b424ccb5c24cdbebeb009a984846040516107689291906134ec565b60405180910390a2505050565b606060008373ffffffffffffffffffffffffffffffffffffffff168360405161079e9190613500565b600060405180830381855af49150503d80600081146107d9576040519150601f19603f3d011682016040523d82523d6000602084013e6107de565b606091505b50604051909350909150610810906107fc908490849060200161351c565b604051602081830303815290604052611b95565b5092915050565b60606000610826836020613573565b67ffffffffffffffff81111561083e5761083e612fc6565b6040519080825280601f01601f191660200182016040528015610868576020820181803683370190505b50905060005b8381101561089557848101546020808302840101528061088d8161358a565b91505061086e565b5090505b92915050565b6002600154036108f15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103ed565b60026001556040517f02cc250d0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906302cc250d90602401602060405180830381865afa158015610980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a49190613356565b6109f05760405162461bcd60e51b815260206004820152601260248201527f475076323a206e6f74206120736f6c766572000000000000000000000000000060448201526064016103ed565b60006109fa611b9d565b8051909150610a0b82868686611c43565b60007ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677582610100015114610a40576001610a43565b60005b604080516080810182526000808252602082018181528284018281526060808501848152958a015173ffffffffffffffffffffffffffffffffffffffff90811686526101408a01517f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce908114909452908a0151169052610160870151149092529192508667ffffffffffffffff811115610adf57610adf612fc6565b604051908082528060200260200182016040528015610b08578160200160208202803683370190505b50610100850151909150610120870135907f0c4d888d74c0118b6b7e14c1f4c4b767f24454879a703be6fda34e9111cb988b01610bfb578460800151811015610b935760405162461bcd60e51b815260206004820152601360248201527f475076323a206c696d697420746f6f206c6f770000000000000000000000000060448201526064016103ed565b610ba08560600151611ce1565b82886000013581518110610bb657610bb6613373565b602002602001018181525050610bcb81611ce1565b610bd4906135c2565b82886020013581518110610bea57610bea613373565b602002602001018181525050610cb3565b8460600151811115610c4f5760405162461bcd60e51b815260206004820152601460248201527f475076323a206c696d697420746f6f206869676800000000000000000000000060448201526064016103ed565b610c5881611ce1565b82886000013581518110610c6e57610c6e613373565b602002602001018181525050610c878560800151611ce1565b610c90906135c2565b82886020013581518110610ca657610ca6613373565b6020026020010181815250505b6040805160808101825260008082526020820181905291810182905260608101919091528660400151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560000151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560e0015181604001818152505085610140015181606001818152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634817a286878f8f8f8f8b8b8f60a001518b6040518a63ffffffff1660e01b8152600401610ddb999897969594939291906136af565b6000604051808303816000875af1158015610dfa573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e4091908101906138d7565b90506000886020015190506000610e73838c6000013581518110610e6657610e66613373565b6020026020010151611d57565b90506000610ea6848d6020013581518110610e9057610e90613373565b6020026020010151610ea1906135c2565b611d57565b9050600283604051610eb89190613500565b908152602001604051809103902054600014610f165760405162461bcd60e51b815260206004820152601260248201527f475076323a206f726465722066696c6c6564000000000000000000000000000060448201526064016103ed565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467758a610100015103610fbf5789606001518214610f955760405162461bcd60e51b815260206004820152601f60248201527f475076323a2073656c6c20616d6f756e74206e6f74207265737065637465640060448201526064016103ed565b8960600151600284604051610faa9190613500565b90815260405190819003602001902055611038565b896080015181146110125760405162461bcd60e51b815260206004820152601e60248201527f475076323a2062757920616d6f756e74206e6f7420726573706563746564000060448201526064016103ed565b89608001516002846040516110279190613500565b908152604051908190036020019020555b8a6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc178b600001518c6020015185858f60e00151896040516110989695949392919061397d565b60405180910390a260405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a25050600180555050505050505050505050505050565b3033146111305760405162461bcd60e51b815260206004820152601860248201527f475076323a206e6f7420616e20696e746572616374696f6e000000000000000060448201526064016103ed565b61113c60008383611da9565b5050565b600061114c8484611b26565b5091505073ffffffffffffffffffffffffffffffffffffffff811633146111b55760405162461bcd60e51b815260206004820152601a60248201527f475076323a2063616e6e6f74207072657369676e206f7264657200000000000060448201526064016103ed565b8115611206577ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c600085856040516111f1929190613493565b9081526040519081900360200190205561122a565b6000808585604051611219929190613493565b908152604051908190036020019020555b8073ffffffffffffffffffffffffffffffffffffffff167f01bf7c8b0ca55deecbea89d7e58295b7ffbf685fd0d96801034ba8c6ffe1c68d858585604051611274939291906139c8565b60405180910390a250505050565b3033146112d15760405162461bcd60e51b815260206004820152601860248201527f475076323a206e6f7420616e20696e746572616374696f6e000000000000000060448201526064016103ed565b61113c60028383611da9565b606060006343218e1960e01b84846040516024016112fc9291906139ee565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051909150309061138b908390613500565b6000604051808303816000865af19150503d80600081146113c8576040519150601f19603f3d011682016040523d82523d6000602084013e6113cd565b606091505b50905080925050600082600184516113e59190613a1d565b815181106113f5576113f5613373565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b149050611440836001855161143c9190613a1d565b9052565b801561144d575050610899565b61145683611b95565b505092915050565b60005b818110156115de573683838381811061147c5761147c613373565b905060200281019061148e9190613a30565b905073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166114d46020830183613a64565b73ffffffffffffffffffffffffffffffffffffffff16036115375760405162461bcd60e51b815260206004820152601b60248201527f475076323a20666f7262696464656e20696e746572616374696f6e000000000060448201526064016103ed565b61154081611e7e565b61154d6020820182613a64565b73ffffffffffffffffffffffffffffffffffffffff167fed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2826020013561159284611ece565b604080519283527fffffffff0000000000000000000000000000000000000000000000000000000090911660208301520160405180910390a250806115d68161358a565b915050611461565b505050565b60608060006115f0611b9d565b90508367ffffffffffffffff81111561160b5761160b612fc6565b60405190808252806020026020018201604052801561167b57816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816116295790505b5092508367ffffffffffffffff81111561169757611697612fc6565b60405190808252806020026020018201604052801561170757816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816116b55790505b50915060005b848110156117d5573686868381811061172857611728613373565b905060200281019061173a9190613a81565b9050611748838c8c84611c43565b6117c2838a8a843581811061175f5761175f613373565b905060200201358b8b856020013581811061177c5761177c613373565b9050602002013584610120013589878151811061179b5761179b613373565b60200260200101518988815181106117b5576117b5613373565b6020026020010151611ef8565b50806117cd8161358a565b91505061170d565b5050965096945050505050565b6000815167ffffffffffffffff8111156117fe576117fe612fc6565b60405190808252806020026020018201604052801561187557816020015b6040805160a0810182526000808252602080830182905292820181905260608201819052608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161181c5790505b5090506000805b8351811015611a9157600084828151811061189957611899613373565b6020026020010151905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff16036119b1577f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce8160600151036119615760405162461bcd60e51b815260206004820152601e60248201527f475076323a20756e737570706f7274656420696e7465726e616c20455448000060448201526064016103ed565b8051604080830151905173ffffffffffffffffffffffffffffffffffffffff9092169181156108fc0291906000818181858888f193505050501580156119ab573d6000803e3d6000fd5b50611a7e565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9816060015103611a0f57805160408201516020830151611a0a9273ffffffffffffffffffffffffffffffffffffffff9091169161229a565b611a7e565b60008484611a1c8161358a565b955081518110611a2e57611a2e613373565b602090810291909101810151600081528382015173ffffffffffffffffffffffffffffffffffffffff90811692820192909252604080850151908201523060608201528351909116608090910152505b5080611a898161358a565b91505061187c565b508015611b20578082526040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690630e8e3e8490611aed908590600401613ab5565b600060405180830381600087803b158015611b0757600080fd5b505af1158015611b1b573d6000803e3d6000fd5b505050505b50505050565b6000808060388414611b7a5760405162461bcd60e51b815260206004820152601160248201527f475076323a20696e76616c69642075696400000000000000000000000000000060448201526064016103ed565b5050823593602084013560601c936034013560e01c92509050565b805160208201fd5b604080516102008101825260006080820181815260a0830182905260c0830182905260e08301829052610100830182905261012083018290526101408301829052610160830182905261018083018290526101a083018290526101c083018290526101e083018290528252606060208301819052928201819052918101919091526040805160388082526060820190925290602082018180368337505050602082015290565b83516000611c5383868685612353565b9050600080611c708484611c6b610140890189613b4e565b612481565b91509150611c9382828660a001518b602001516125b8909392919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff81166040890152611cb9848261261b565b73ffffffffffffffffffffffffffffffffffffffff1660609098019790975250505050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611d535760405162461bcd60e51b815260206004820152601960248201527f53616665436173743a20696e74323536206f766572666c6f770000000000000060448201526064016103ed565b5090565b600080821215611d535760405162461bcd60e51b815260206004820152601660248201527f53616665436173743a206e6f7420706f7369746976650000000000000000000060448201526064016103ed565b60005b81811015611b2057366000848484818110611dc957611dc9613373565b9050602002810190611ddb9190613b4e565b915091506000611deb8383611b26565b92505050428163ffffffff1610611e445760405162461bcd60e51b815260206004820152601760248201527f475076323a206f72646572207374696c6c2076616c696400000000000000000060448201526064016103ed565b6000878484604051611e57929190613493565b9081526040519081900360200190205550829150611e7690508161358a565b915050611dac565b6000611e8d6020830183613a64565b90506020820135366000611ea46040860186613b4e565b9150915060405181838237600080838387895af1611ec6573d6000803e3d6000fd5b505050505050565b60003681611edf6040850185613b4e565b909250905060048110611ef157813592505b5050919050565b8551602087015160a08201514263ffffffff9091161015611f5b5760405162461bcd60e51b815260206004820152601360248201527f475076323a206f7264657220657870697265640000000000000000000000000060448201526064016103ed565b6080820151611f6a908761264d565b6060830151611f79908961264d565b1015611fc75760405162461bcd60e51b815260206004820152601f60248201527f475076323a206c696d6974207072696365206e6f74207265737065637465640060448201526064016103ed565b6000806000807ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775866101000151036120dd57856101200151156120335788935061202c8660600151612026868960e0015161264d90919063ffffffff16565b906126cc565b9150612042565b856060015193508560e0015191505b6120568a612050868e61264d565b90612727565b92506120828460028760405161206c9190613500565b90815260405190819003602001902054906127a8565b905085606001518111156120d85760405162461bcd60e51b815260206004820152601260248201527f475076323a206f726465722066696c6c6564000000000000000000000000000060448201526064016103ed565b61219a565b856101200151156121115788925061210a8660800151612026858960e0015161264d90919063ffffffff16565b9150612120565b856080015192508560e0015191505b61212e8b612026858d61264d565b93506121448360028760405161206c9190613500565b9050856080015181111561219a5760405162461bcd60e51b815260206004820152601260248201527f475076323a206f726465722066696c6c6564000000000000000000000000000060448201526064016103ed565b6121a484836127a8565b9350806002866040516121b79190613500565b9081526020016040518091039020819055508b6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17876000015188602001518787878b6040516122259695949392919061397d565b60405180910390a250506040808b015173ffffffffffffffffffffffffffffffffffffffff9081168852855181166020808a0191909152888301949094526101408601516060988901529a8701518b16865282850151909a169185019190915297830197909752610160015191015250505050565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff84166004830152602482018390529060008060448382895af16122fd573d6000803e3d6000fd5b5061230784612807565b611b205760405162461bcd60e51b815260206004820152601560248201527f475076323a206661696c6564207472616e73666572000000000000000000000060448201526064016103ed565b60008383863581811061236857612368613373565b905060200201602081019061237d9190613a64565b73ffffffffffffffffffffffffffffffffffffffff168252838360208701358181106123ab576123ab613373565b90506020020160208101906123c09190613a64565b73ffffffffffffffffffffffffffffffffffffffff1660208301526123eb6060860160408701613a64565b73ffffffffffffffffffffffffffffffffffffffff166040830152606080860135908301526080808601359083015261242a60c0860160a08701613bb3565b63ffffffff1660a083015260c0808601359083015260e080860135908301526124576101008601356128b8565b61016087019190915261014086019190915290151561012085015261010090930152509392505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0840180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f190100000000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600282015260228101919091526042902060008085600381111561253d5761253d6135fa565b036125545761254d828585612a21565b90506125af565b6001856003811115612568576125686135fa565b036125785761254d828585612a36565b600285600381111561258c5761258c6135fa565b0361259c5761254d828585612a9a565b6125ac8285858960a00151612bc5565b90505b94509492505050565b60388451146126095760405162461bcd60e51b815260206004820152601960248201527f475076323a2075696420627566666572206f766572666c6f770000000000000060448201526064016103ed565b60388401526034830152602090910152565b604082015160009073ffffffffffffffffffffffffffffffffffffffff16612644575080610899565b50506040015190565b60008260000361265f57506000610899565b600061266b8385613573565b9050826126788583613c08565b146126c55760405162461bcd60e51b815260206004820152601660248201527f536166654d6174683a206d756c206f766572666c6f770000000000000000000060448201526064016103ed565b9392505050565b600080821161271d5760405162461bcd60e51b815260206004820152601760248201527f536166654d6174683a206469766973696f6e206279203000000000000000000060448201526064016103ed565b6126c58284613c08565b60008082116127785760405162461bcd60e51b815260206004820152601f60248201527f536166654d6174683a206365696c696e67206469766973696f6e20627920300060448201526064016103ed565b6127828284613c1c565b1561278e576001612791565b60005b60ff1661279e8385613c08565b6126c59190613c30565b6000806127b58385613c30565b9050838110156126c55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103ed565b600061282c565b62461bcd60e51b600052602060045280602452508060445260646000fd5b3d801561286b57602081146128a5576128667f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f61280e565b6128b2565b823b61289c5761289c7f475076323a206e6f74206120636f6e7472616374000000000000000000000000601461280e565b600191506128b2565b3d6000803e600051151591505b50919050565b6000806000806000856001166000036128f3577ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467759450612917565b7f6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc94505b600286161515935060088616600003612952577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc992506129a9565b85600416600003612985577fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea063292506129a9565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce92505b856010166000036129dc577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99150612a00565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce91505b600586901c6003811115612a1657612a166135fa565b905091939590929450565b6000612a2e848484612ce7565b949350505050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018490526000908190605c01604051602081830303815290604052805190602001209050612a91818585612ce7565b95945050505050565b813560601c366000612aaf8460148188613c43565b6040517f1626ba7e0000000000000000000000000000000000000000000000000000000080825292945090925073ffffffffffffffffffffffffffffffffffffffff851690631626ba7e90612b0c908a9087908790600401613c6d565b602060405180830381865afa158015612b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4d9190613c87565b7fffffffff000000000000000000000000000000000000000000000000000000001614612bbc5760405162461bcd60e51b815260206004820152601f60248201527f475076323a20696e76616c69642065697031323731207369676e61747572650060448201526064016103ed565b50509392505050565b600060148314612c175760405162461bcd60e51b815260206004820152601c60248201527f475076323a206d616c666f726d6564207072657369676e61747572650000000060448201526064016103ed565b506040805160388082526060828101909352853590921c9160009190602082018180368337019050509050612c4e818784866125b8565b7ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c600082604051612c829190613500565b90815260200160405180910390205414612cde5760405162461bcd60e51b815260206004820152601960248201527f475076323a206f72646572206e6f74207072657369676e65640000000000000060448201526064016103ed565b50949350505050565b600060418214612d395760405162461bcd60e51b815260206004820152601f60248201527f475076323a206d616c666f726d6564206563647361207369676e61747572650060448201526064016103ed565b604080516000815260208082018084528790528583013560f81c92820183905285356060830181905290860135608083018190529092909160019060a0016020604051602081039080840390855afa158015612d99573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015194505073ffffffffffffffffffffffffffffffffffffffff8416612e275760405162461bcd60e51b815260206004820152601d60248201527f475076323a20696e76616c6964206563647361207369676e617475726500000060448201526064016103ed565b5050509392505050565b60008083601f840112612e4357600080fd5b50813567ffffffffffffffff811115612e5b57600080fd5b6020830191508360208260051b8501011115612e7657600080fd5b9250929050565b60008060008060008060006080888a031215612e9857600080fd5b873567ffffffffffffffff80821115612eb057600080fd5b612ebc8b838c01612e31565b909950975060208a0135915080821115612ed557600080fd5b612ee18b838c01612e31565b909750955060408a0135915080821115612efa57600080fd5b612f068b838c01612e31565b909550935060608a0135915080821115612f1f57600080fd5b508801606081018a1015612f3257600080fd5b8091505092959891949750929550565b60008083601f840112612f5457600080fd5b50813567ffffffffffffffff811115612f6c57600080fd5b602083019150836020828501011115612e7657600080fd5b60008060208385031215612f9757600080fd5b823567ffffffffffffffff811115612fae57600080fd5b612fba85828601612f42565b90969095509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561303c5761303c612fc6565b604052919050565b600082601f83011261305557600080fd5b813567ffffffffffffffff81111561306f5761306f612fc6565b6130a060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612ff5565b8181528460208386010111156130b557600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156130e457600080fd5b813567ffffffffffffffff8111156130fb57600080fd5b612a2e84828501613044565b73ffffffffffffffffffffffffffffffffffffffff8116811461312957600080fd5b50565b6000806040838503121561313f57600080fd5b823561314a81613107565b9150602083013567ffffffffffffffff81111561316657600080fd5b61317285828601613044565b9150509250929050565b60005b8381101561319757818101518382015260200161317f565b50506000910152565b600081518084526131b881602086016020860161317c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006126c560208301846131a0565b6000806040838503121561321057600080fd5b50508035926020909101359150565b60008060008060006060868803121561323757600080fd5b853567ffffffffffffffff8082111561324f57600080fd5b61325b89838a01612e31565b9097509550602088013591508082111561327457600080fd5b61328089838a01612e31565b9095509350604088013591508082111561329957600080fd5b50860161016081890312156132ad57600080fd5b809150509295509295909350565b600080602083850312156132ce57600080fd5b823567ffffffffffffffff8111156132e557600080fd5b612fba85828601612e31565b801515811461312957600080fd5b60008060006040848603121561331457600080fd5b833567ffffffffffffffff81111561332b57600080fd5b61333786828701612f42565b909450925050602084013561334b816132f1565b809150509250925092565b60006020828403121561336857600080fd5b81516126c5816132f1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126133d757600080fd5b83018035915067ffffffffffffffff8211156133f257600080fd5b6020019150600581901b3603821315612e7657600080fd5b6020808252825182820181905260009190848201906040850190845b818110156134875761347483855173ffffffffffffffffffffffffffffffffffffffff8082511683528060208301511660208401525060408101516040830152606081015160608301525050565b9284019260809290920191600101613426565b50909695505050505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081526000612a2e6020830184866134a3565b6000825161351281846020870161317c565b9190910192915050565b6000835161352e81846020880161317c565b92151560f81b9190920190815260010192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761089957610899613544565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135bb576135bb613544565b5060010190565b60007f800000000000000000000000000000000000000000000000000000000000000082036135f3576135f3613544565b5060000390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8183526000602080850194508260005b8581101561367457813561364c81613107565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101613639565b509495945050505050565b600081518084526020808501945080840160005b8381101561367457815187529582019590820190600101613693565b60006101a0820160028c106136c6576136c66135fa565b8b83526101a060208401528990526101c060058a901b830181019083018b60005b8c8110156137fb577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4086850301835281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618f360301811261374857600080fd5b8e810190508035855260208101356020860152604081013560408601526060810135606086015260808101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181126137a457600080fd5b0160208101903567ffffffffffffffff8111156137c057600080fd5b8036038213156137cf57600080fd5b60a060808701526137e460a0870182846134a3565b9550505060209283019291909101906001016136e7565b505050828103604084015261381181898b613629565b905061385f606084018873ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b82810360e0840152613871818761367f565b91505061388761010083018563ffffffff169052565b825173ffffffffffffffffffffffffffffffffffffffff908116610120840152602084015116610140830152604083015161016083015260608301516101808301529a9950505050505050505050565b600060208083850312156138ea57600080fd5b825167ffffffffffffffff8082111561390257600080fd5b818501915085601f83011261391657600080fd5b81518181111561392857613928612fc6565b8060051b9150613939848301612ff5565b818152918301840191848101908884111561395357600080fd5b938501935b8385101561397157845182529385019390850190613958565b98975050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015283608083015260c060a083015261397160c08301846131a0565b6040815260006139dc6040830185876134a3565b90508215156020830152949350505050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000612a2e60408301846131a0565b8181038181111561089957610899613544565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261351257600080fd5b600060208284031215613a7657600080fd5b81356126c581613107565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea183360301811261351257600080fd5b602080825282518282018190526000919060409081850190868401855b82811015613b41578151805160048110613aee57613aee6135fa565b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a09093019290850190600101613ad2565b5091979650505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613b8357600080fd5b83018035915067ffffffffffffffff821115613b9e57600080fd5b602001915036819003821315612e7657600080fd5b600060208284031215613bc557600080fd5b813563ffffffff811681146126c557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613c1757613c17613bd9565b500490565b600082613c2b57613c2b613bd9565b500690565b8082018082111561089957610899613544565b60008085851115613c5357600080fd5b83861115613c6057600080fd5b5050820193919092039150565b838152604060208201526000612a916040830184866134a3565b600060208284031215613c9957600080fd5b81517fffffffff00000000000000000000000000000000000000000000000000000000811681146126c557600080fdfea2646970667358221220216557c7a90738eb93ef69fbc9a64a14b855be6987abe6f1708cad92ac53d82b64736f6c6343000813003360c060405234801561001057600080fd5b5060405161149538038061149583398101604081905261002f91610044565b336080526001600160a01b031660a052610074565b60006020828403121561005657600080fd5b81516001600160a01b038116811461006d57600080fd5b9392505050565b60805160a0516113e86100ad6000396000818161015c0152818161021e015261030a0152600081816093015261026901526113e86000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634817a2861461003b5780637d10d11f14610064575b600080fd5b61004e610049366004610da7565b610079565b60405161005b9190610eb6565b60405180910390f35b610077610072366004610ed0565b610251565b005b60603373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461011f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f475076323a206e6f742063726561746f7200000000000000000000000000000060448201526064015b60405180910390fd5b6040517f945bcec900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063945bcec99061019d908c908c908c908c908c908c908c90600401611003565b6000604051808303816000875af11580156101bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261020291908101906111dd565b905061024573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168333610336565b98975050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f475076323a206e6f742063726561746f720000000000000000000000000000006044820152606401610116565b61033273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001683833361061b565b5050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee61035b604084016020850161126e565b73ffffffffffffffffffffffffffffffffffffffff16036103d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f475076323a2063616e6e6f74207472616e73666572206e6174697665204554486044820152606401610116565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc982606001350361044b57610446610413602084018461126e565b8260408501803590610428906020880161126e565b73ffffffffffffffffffffffffffffffffffffffff1692919061096d565b505050565b604080516001808252818301909252600091816020015b6040805160a0810182526000808252602080830182905292820181905260608201819052608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816104625790505090506000816000815181106104d2576104d261128b565b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea063284606001351461050e576002610511565b60035b8190600381111561052457610524610f45565b9081600381111561053757610537610f45565b90525061054a604085016020860161126e565b73ffffffffffffffffffffffffffffffffffffffff166020808301919091526040808601359083015261057f9085018561126e565b73ffffffffffffffffffffffffffffffffffffffff908116606083015283811660808301526040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815290861690630e8e3e84906105e29085906004016112ba565b600060405180830381600087803b1580156105fc57600080fd5b505af1158015610610573d6000803e3d6000fd5b505050505050505050565b60008267ffffffffffffffff81111561063657610636610b66565b6040519080825280602002602001820160405280156106ad57816020015b6040805160a0810182526000808252602080830182905292820181905260608201819052608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816106545790505b5090506000805b848110156108d657368686838181106106cf576106cf61128b565b60800291909101915073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90506106ff604083016020840161126e565b73ffffffffffffffffffffffffffffffffffffffff160361077c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f475076323a2063616e6e6f74207472616e73666572206e6174697665204554486044820152606401610116565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc98160600135036107d1576107cc6107b7602083018361126e565b8660408401803590610428906020870161126e565b6108c3565b600084846107de81611353565b9550815181106107f0576107f061128b565b602002602001015190507fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea063282606001351461082c57600161082f565b60035b8190600381111561084257610842610f45565b9081600381111561085557610855610f45565b905250610868604083016020840161126e565b73ffffffffffffffffffffffffffffffffffffffff166020808301919091526040808401359083015261089d9083018361126e565b73ffffffffffffffffffffffffffffffffffffffff908116606083015286166080909101525b50806108ce81611353565b9150506106b4565b508015610965578082526040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690630e8e3e84906109329085906004016112ba565b600060405180830381600087803b15801561094c57600080fd5b505af1158015610960573d6000803e3d6000fd5b505050505b505050505050565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff8581166004840152841660248301526044820183905290600080606483828a5af16109d8573d6000803e3d6000fd5b506109e285610a4f565b610a48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f475076323a206661696c6564207472616e7366657246726f6d000000000000006044820152606401610116565b5050505050565b6000610a8e565b7f08c379a000000000000000000000000000000000000000000000000000000000600052602060045280602452508060445260646000fd5b3d8015610acd5760208114610b0757610ac87f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f610a56565b610b14565b823b610afe57610afe7f475076323a206e6f74206120636f6e74726163740000000000000000000000006014610a56565b60019150610b14565b3d6000803e600051151591505b50919050565b60008083601f840112610b2c57600080fd5b50813567ffffffffffffffff811115610b4457600080fd5b6020830191508360208260051b8501011115610b5f57600080fd5b9250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610bdc57610bdc610b66565b604052919050565b600067ffffffffffffffff821115610bfe57610bfe610b66565b5060051b60200190565b73ffffffffffffffffffffffffffffffffffffffff81168114610c2a57600080fd5b50565b600082601f830112610c3e57600080fd5b81356020610c53610c4e83610be4565b610b95565b82815260059290921b84018101918181019086841115610c7257600080fd5b8286015b84811015610c96578035610c8981610c08565b8352918301918301610c76565b509695505050505050565b80358015158114610cb157600080fd5b919050565b600060808284031215610cc857600080fd5b6040516080810181811067ffffffffffffffff82111715610ceb57610ceb610b66565b6040529050808235610cfc81610c08565b8152610d0a60208401610ca1565b60208201526040830135610d1d81610c08565b6040820152610d2e60608401610ca1565b60608201525092915050565b600082601f830112610d4b57600080fd5b81356020610d5b610c4e83610be4565b82815260059290921b84018101918181019086841115610d7a57600080fd5b8286015b84811015610c965780358352918301918301610d7e565b600060808284031215610b1457600080fd5b6000806000806000806000806101a0898b031215610dc457600080fd5b883560028110610dd357600080fd5b9750602089013567ffffffffffffffff80821115610df057600080fd5b610dfc8c838d01610b1a565b909950975060408b0135915080821115610e1557600080fd5b610e218c838d01610c2d565b9650610e308c60608d01610cb6565b955060e08b0135915080821115610e4657600080fd5b50610e538b828c01610d3a565b9350506101008901359150610e6c8a6101208b01610d95565b90509295985092959890939650565b600081518084526020808501945080840160005b83811015610eab57815187529582019590820190600101610e8f565b509495945050505050565b602081526000610ec96020830184610e7b565b9392505050565b60008060208385031215610ee357600080fd5b823567ffffffffffffffff80821115610efb57600080fd5b818501915085601f830112610f0f57600080fd5b813581811115610f1e57600080fd5b8660208260071b8501011115610f3357600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600081518084526020808501945080840160005b83811015610eab57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101610fd1565b600061012080830160028b1061101b5761101b610f45565b8a84526020808501929092528890526101408084019160058a901b8501909101908a60005b8b811015611151577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec087850301855281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618e36030181126110a157600080fd5b8d01803585528381013584860152604080820135908601526060808201359086015260a0608080830135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe10181126110fc57600080fd5b90920185810192903567ffffffffffffffff81111561111a57600080fd5b80360384131561112957600080fd5b828289015261113b8389018286610f74565b9887019897505050928401925050600101611040565b50505083810360408501526111668189610fbd565b9150506111b5606084018773ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b82810360e08401526111c78186610e7b565b9150508261010083015298975050505050505050565b600060208083850312156111f057600080fd5b825167ffffffffffffffff81111561120757600080fd5b8301601f8101851361121857600080fd5b8051611226610c4e82610be4565b81815260059190911b8201830190838101908783111561124557600080fd5b928401925b828410156112635783518252928401929084019061124a565b979650505050505050565b60006020828403121561128057600080fd5b8135610ec981610c08565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b828110156113465781518051600481106112f3576112f3610f45565b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a090930192908501906001016112d7565b5091979650505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036113ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea264697066735822122004adc15dd1d35c2bfa3dce7fd2d81bebbfbd818bb0fe0cbf0471642fd2d0766964736f6c63430008130033", - "sourceMap": "667:18561:56:-:0;;;2868:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2526:175:69;;;898:117;2526:175;;;903:25:168;1139:28:69;944:18:168;;;937:34;;;;1297:15:69;987:18:168;;;980:34;2456:9:69;1030:18:168;;;1023:34;;;2682:4:69;1073:19:168;;;1066:61;2456:9:69;875:19:168;;2526:175:69;;;-1:-1:-1;;2526:175:69;;;;;;;;;;2503:208;;2526:175;2503:208;;;;2485:226;;1871:1:71;1976:22;;-1:-1:-1;;;;;2940:30:56;;;;;2980:14;;;;2988:6;;-1:-1:-1;3019:28:56;;;:::i;:::-;-1:-1:-1;;;;;1318:32:168;;;1300:51;;1288:2;1273:18;3019:28:56;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3004:43:56;;;-1:-1:-1;667:18561:56;;-1:-1:-1;667:18561:56;;;;;;;;;:::o;14:151:168:-;-1:-1:-1;;;;;109:31:168;;99:42;;89:70;;155:1;152;145:12;89:70;14:151;:::o;170:469::-;293:6;301;354:2;342:9;333:7;329:23;325:32;322:52;;;370:1;367;360:12;322:52;402:9;396:16;421:51;466:5;421:51;:::i;:::-;541:2;526:18;;520:25;491:5;;-1:-1:-1;554:53:168;520:25;554:53;:::i;:::-;626:7;616:17;;;170:469;;;;;:::o;1138:219::-;667:18561:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x6080604052600436106100ec5760003560e01c80639b552cc21161008a578063ed9f35ce11610059578063ed9f35ce146102f7578063f698da2514610317578063f84436bd1461034b578063fbfa77cf1461036b57600080fd5b80639b552cc21461024b578063a2a7d51b1461027f578063d08d33d11461029f578063ec6cb13f146102d757600080fd5b80632479fb6e116100c65780632479fb6e1461019857806343218e19146101de5780635624b25b1461020b578063845a101f1461022b57600080fd5b806313d79a0b146100f857806315337bc01461011a5780632335c76b1461013a57600080fd5b366100f357005b600080fd5b34801561010457600080fd5b50610118610113366004612e7d565b61039f565b005b34801561012657600080fd5b50610118610135366004612f84565b610666565b34801561014657600080fd5b5061016e7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101a457600080fd5b506101d06101b33660046130d2565b805160208183018101805160028252928201919093012091525481565b60405190815260200161018f565b3480156101ea57600080fd5b506101fe6101f936600461312c565b610775565b60405161018f91906131ea565b34801561021757600080fd5b506101fe6102263660046131fd565b610817565b34801561023757600080fd5b5061011861024636600461321f565b61089f565b34801561025757600080fd5b5061016e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561028b57600080fd5b5061011861029a3660046132bb565b6110e1565b3480156102ab57600080fd5b506101d06102ba3660046130d2565b805160208183018101805160008252928201919093012091525481565b3480156102e357600080fd5b506101186102f23660046132ff565b611140565b34801561030357600080fd5b506101186103123660046132bb565b611282565b34801561032357600080fd5b506101d07f000000000000000000000000000000000000000000000000000000000000000081565b34801561035757600080fd5b506101fe61036636600461312c565b6112dd565b34801561037757600080fd5b5061016e7f000000000000000000000000000000000000000000000000000000000000000081565b6002600154036103f65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026001556040517f02cc250d0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906302cc250d90602401602060405180830381865afa158015610485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a99190613356565b6104f55760405162461bcd60e51b815260206004820152601260248201527f475076323a206e6f74206120736f6c766572000000000000000000000000000060448201526064016103ed565b6105118160005b60200281019061050c91906133a2565b61145e565b6000806105228989898989896115e3565b6040517f7d10d11f000000000000000000000000000000000000000000000000000000008152919350915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637d10d11f9061059990859060040161340a565b600060405180830381600087803b1580156105b357600080fd5b505af11580156105c7573d6000803e3d6000fd5b505050506105e1836001600381106104fc576104fc613373565b61062173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016826117e2565b61062c8360026104fc565b60405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a250506001805550505050505050565b60006106728383611b26565b5091505073ffffffffffffffffffffffffffffffffffffffff811633146106db5760405162461bcd60e51b815260206004820152601f60248201527f475076323a2063616c6c657220646f6573206e6f74206f776e206f726465720060448201526064016103ed565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6002848460405161070e929190613493565b9081526020016040518091039020819055508073ffffffffffffffffffffffffffffffffffffffff167f875b6cb035bbd4ac6500fabc6d1e4ca5bdc58a3e2b424ccb5c24cdbebeb009a984846040516107689291906134ec565b60405180910390a2505050565b606060008373ffffffffffffffffffffffffffffffffffffffff168360405161079e9190613500565b600060405180830381855af49150503d80600081146107d9576040519150601f19603f3d011682016040523d82523d6000602084013e6107de565b606091505b50604051909350909150610810906107fc908490849060200161351c565b604051602081830303815290604052611b95565b5092915050565b60606000610826836020613573565b67ffffffffffffffff81111561083e5761083e612fc6565b6040519080825280601f01601f191660200182016040528015610868576020820181803683370190505b50905060005b8381101561089557848101546020808302840101528061088d8161358a565b91505061086e565b5090505b92915050565b6002600154036108f15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103ed565b60026001556040517f02cc250d0000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906302cc250d90602401602060405180830381865afa158015610980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a49190613356565b6109f05760405162461bcd60e51b815260206004820152601260248201527f475076323a206e6f74206120736f6c766572000000000000000000000000000060448201526064016103ed565b60006109fa611b9d565b8051909150610a0b82868686611c43565b60007ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677582610100015114610a40576001610a43565b60005b604080516080810182526000808252602082018181528284018281526060808501848152958a015173ffffffffffffffffffffffffffffffffffffffff90811686526101408a01517f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce908114909452908a0151169052610160870151149092529192508667ffffffffffffffff811115610adf57610adf612fc6565b604051908082528060200260200182016040528015610b08578160200160208202803683370190505b50610100850151909150610120870135907f0c4d888d74c0118b6b7e14c1f4c4b767f24454879a703be6fda34e9111cb988b01610bfb578460800151811015610b935760405162461bcd60e51b815260206004820152601360248201527f475076323a206c696d697420746f6f206c6f770000000000000000000000000060448201526064016103ed565b610ba08560600151611ce1565b82886000013581518110610bb657610bb6613373565b602002602001018181525050610bcb81611ce1565b610bd4906135c2565b82886020013581518110610bea57610bea613373565b602002602001018181525050610cb3565b8460600151811115610c4f5760405162461bcd60e51b815260206004820152601460248201527f475076323a206c696d697420746f6f206869676800000000000000000000000060448201526064016103ed565b610c5881611ce1565b82886000013581518110610c6e57610c6e613373565b602002602001018181525050610c878560800151611ce1565b610c90906135c2565b82886020013581518110610ca657610ca6613373565b6020026020010181815250505b6040805160808101825260008082526020820181905291810182905260608101919091528660400151816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560000151816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508560e0015181604001818152505085610140015181606001818152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634817a286878f8f8f8f8b8b8f60a001518b6040518a63ffffffff1660e01b8152600401610ddb999897969594939291906136af565b6000604051808303816000875af1158015610dfa573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e4091908101906138d7565b90506000886020015190506000610e73838c6000013581518110610e6657610e66613373565b6020026020010151611d57565b90506000610ea6848d6020013581518110610e9057610e90613373565b6020026020010151610ea1906135c2565b611d57565b9050600283604051610eb89190613500565b908152602001604051809103902054600014610f165760405162461bcd60e51b815260206004820152601260248201527f475076323a206f726465722066696c6c6564000000000000000000000000000060448201526064016103ed565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467758a610100015103610fbf5789606001518214610f955760405162461bcd60e51b815260206004820152601f60248201527f475076323a2073656c6c20616d6f756e74206e6f74207265737065637465640060448201526064016103ed565b8960600151600284604051610faa9190613500565b90815260405190819003602001902055611038565b896080015181146110125760405162461bcd60e51b815260206004820152601e60248201527f475076323a2062757920616d6f756e74206e6f7420726573706563746564000060448201526064016103ed565b89608001516002846040516110279190613500565b908152604051908190036020019020555b8a6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc178b600001518c6020015185858f60e00151896040516110989695949392919061397d565b60405180910390a260405133907f40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db490600090a25050600180555050505050505050505050505050565b3033146111305760405162461bcd60e51b815260206004820152601860248201527f475076323a206e6f7420616e20696e746572616374696f6e000000000000000060448201526064016103ed565b61113c60008383611da9565b5050565b600061114c8484611b26565b5091505073ffffffffffffffffffffffffffffffffffffffff811633146111b55760405162461bcd60e51b815260206004820152601a60248201527f475076323a2063616e6e6f74207072657369676e206f7264657200000000000060448201526064016103ed565b8115611206577ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c600085856040516111f1929190613493565b9081526040519081900360200190205561122a565b6000808585604051611219929190613493565b908152604051908190036020019020555b8073ffffffffffffffffffffffffffffffffffffffff167f01bf7c8b0ca55deecbea89d7e58295b7ffbf685fd0d96801034ba8c6ffe1c68d858585604051611274939291906139c8565b60405180910390a250505050565b3033146112d15760405162461bcd60e51b815260206004820152601860248201527f475076323a206e6f7420616e20696e746572616374696f6e000000000000000060448201526064016103ed565b61113c60028383611da9565b606060006343218e1960e01b84846040516024016112fc9291906139ee565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051909150309061138b908390613500565b6000604051808303816000865af19150503d80600081146113c8576040519150601f19603f3d011682016040523d82523d6000602084013e6113cd565b606091505b50905080925050600082600184516113e59190613a1d565b815181106113f5576113f5613373565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b149050611440836001855161143c9190613a1d565b9052565b801561144d575050610899565b61145683611b95565b505092915050565b60005b818110156115de573683838381811061147c5761147c613373565b905060200281019061148e9190613a30565b905073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166114d46020830183613a64565b73ffffffffffffffffffffffffffffffffffffffff16036115375760405162461bcd60e51b815260206004820152601b60248201527f475076323a20666f7262696464656e20696e746572616374696f6e000000000060448201526064016103ed565b61154081611e7e565b61154d6020820182613a64565b73ffffffffffffffffffffffffffffffffffffffff167fed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2826020013561159284611ece565b604080519283527fffffffff0000000000000000000000000000000000000000000000000000000090911660208301520160405180910390a250806115d68161358a565b915050611461565b505050565b60608060006115f0611b9d565b90508367ffffffffffffffff81111561160b5761160b612fc6565b60405190808252806020026020018201604052801561167b57816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816116295790505b5092508367ffffffffffffffff81111561169757611697612fc6565b60405190808252806020026020018201604052801561170757816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816116b55790505b50915060005b848110156117d5573686868381811061172857611728613373565b905060200281019061173a9190613a81565b9050611748838c8c84611c43565b6117c2838a8a843581811061175f5761175f613373565b905060200201358b8b856020013581811061177c5761177c613373565b9050602002013584610120013589878151811061179b5761179b613373565b60200260200101518988815181106117b5576117b5613373565b6020026020010151611ef8565b50806117cd8161358a565b91505061170d565b5050965096945050505050565b6000815167ffffffffffffffff8111156117fe576117fe612fc6565b60405190808252806020026020018201604052801561187557816020015b6040805160a0810182526000808252602080830182905292820181905260608201819052608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161181c5790505b5090506000805b8351811015611a9157600084828151811061189957611899613373565b6020026020010151905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff16036119b1577f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce8160600151036119615760405162461bcd60e51b815260206004820152601e60248201527f475076323a20756e737570706f7274656420696e7465726e616c20455448000060448201526064016103ed565b8051604080830151905173ffffffffffffffffffffffffffffffffffffffff9092169181156108fc0291906000818181858888f193505050501580156119ab573d6000803e3d6000fd5b50611a7e565b7f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9816060015103611a0f57805160408201516020830151611a0a9273ffffffffffffffffffffffffffffffffffffffff9091169161229a565b611a7e565b60008484611a1c8161358a565b955081518110611a2e57611a2e613373565b602090810291909101810151600081528382015173ffffffffffffffffffffffffffffffffffffffff90811692820192909252604080850151908201523060608201528351909116608090910152505b5080611a898161358a565b91505061187c565b508015611b20578082526040517f0e8e3e8400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690630e8e3e8490611aed908590600401613ab5565b600060405180830381600087803b158015611b0757600080fd5b505af1158015611b1b573d6000803e3d6000fd5b505050505b50505050565b6000808060388414611b7a5760405162461bcd60e51b815260206004820152601160248201527f475076323a20696e76616c69642075696400000000000000000000000000000060448201526064016103ed565b5050823593602084013560601c936034013560e01c92509050565b805160208201fd5b604080516102008101825260006080820181815260a0830182905260c0830182905260e08301829052610100830182905261012083018290526101408301829052610160830182905261018083018290526101a083018290526101c083018290526101e083018290528252606060208301819052928201819052918101919091526040805160388082526060820190925290602082018180368337505050602082015290565b83516000611c5383868685612353565b9050600080611c708484611c6b610140890189613b4e565b612481565b91509150611c9382828660a001518b602001516125b8909392919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff81166040890152611cb9848261261b565b73ffffffffffffffffffffffffffffffffffffffff1660609098019790975250505050505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611d535760405162461bcd60e51b815260206004820152601960248201527f53616665436173743a20696e74323536206f766572666c6f770000000000000060448201526064016103ed565b5090565b600080821215611d535760405162461bcd60e51b815260206004820152601660248201527f53616665436173743a206e6f7420706f7369746976650000000000000000000060448201526064016103ed565b60005b81811015611b2057366000848484818110611dc957611dc9613373565b9050602002810190611ddb9190613b4e565b915091506000611deb8383611b26565b92505050428163ffffffff1610611e445760405162461bcd60e51b815260206004820152601760248201527f475076323a206f72646572207374696c6c2076616c696400000000000000000060448201526064016103ed565b6000878484604051611e57929190613493565b9081526040519081900360200190205550829150611e7690508161358a565b915050611dac565b6000611e8d6020830183613a64565b90506020820135366000611ea46040860186613b4e565b9150915060405181838237600080838387895af1611ec6573d6000803e3d6000fd5b505050505050565b60003681611edf6040850185613b4e565b909250905060048110611ef157813592505b5050919050565b8551602087015160a08201514263ffffffff9091161015611f5b5760405162461bcd60e51b815260206004820152601360248201527f475076323a206f7264657220657870697265640000000000000000000000000060448201526064016103ed565b6080820151611f6a908761264d565b6060830151611f79908961264d565b1015611fc75760405162461bcd60e51b815260206004820152601f60248201527f475076323a206c696d6974207072696365206e6f74207265737065637465640060448201526064016103ed565b6000806000807ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775866101000151036120dd57856101200151156120335788935061202c8660600151612026868960e0015161264d90919063ffffffff16565b906126cc565b9150612042565b856060015193508560e0015191505b6120568a612050868e61264d565b90612727565b92506120828460028760405161206c9190613500565b90815260405190819003602001902054906127a8565b905085606001518111156120d85760405162461bcd60e51b815260206004820152601260248201527f475076323a206f726465722066696c6c6564000000000000000000000000000060448201526064016103ed565b61219a565b856101200151156121115788925061210a8660800151612026858960e0015161264d90919063ffffffff16565b9150612120565b856080015192508560e0015191505b61212e8b612026858d61264d565b93506121448360028760405161206c9190613500565b9050856080015181111561219a5760405162461bcd60e51b815260206004820152601260248201527f475076323a206f726465722066696c6c6564000000000000000000000000000060448201526064016103ed565b6121a484836127a8565b9350806002866040516121b79190613500565b9081526020016040518091039020819055508b6040015173ffffffffffffffffffffffffffffffffffffffff167fa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17876000015188602001518787878b6040516122259695949392919061397d565b60405180910390a250506040808b015173ffffffffffffffffffffffffffffffffffffffff9081168852855181166020808a0191909152888301949094526101408601516060988901529a8701518b16865282850151909a169185019190915297830197909752610160015191015250505050565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff84166004830152602482018390529060008060448382895af16122fd573d6000803e3d6000fd5b5061230784612807565b611b205760405162461bcd60e51b815260206004820152601560248201527f475076323a206661696c6564207472616e73666572000000000000000000000060448201526064016103ed565b60008383863581811061236857612368613373565b905060200201602081019061237d9190613a64565b73ffffffffffffffffffffffffffffffffffffffff168252838360208701358181106123ab576123ab613373565b90506020020160208101906123c09190613a64565b73ffffffffffffffffffffffffffffffffffffffff1660208301526123eb6060860160408701613a64565b73ffffffffffffffffffffffffffffffffffffffff166040830152606080860135908301526080808601359083015261242a60c0860160a08701613bb3565b63ffffffff1660a083015260c0808601359083015260e080860135908301526124576101008601356128b8565b61016087019190915261014086019190915290151561012085015261010090930152509392505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0840180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f190100000000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600282015260228101919091526042902060008085600381111561253d5761253d6135fa565b036125545761254d828585612a21565b90506125af565b6001856003811115612568576125686135fa565b036125785761254d828585612a36565b600285600381111561258c5761258c6135fa565b0361259c5761254d828585612a9a565b6125ac8285858960a00151612bc5565b90505b94509492505050565b60388451146126095760405162461bcd60e51b815260206004820152601960248201527f475076323a2075696420627566666572206f766572666c6f770000000000000060448201526064016103ed565b60388401526034830152602090910152565b604082015160009073ffffffffffffffffffffffffffffffffffffffff16612644575080610899565b50506040015190565b60008260000361265f57506000610899565b600061266b8385613573565b9050826126788583613c08565b146126c55760405162461bcd60e51b815260206004820152601660248201527f536166654d6174683a206d756c206f766572666c6f770000000000000000000060448201526064016103ed565b9392505050565b600080821161271d5760405162461bcd60e51b815260206004820152601760248201527f536166654d6174683a206469766973696f6e206279203000000000000000000060448201526064016103ed565b6126c58284613c08565b60008082116127785760405162461bcd60e51b815260206004820152601f60248201527f536166654d6174683a206365696c696e67206469766973696f6e20627920300060448201526064016103ed565b6127828284613c1c565b1561278e576001612791565b60005b60ff1661279e8385613c08565b6126c59190613c30565b6000806127b58385613c30565b9050838110156126c55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103ed565b600061282c565b62461bcd60e51b600052602060045280602452508060445260646000fd5b3d801561286b57602081146128a5576128667f475076323a206d616c666f726d6564207472616e7366657220726573756c7400601f61280e565b6128b2565b823b61289c5761289c7f475076323a206e6f74206120636f6e7472616374000000000000000000000000601461280e565b600191506128b2565b3d6000803e600051151591505b50919050565b6000806000806000856001166000036128f3577ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467759450612917565b7f6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc94505b600286161515935060088616600003612952577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc992506129a9565b85600416600003612985577fabee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea063292506129a9565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce92505b856010166000036129dc577f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc99150612a00565b7f4ac99ace14ee0a5ef932dc609df0943ab7ac16b7583634612f8dc35a4289a6ce91505b600586901c6003811115612a1657612a166135fa565b905091939590929450565b6000612a2e848484612ce7565b949350505050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018490526000908190605c01604051602081830303815290604052805190602001209050612a91818585612ce7565b95945050505050565b813560601c366000612aaf8460148188613c43565b6040517f1626ba7e0000000000000000000000000000000000000000000000000000000080825292945090925073ffffffffffffffffffffffffffffffffffffffff851690631626ba7e90612b0c908a9087908790600401613c6d565b602060405180830381865afa158015612b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4d9190613c87565b7fffffffff000000000000000000000000000000000000000000000000000000001614612bbc5760405162461bcd60e51b815260206004820152601f60248201527f475076323a20696e76616c69642065697031323731207369676e61747572650060448201526064016103ed565b50509392505050565b600060148314612c175760405162461bcd60e51b815260206004820152601c60248201527f475076323a206d616c666f726d6564207072657369676e61747572650000000060448201526064016103ed565b506040805160388082526060828101909352853590921c9160009190602082018180368337019050509050612c4e818784866125b8565b7ff59c009283ff87aa78203fc4d9c2df025ee851130fb69cc3e068941f6b5e2d6f60001c600082604051612c829190613500565b90815260200160405180910390205414612cde5760405162461bcd60e51b815260206004820152601960248201527f475076323a206f72646572206e6f74207072657369676e65640000000000000060448201526064016103ed565b50949350505050565b600060418214612d395760405162461bcd60e51b815260206004820152601f60248201527f475076323a206d616c666f726d6564206563647361207369676e61747572650060448201526064016103ed565b604080516000815260208082018084528790528583013560f81c92820183905285356060830181905290860135608083018190529092909160019060a0016020604051602081039080840390855afa158015612d99573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015194505073ffffffffffffffffffffffffffffffffffffffff8416612e275760405162461bcd60e51b815260206004820152601d60248201527f475076323a20696e76616c6964206563647361207369676e617475726500000060448201526064016103ed565b5050509392505050565b60008083601f840112612e4357600080fd5b50813567ffffffffffffffff811115612e5b57600080fd5b6020830191508360208260051b8501011115612e7657600080fd5b9250929050565b60008060008060008060006080888a031215612e9857600080fd5b873567ffffffffffffffff80821115612eb057600080fd5b612ebc8b838c01612e31565b909950975060208a0135915080821115612ed557600080fd5b612ee18b838c01612e31565b909750955060408a0135915080821115612efa57600080fd5b612f068b838c01612e31565b909550935060608a0135915080821115612f1f57600080fd5b508801606081018a1015612f3257600080fd5b8091505092959891949750929550565b60008083601f840112612f5457600080fd5b50813567ffffffffffffffff811115612f6c57600080fd5b602083019150836020828501011115612e7657600080fd5b60008060208385031215612f9757600080fd5b823567ffffffffffffffff811115612fae57600080fd5b612fba85828601612f42565b90969095509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561303c5761303c612fc6565b604052919050565b600082601f83011261305557600080fd5b813567ffffffffffffffff81111561306f5761306f612fc6565b6130a060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612ff5565b8181528460208386010111156130b557600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156130e457600080fd5b813567ffffffffffffffff8111156130fb57600080fd5b612a2e84828501613044565b73ffffffffffffffffffffffffffffffffffffffff8116811461312957600080fd5b50565b6000806040838503121561313f57600080fd5b823561314a81613107565b9150602083013567ffffffffffffffff81111561316657600080fd5b61317285828601613044565b9150509250929050565b60005b8381101561319757818101518382015260200161317f565b50506000910152565b600081518084526131b881602086016020860161317c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006126c560208301846131a0565b6000806040838503121561321057600080fd5b50508035926020909101359150565b60008060008060006060868803121561323757600080fd5b853567ffffffffffffffff8082111561324f57600080fd5b61325b89838a01612e31565b9097509550602088013591508082111561327457600080fd5b61328089838a01612e31565b9095509350604088013591508082111561329957600080fd5b50860161016081890312156132ad57600080fd5b809150509295509295909350565b600080602083850312156132ce57600080fd5b823567ffffffffffffffff8111156132e557600080fd5b612fba85828601612e31565b801515811461312957600080fd5b60008060006040848603121561331457600080fd5b833567ffffffffffffffff81111561332b57600080fd5b61333786828701612f42565b909450925050602084013561334b816132f1565b809150509250925092565b60006020828403121561336857600080fd5b81516126c5816132f1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126133d757600080fd5b83018035915067ffffffffffffffff8211156133f257600080fd5b6020019150600581901b3603821315612e7657600080fd5b6020808252825182820181905260009190848201906040850190845b818110156134875761347483855173ffffffffffffffffffffffffffffffffffffffff8082511683528060208301511660208401525060408101516040830152606081015160608301525050565b9284019260809290920191600101613426565b50909695505050505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081526000612a2e6020830184866134a3565b6000825161351281846020870161317c565b9190910192915050565b6000835161352e81846020880161317c565b92151560f81b9190920190815260010192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761089957610899613544565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135bb576135bb613544565b5060010190565b60007f800000000000000000000000000000000000000000000000000000000000000082036135f3576135f3613544565b5060000390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8183526000602080850194508260005b8581101561367457813561364c81613107565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101613639565b509495945050505050565b600081518084526020808501945080840160005b8381101561367457815187529582019590820190600101613693565b60006101a0820160028c106136c6576136c66135fa565b8b83526101a060208401528990526101c060058a901b830181019083018b60005b8c8110156137fb577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4086850301835281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618f360301811261374857600080fd5b8e810190508035855260208101356020860152604081013560408601526060810135606086015260808101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181126137a457600080fd5b0160208101903567ffffffffffffffff8111156137c057600080fd5b8036038213156137cf57600080fd5b60a060808701526137e460a0870182846134a3565b9550505060209283019291909101906001016136e7565b505050828103604084015261381181898b613629565b905061385f606084018873ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b82810360e0840152613871818761367f565b91505061388761010083018563ffffffff169052565b825173ffffffffffffffffffffffffffffffffffffffff908116610120840152602084015116610140830152604083015161016083015260608301516101808301529a9950505050505050505050565b600060208083850312156138ea57600080fd5b825167ffffffffffffffff8082111561390257600080fd5b818501915085601f83011261391657600080fd5b81518181111561392857613928612fc6565b8060051b9150613939848301612ff5565b818152918301840191848101908884111561395357600080fd5b938501935b8385101561397157845182529385019390850190613958565b98975050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015283608083015260c060a083015261397160c08301846131a0565b6040815260006139dc6040830185876134a3565b90508215156020830152949350505050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000612a2e60408301846131a0565b8181038181111561089957610899613544565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261351257600080fd5b600060208284031215613a7657600080fd5b81356126c581613107565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea183360301811261351257600080fd5b602080825282518282018190526000919060409081850190868401855b82811015613b41578151805160048110613aee57613aee6135fa565b85528087015173ffffffffffffffffffffffffffffffffffffffff908116888701528682015187870152606080830151821690870152608091820151169085015260a09093019290850190600101613ad2565b5091979650505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613b8357600080fd5b83018035915067ffffffffffffffff821115613b9e57600080fd5b602001915036819003821315612e7657600080fd5b600060208284031215613bc557600080fd5b813563ffffffff811681146126c557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613c1757613c17613bd9565b500490565b600082613c2b57613c2b613bd9565b500690565b8082018082111561089957610899613544565b60008085851115613c5357600080fd5b83861115613c6057600080fd5b5050820193919092039150565b838152604060208201526000612a916040830184866134a3565b600060208284031215613c9957600080fd5b81517fffffffff00000000000000000000000000000000000000000000000000000000811681146126c557600080fdfea2646970667358221220216557c7a90738eb93ef69fbc9a64a14b855be6987abe6f1708cad92ac53d82b64736f6c63430008130033", - "sourceMap": "667:18561:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5054:705;;;;;;;;;;-1:-1:-1;5054:705:56;;;;;:::i;:::-;;:::i;:::-;;10234:303;;;;;;;;;;-1:-1:-1;10234:303:56;;;;;:::i;:::-;;:::i;1188:49::-;;;;;;;;;;;;;;;;;;2834:42:168;2822:55;;;2804:74;;2792:2;2777:18;1188:49:56;;;;;;;;1952:45;;;;;;;;;;-1:-1:-1;1952:45:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4482:25:168;;;4470:2;4455:18;1952:45:56;4336:177:168;3746:376:72;;;;;;;;;;-1:-1:-1;3746:376:72;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1635:494::-;;;;;;;;;;-1:-1:-1;1635:494:72;;;;;:::i;:::-;;:::i;6269:3614:56:-;;;;;;;;;;-1:-1:-1;6269:3614:56;;;;;:::i;:::-;;:::i;1485:46::-;;;;;;;;;;;;;;;11231:164;;;;;;;;;;-1:-1:-1;11231:164:56;;;;;:::i;:::-;;:::i;1962:45:69:-;;;;;;;;;;-1:-1:-1;1962:45:69;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2866:401;;;;;;;;;;-1:-1:-1;2866:401:69;;;;;:::i;:::-;;:::i;10802:164:56:-;;;;;;;;;;-1:-1:-1;10802:164:56;;;;;:::i;:::-;;:::i;1810:40:69:-;;;;;;;;;;;;;;;2565:680:72;;;;;;;;;;-1:-1:-1;2565:680:72;;;;;:::i;:::-;;:::i;1319:29:56:-;;;;;;;;;;;;;;;5054:705;1914:1:71;2493:7;;:19;2485:63;;;;-1:-1:-1;;;2485:63:71;;9321:2:168;2485:63:71;;;9303:21:168;9360:2;9340:18;;;9333:30;9399:33;9379:18;;;9372:61;9450:18;;2485:63:71;;;;;;;;;1914:1;2623:7;:18;3448:34:56::1;::::0;;;;3471:10:::1;3448:34;::::0;::::1;2804:74:168::0;3448:13:56::1;:22;;::::0;::::1;::::0;2777:18:168;;3448:34:56::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3440:65;;;::::0;-1:-1:-1;;;3440:65:56;;10162:2:168;3440:65:56::1;::::0;::::1;10144:21:168::0;10201:2;10181:18;;;10174:30;10240:20;10220:18;;;10213:48;10278:18;;3440:65:56::1;9960:342:168::0;3440:65:56::1;5295:36:::2;5315:12:::0;5328:1:::2;5315:15;;;;;;;;;;:::i;:::-;5295:19;:36::i;:::-;5356:38;5408:39:::0;5460:54:::2;5483:6;;5491:14;;5507:6;;5460:22;:54::i;:::-;5525:46;::::0;;;;5342:172;;-1:-1:-1;5342:172:56;-1:-1:-1;5525:33:56::2;:12;:33;::::0;::::2;::::0;:46:::2;::::0;5342:172;;5525:46:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;5582:36;5602:12;5615:1;5602:15;;;;;;;:::i;5582:36::-;5629:38;:24;:5;:24;5654:12:::0;5629:24:::2;:38::i;:::-;5678:36;5698:12:::0;5711:1:::2;5698:15;::::0;5678:36:::2;5730:22;::::0;5741:10:::2;::::0;5730:22:::2;::::0;;;::::2;-1:-1:-1::0;;1871:1:71;2796:22;;-1:-1:-1;;;;;;;5054:705:56:o;10234:303::-;10306:13;10325:32;:8;;:30;:32::i;:::-;-1:-1:-1;10303:54:56;-1:-1:-1;;10375:19:56;;;10384:10;10375:19;10367:63;;;;-1:-1:-1;;;10367:63:56;;12374:2:168;10367:63:56;;;12356:21:168;12413:2;12393:18;;;12386:30;12452:33;12432:18;;;12425:61;12503:18;;10367:63:56;12172:355:168;10367:63:56;10465:17;10440:12;10453:8;;10440:22;;;;;;;:::i;:::-;;;;;;;;;;;;;:42;;;;10514:5;10497:33;;;10521:8;;10497:33;;;;;;;:::i;:::-;;;;;;;;10293:244;10234:303;;:::o;3746:376:72:-;3878:21;3911:12;4014:14;:27;;4042:15;4014:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4079:35:72;;3992:66;;-1:-1:-1;3992:66:72;;-1:-1:-1;4068:47:72;;4079:35;;3992:66;;;;4079:35;;;:::i;:::-;;;;;;;;;;;;;4068:10;:47::i;:::-;3901:221;3746:376;;;;:::o;1635:494::-;1736:12;1764:19;1796:11;:6;1805:2;1796:11;:::i;:::-;1786:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1786:22:72;;1764:44;;1823:13;1818:282;1850:6;1842:5;:14;1818:282;;;1986:18;;;1980:25;2063:4;2052:16;;;2029:40;;;2022:54;1998:5;1858:7;1998:5;1858:7;:::i;:::-;;;;1818:282;;;-1:-1:-1;2116:6:72;-1:-1:-1;1635:494:72;;;;;:::o;6269:3614:56:-;1914:1:71;2493:7;;:19;2485:63;;;;-1:-1:-1;;;2485:63:71;;9321:2:168;2485:63:71;;;9303:21:168;9360:2;9340:18;;;9333:30;9399:33;9379:18;;;9372:61;9450:18;;2485:63:71;9119:355:168;2485:63:71;1914:1;2623:7;:18;3448:34:56::1;::::0;;;;3471:10:::1;3448:34;::::0;::::1;2804:74:168::0;3448:13:56::1;:22;;::::0;::::1;::::0;2777:18:168;;3448:34:56::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3440:65;;;::::0;-1:-1:-1;;;3440:65:56;;10162:2:168;3440:65:56::1;::::0;::::1;10144:21:168::0;10201:2;10181:18;;;10174:30;10240:20;10220:18;;;10213:48;10278:18;;3440:65:56::1;9960:342:168::0;3440:65:56::1;6452:36:::2;6491:24;:22;:24::i;:::-;6555:19:::0;;6452:63;;-1:-1:-1;6584:52:56::2;6452:63:::0;6622:6;;6630:5;6584:21:::2;:52::i;:::-;6647:20;6684:19;6670:5;:10;;;:33;:112;;6757:25;6670:112;;;6718:24;6670:112;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6852:20:56;;::::2;::::0;6837:35:::2;::::0;;::::2;::::0;;6922:22:::2;::::0;::::2;::::0;6948:26:::2;6922:52:::0;;::::2;6882:92:::0;;;7010:23;;::::2;::::0;6984:50:::2;::::0;;7082:21:::2;::::0;::::2;::::0;:51:::2;7044:89:::0;;;6647:135;;-1:-1:-1;7182:6:56;7169:27:::2;::::0;::::2;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;7169:27:56::2;-1:-1:-1::0;7459:10:56::2;::::0;::::2;::::0;7144:52;;-1:-1:-1;7228:20:56::2;::::0;::::2;;::::0;7459:33;;7455:498:::2;;7531:5;:15;;;7516:11;:30;;7508:62;;;::::0;-1:-1:-1;;;7508:62:56;;14848:2:168;7508:62:56::2;::::0;::::2;14830:21:168::0;14887:2;14867:18;;;14860:30;14926:21;14906:18;;;14899:49;14965:18;;7508:62:56::2;14646:343:168::0;7508:62:56::2;7615:27;:5;:16;;;:25;:27::i;:::-;7584:6;7591:5;:20;;;7584:28;;;;;;;;:::i;:::-;;;;;;:58;;;::::0;::::2;7687:22;:11;:20;:22::i;:::-;7686:23;;;:::i;:::-;7656:6;7663:5;:19;;;7656:27;;;;;;;;:::i;:::-;;;;;;:53;;;::::0;::::2;7455:498;;;7763:5;:16;;;7748:11;:31;;7740:64;;;::::0;-1:-1:-1;;;7740:64:56;;15392:2:168;7740:64:56::2;::::0;::::2;15374:21:168::0;15431:2;15411:18;;;15404:30;15470:22;15450:18;;;15443:50;15510:18;;7740:64:56::2;15190:344:168::0;7740:64:56::2;7849:22;:11;:20;:22::i;:::-;7818:6;7825:5;:20;;;7818:28;;;;;;;;:::i;:::-;;;;;;:53;;;::::0;::::2;7916:26;:5;:15;;;:24;:26::i;:::-;7915:27;;;:::i;:::-;7885:6;7892:5;:19;;;7885:27;;;;;;;;:::i;:::-;;;;;;:57;;;::::0;::::2;7455:498;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8031:14:56::2;:20;;;8009:11;:19;;:42;;;;;;;;;::::0;::::2;8081:5;:15;;;8061:11;:17;;:35;;;;;;;;;::::0;::::2;8127:5;:15;;;8106:11;:18;;:36;;;::::0;::::2;8174:5;:22;;;8152:11;:19;;:44;;;::::0;::::2;8207:27;8237:12;:29;;;8280:4;8298:5;;8317:6;;8337:5;8356:6;8487:5;:13;;;8514:11;8237:298;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;::::0;::::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;8207:328;;8546:21;8570:14;:18;;;8546:42;;8598:26;8627:58;:11;8639:5;:20;;;8627:33;;;;;;;;:::i;:::-;;;;;;;:56;:58::i;:::-;8598:87;;8695:25;8723:60;8725:11;8737:5;:19;;;8725:32;;;;;;;;:::i;:::-;;;;;;;8724:33;;;:::i;:::-;8723:58;:60::i;:::-;8695:88;;9087:12;9100:8;9087:22;;;;;;:::i;:::-;;;;;;;;;;;;;;9113:1;9087:27;9079:58;;;::::0;-1:-1:-1;;;9079:58:56;;21286:2:168;9079:58:56::2;::::0;::::2;21268:21:168::0;21325:2;21305:18;;;21298:30;21364:20;21344:18;;;21337:48;21402:18;;9079:58:56::2;21084:342:168::0;9079:58:56::2;9165:19;9151:5;:10;;;:33:::0;9147:457:::2;;9247:5;:16;;;9225:18;:38;9200:128;;;::::0;-1:-1:-1;;;9200:128:56;;21633:2:168;9200:128:56::2;::::0;::::2;21615:21:168::0;21672:2;21652:18;;;21645:30;21711:33;21691:18;;;21684:61;21762:18;;9200:128:56::2;21431:355:168::0;9200:128:56::2;9367:5;:16;;;9342:12;9355:8;9342:22;;;;;;:::i;:::-;::::0;;;::::2;::::0;;;;;::::2;::::0;;;:41;9147:457:::2;;;9460:5;:15;;;9439:17;:36;9414:125;;;::::0;-1:-1:-1;;;9414:125:56;;21993:2:168;9414:125:56::2;::::0;::::2;21975:21:168::0;22032:2;22012:18;;;22005:30;22071:32;22051:18;;;22044:60;22121:18;;9414:125:56::2;21791:354:168::0;9414:125:56::2;9578:5;:15;;;9553:12;9566:8;9553:22;;;;;;:::i;:::-;::::0;;;::::2;::::0;;;;;::::2;::::0;;;:40;9147:457:::2;9638:14;:20;;;9619:220;;;9672:5;:15;;;9701:5;:14;;;9729:18;9761:17;9792:5;:15;;;9821:8;9619:220;;;;;;;;;;;:::i;:::-;;;;;;;;9854:22;::::0;9865:10:::2;::::0;9854:22:::2;::::0;;;::::2;-1:-1:-1::0;;1871:1:71;2796:22;;-1:-1:-1;;;;;;;;;;;;;;6269:3614:56:o;11231:164::-;3694:4;3703:10;3686:27;3678:64;;;;-1:-1:-1;;;3678:64:56;;23040:2:168;3678:64:56;;;23022:21:168;23079:2;23059:18;;;23052:30;23118:26;23098:18;;;23091:54;23162:18;;3678:64:56;22838:348:168;3678:64:56;11347:41:::1;11364:12;11378:9;;11347:16;:41::i;:::-;11231:164:::0;;:::o;2866:401:69:-;2951:13;2970:32;:8;;:30;:32::i;:::-;-1:-1:-1;2948:54:69;-1:-1:-1;;3020:19:69;;;3029:10;3020:19;3012:58;;;;-1:-1:-1;;;3012:58:69;;23393:2:168;3012:58:69;;;23375:21:168;23432:2;23412:18;;;23405:30;23471:28;23451:18;;;23444:56;23517:18;;3012:58:69;23191:350:168;3012:58:69;3084:6;3080:129;;;1434:39;1426:48;;3106:12;3119:8;;3106:22;;;;;;;:::i;:::-;;;;;;;;;;;;;;:35;3080:129;;;3197:1;3172:12;3185:8;;3172:22;;;;;;;:::i;:::-;;;;;;;;;;;;;;:26;3080:129;3236:5;3223:37;;;3243:8;;3253:6;3223:37;;;;;;;;:::i;:::-;;;;;;;;2938:329;2866:401;;;:::o;10802:164:56:-;3694:4;3703:10;3686:27;3678:64;;;;-1:-1:-1;;;3678:64:56;;23040:2:168;3678:64:56;;;23022:21:168;23079:2;23059:18;;;23052:30;23118:26;23098:18;;;23091:54;23162:18;;3678:64:56;22838:348:168;3678:64:56;10918:41:::1;10935:12;10949:9;;10918:16;:41::i;2565:680:72:-:0;2687:21;2720:22;2781:42;;;2837:14;2865:15;2745:145;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2974:29;;2745:145;;-1:-1:-1;2982:4:72;;2974:29;;2745:145;;2974:29;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:44;;;;;;3013:17;3033:8;3060:1;3042:8;:15;:19;;;;:::i;:::-;3033:29;;;;;;;;:::i;:::-;;;;;;;;;:37;;;3066:4;3033:37;;;3013:57;;3080:40;3090:8;3118:1;3100:8;:15;:19;;;;:::i;:::-;4499:22;;4340:197;3080:40;3134:12;3130:109;;;3162:15;;;;3130:109;3208:20;3219:8;3208:10;:20::i;:::-;2710:535;;2565:680;;;;:::o;17692:751:56:-;17803:9;17798:639;17814:23;;;17798:639;;;17858:41;17902:12;;17915:1;17902:15;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;17858:59;-1:-1:-1;18101:43:56;18131:12;18101:43;:18;;;;17858:59;18101:18;:::i;:::-;:43;;;18076:129;;;;-1:-1:-1;;;18076:129:56;;25191:2:168;18076:129:56;;;25173:21:168;25230:2;25210:18;;;25203:30;25269:29;25249:18;;;25242:57;25316:18;;18076:129:56;24989:351:168;18076:129:56;18219:36;18243:11;18219:23;:36::i;:::-;18304:18;;;;:11;:18;:::i;:::-;18275:151;;;18340:11;:17;;;18375:37;18400:11;18375:24;:37::i;:::-;18275:151;;;25517:25:168;;;25590:66;25578:79;;;25573:2;25558:18;;25551:107;25490:18;18275:151:56;;;;;;;-1:-1:-1;17839:3:56;;;;:::i;:::-;;;;17798:639;;;;17692:751;;:::o;12005:994::-;12209:38;12261:39;12325:36;12364:24;:22;:24::i;:::-;12325:63;-1:-1:-1;12437:6:56;12413:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12413:38:56;;;;;;;;;;;;;;-1:-1:-1;12399:52:56;-1:-1:-1;12500:6:56;12476:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12476:38:56;;;;;;;;;;;;;;;12461:53;;12530:9;12525:468;12545:17;;;12525:468;;;12583:29;12615:6;;12622:1;12615:9;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;12583:41;;12639:52;12661:14;12677:6;;12685:5;12639:21;:52::i;:::-;12705:277;12744:14;12776;;12791:20;;12776:36;;;;;;;:::i;:::-;;;;;;;12830:14;;12845:5;:19;;;12830:35;;;;;;;:::i;:::-;;;;;;;12883:5;:20;;;12921:11;12933:1;12921:14;;;;;;;;:::i;:::-;;;;;;;12953:12;12966:1;12953:15;;;;;;;;:::i;:::-;;;;;;;12705:21;:277::i;:::-;-1:-1:-1;12564:3:56;;;;:::i;:::-;;;;12525:468;;;;12315:684;12005:994;;;;;;;;;:::o;5617:1425:66:-;5715:40;5798:9;:16;5758:66;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5758:66:66;;;;;;;;;;;;;;;5715:109;;5834:22;5876:9;5871:1006;5895:9;:16;5891:1;:20;5871:1006;;;5932:20;5955:9;5965:1;5955:12;;;;;;;;:::i;:::-;;;;;;;5932:35;;632:42;5986;;5994:8;:14;;;5986:42;;;5982:885;;6097:26;6077:8;:16;;;:46;6048:147;;;;-1:-1:-1;;;6048:147:66;;26257:2:168;6048:147:66;;;26239:21:168;26296:2;26276:18;;;26269:30;26335:32;26315:18;;;26308:60;26385:18;;6048:147:66;26055:354:168;6048:147:66;6221:16;;6248:15;;;;;6213:51;;:34;;;;;:51;;;;;6248:15;6221:16;6213:51;6221:16;6213:51;6248:15;6213:34;:51;;;;;;;;;;;;;;;;;;;;;5982:885;;;6309:23;6289:8;:16;;;:43;6285:582;;6380:16;;6398:15;;;;6352:14;;;;:62;;:27;;;;;;:62::i;:::-;6285:582;;;6453:37;6493:10;6525:16;;;;:::i;:::-;;;6493:66;;;;;;;;:::i;:::-;;;;;;;;;;;;6594:41;6577:58;;6671:14;;;;6653:32;;;;:15;;;:32;;;;6722:15;;;;;6703:16;;;:34;6782:4;6755:16;;;:32;6835:16;;6805:47;;;:19;;;;:47;-1:-1:-1;6285:582:66;-1:-1:-1;5913:3:66;;;;:::i;:::-;;;;5871:1006;;;-1:-1:-1;6891:18:66;;6887:149;;4499:22:72;;;6990:35:66;;;;;:23;;;;;;:35;;7014:10;;6990:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6887:149;5705:1337;;5617:1425;;:::o;9552:628:63:-;9668:19;;;3989:2;9775:29;;9767:59;;;;-1:-1:-1;;;9767:59:63;;27856:2:168;9767:59:63;;;27838:21:168;27895:2;27875:18;;;27868:30;27934:19;27914:18;;;27907:47;27971:18;;9767:59:63;27654:341:168;9767:59:63;-1:-1:-1;;9994:29:63;;;10087:2;10066:24;;10053:38;10049:2;10045:47;;10159:2;10138:24;10125:38;10120:3;10116:48;;-1:-1:-1;9552:628:63;-1:-1:-1;9552:628:63:o;4128:206:72:-;4308:8;4302:15;4295:4;4285:8;4281:19;4274:44;3461:192:69;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3615:31:69;;;3989:2:63;3615:31:69;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3594:18:69;;;:52;:18;3461:192::o;4063:696::-;4273:19;;4243:27;4326:44;4349:5;4356:6;;4273:19;4326:22;:44::i;:::-;4303:67;-1:-1:-1;4381:19:69;;4419:103;4451:5;4303:67;4497:15;;;;:5;:15;:::i;:::-;4419:18;:103::i;:::-;4380:142;;;;4533:118;4584:11;4609:5;4628;:13;;;4533:14;:18;;;:37;;:118;;;;;;:::i;:::-;4661:28;;;:20;;;:28;4725:27;:5;4684;4725:20;:27::i;:::-;4699:53;;:23;;;;:53;;;;-1:-1:-1;;;;;;;4063:696:69:o;1613:217:67:-;1669:6;1725:16;1708:5;:34;;1687:106;;;;-1:-1:-1;;;1687:106:67;;28787:2:168;1687:106:67;;;28769:21:168;28826:2;28806:18;;;28799:30;28865:27;28845:18;;;28838:55;28910:18;;1687:106:67;28585:349:168;1687:106:67;-1:-1:-1;1817:5:67;1613:217::o;1279:158::-;1335:7;1371:1;1362:5;:10;;1354:45;;;;-1:-1:-1;;;1354:45:67;;29141:2:168;1354:45:67;;;29123:21:168;29180:2;29160:18;;;29153:30;29219:24;29199:18;;;29192:52;29261:18;;1354:45:67;28939:346:168;18723:503:56;18871:9;18866:354;18886:20;;;18866:354;;;18927:23;;18953:9;;18963:1;18953:12;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;18927:38;;;;18985:14;19003:32;:8;;:30;:32::i;:::-;18980:55;;;;19125:15;19115:7;:25;;;19107:61;;;;-1:-1:-1;;;19107:61:56;;29492:2:168;19107:61:56;;;29474:21:168;29531:2;29511:18;;;29504:30;29570:25;29550:18;;;29543:53;29613:18;;19107:61:56;29290:347:168;19107:61:56;19208:1;19183:12;19196:8;;19183:22;;;;;;;:::i;:::-;;;;;;;;;;;;;;:26;-1:-1:-1;18908:3:56;;-1:-1:-1;18908:3:56;;-1:-1:-1;18908:3:56;;:::i;:::-;;;;18866:354;;539:1263:62;602:14;619:18;;;;:11;:18;:::i;:::-;602:35;-1:-1:-1;663:17:62;;;;690:23;647:13;716:20;;;;663:11;716:20;:::i;:::-;690:46;;;;1308:4;1302:11;1375:15;1358;1339:17;1326:65;1638:1;1615;1578:15;1539:17;1512:5;1484:6;1457:5;1431:226;1404:382;;1711:16;1708:1;1705;1690:38;1755:16;1752:1;1745:27;1404:382;;1263:533;;;;539:1263;:::o;2041:905::-;2133:13;2162:23;2133:13;2188:20;;;;:11;:20;:::i;:::-;2162:46;;-1:-1:-1;2162:46:62;-1:-1:-1;2241:1:62;2222:20;;2218:722;;2900:15;2887:29;2877:39;;2218:722;2152:794;;2041:905;;;:::o;13792:3753:56:-;14100:19;;14153:18;;;;14244:13;;;;14261:15;14244:32;;;;;;14236:64;;;;-1:-1:-1;;;14236:64:56;;29844:2:168;14236:64:56;;;29826:21:168;29883:2;29863:18;;;29856:30;29922:21;29902:18;;;29895:49;29961:18;;14236:64:56;29642:343:168;14236:64:56;15061:15;;;;:29;;15081:8;15061:19;:29::i;:::-;15026:16;;;;:31;;15047:9;15026:20;:31::i;:::-;:64;;15005:142;;;;-1:-1:-1;;;15005:142:56;;30192:2:168;15005:142:56;;;30174:21:168;30231:2;30211:18;;;30204:30;30270:33;30250:18;;;30243:61;30321:18;;15005:142:56;29990:355:168;15005:142:56;15158:26;15194:25;15229;15264:27;15320:19;15306:5;:10;;;:33;15302:1474;;15359:5;:23;;;15355:371;;;15423:14;15402:35;;15475:107;15544:5;:16;;;15475:39;15495:18;15475:5;:15;;;:19;;:39;;;;:::i;:::-;:43;;:107::i;:::-;15455:127;;15355:371;;;15642:5;:16;;;15621:37;;15696:5;:15;;;15676:35;;15355:371;15760:81;15819:8;15760:33;:18;15783:9;15760:22;:33::i;:::-;:41;;:81::i;:::-;15740:101;;15878:76;15922:18;15878:12;15891:8;15878:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:26;:76::i;:::-;15856:98;;16016:5;:16;;;15993:19;:39;;15968:116;;;;-1:-1:-1;;;15968:116:56;;21286:2:168;15968:116:56;;;21268:21:168;21325:2;21305:18;;;21298:30;21364:20;21344:18;;;21337:48;21402:18;;15968:116:56;21084:342:168;15968:116:56;15302:1474;;;16119:5;:23;;;16115:358;;;16182:14;16162:34;;16234:97;16298:5;:15;;;16234:38;16254:17;16234:5;:15;;;:19;;:38;;;;:::i;:97::-;16214:117;;16115:358;;;16390:5;:15;;;16370:35;;16443:5;:15;;;16423:35;;16115:358;16508:46;16544:9;16508:31;:17;16530:8;16508:21;:31::i;:46::-;16487:67;;16591:45;16618:17;16591:12;16604:8;16591:22;;;;;;:::i;:45::-;16569:67;;16698:5;:15;;;16675:19;:38;;16650:115;;;;-1:-1:-1;;;16650:115:56;;21286:2:168;16650:115:56;;;21268:21:168;21325:2;21305:18;;;21298:30;21364:20;21344:18;;;21337:48;21402:18;;16650:115:56;21084:342:168;16650:115:56;16807:41;:18;16830:17;16807:22;:41::i;:::-;16786:62;;16883:19;16858:12;16871:8;16858:22;;;;;;:::i;:::-;;;;;;;;;;;;;:44;;;;16937:14;:20;;;16918:222;;;16971:5;:15;;;17000:5;:14;;;17028:18;17060:17;17091;17122:8;16918:222;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;17172:20:56;;;;;17151:41;;;;;;17221:15;;17202:34;;:16;;;;:34;;;;17246:17;;;:38;;;;17315:22;;;;17294:18;;;;:43;17370:23;;;;17348:45;;;;17423:14;;;;17403:34;;;:17;;;:34;;;;17447:18;;;:38;;;;17517:21;;;17495:19;;:43;-1:-1:-1;;;;13792:3753:56:o;447:807:64:-;722:4;716:11;578:23;740:36;;;864:42;856:51;;836:1;813:25;;789:132;964:2;941:26;;934:41;;;578:23;559:16;;1040:2;716:11;559:16;1011:5;1004;999:50;989:176;;1090:16;1087:1;1084;1069:38;1134:16;1131:1;1124:27;989:176;;1193:28;1215:5;1193:21;:28::i;:::-;1185:62;;;;-1:-1:-1;;;1185:62:64;;30552:2:168;1185:62:64;;;30534:21:168;30591:2;30571:18;;;30564:30;30630:23;30610:18;;;30603:51;30671:18;;1185:62:64;30350:345:168;1128:759:65;1279:32;1341:6;;1348:20;;1341:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;1323:46;;;;1396:6;;1403:19;;;;1396:27;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;1379:44;;:14;;;:44;1450:14;;;;;;;;:::i;:::-;1433:31;;:14;;;:31;1493:16;;;;;1474;;;:35;1537:15;;;;;1519;;;:33;1578:13;;;;;;;;:::i;:::-;1562:29;;:13;;;:29;1617:13;;;;;1601;;;:29;1658:15;;;;;1640;;;:33;1855:25;1868:11;;;;1855:12;:25::i;:::-;1794:21;;;1683:197;;;;1758:22;;;1683:197;;;;;;;1721:23;;;1683:197;1697:10;;;;1683:197;-1:-1:-1;1683:197:65;1128:759;-1:-1:-1;;;1128:759:65:o;5268:754:69:-;5434:14:63;;;5473:16;;5520:9;5502:28;;5578:3;5557:25;;5595:23;;6176:4;6170:11;6220:10;6194:37;;5497:15:69;6274:1:63;6251:25;;6244:50;6337:2;6314:26;;6307:46;;;;6410:2;6381:32;;-1:-1:-1;;5527:13:69;:30;;;;;;;;:::i;:::-;;5523:493;;5581:43;5601:11;5614:9;;5581:19;:43::i;:::-;5573:51;;5523:493;;;5662:14;5645:13;:31;;;;;;;;:::i;:::-;;5641:375;;5700:44;5721:11;5734:9;;5700:20;:44::i;5641:375::-;5782:14;5765:13;:31;;;;;;;;:::i;:::-;;5761:255;;5820:44;5841:11;5854:9;;5820:20;:44::i;5761:255::-;5950:55;5967:11;5980:9;;5991:5;:13;;;5950:16;:55::i;:::-;5942:63;;5761:255;5268:754;;;;;;;:::o;7069:1736:63:-;3989:2;7242:8;:15;:29;7234:67;;;;-1:-1:-1;;;7234:67:63;;31449:2:168;7234:67:63;;;31431:21:168;31488:2;31468:18;;;31461:30;31527:27;31507:18;;;31500:55;31572:18;;7234:67:63;31247:349:168;7234:67:63;8680:2;8666:17;;8659:34;8727:2;8713:17;;8706:32;8772:2;8758:17;;;8751:38;7069:1736::o;4269:286::-;4410:14;;;;4374:16;;4410:40;;4406:143;;-1:-1:-1;4477:5:63;4406:143;;;-1:-1:-1;;4524:14:63;;;;4269:286::o;2040:204:68:-;2098:7;2121:1;2126;2121:6;2117:20;;-1:-1:-1;2136:1:68;2129:8;;2117:20;2147:9;2159:5;2163:1;2159;:5;:::i;:::-;2147:17;-1:-1:-1;2191:1:68;2182:5;2186:1;2147:17;2182:5;:::i;:::-;:10;2174:45;;;;-1:-1:-1;;;2174:45:68;;32117:2:168;2174:45:68;;;32099:21:168;32156:2;32136:18;;;32129:30;32195:24;32175:18;;;32168:52;32237:18;;2174:45:68;31915:346:168;2174:45:68;2236:1;2040:204;-1:-1:-1;;;2040:204:68:o;2708:147::-;2766:7;2797:1;2793;:5;2785:41;;;;-1:-1:-1;;;2785:41:68;;32468:2:168;2785:41:68;;;32450:21:168;32507:2;32487:18;;;32480:30;32546:25;32526:18;;;32519:53;32589:18;;2785:41:68;32266:347:168;2785:41:68;2843:5;2847:1;2843;:5;:::i;3228:182::-;3290:7;3321:1;3317;:5;3309:49;;;;-1:-1:-1;;;3309:49:68;;32820:2:168;3309:49:68;;;32802:21:168;32859:2;32839:18;;;32832:30;32898:33;32878:18;;;32871:61;32949:18;;3309:49:68;32618:355:168;3309:49:68;3384:5;3388:1;3384;:5;:::i;:::-;:10;:18;;3401:1;3384:18;;;3397:1;3384:18;3375:28;;:5;3379:1;3375;:5;:::i;:::-;:28;;;;:::i;1192:175::-;1250:7;;1281:5;1285:1;1281;:5;:::i;:::-;1269:17;;1309:1;1304;:6;;1296:46;;;;-1:-1:-1;;;1296:46:68;;33427:2:168;1296:46:68;;;33409:21:168;33466:2;33446:18;;;33439:30;33505:29;33485:18;;;33478:57;33552:18;;1296:46:68;33225:351:168;2578:2906:64;2669:12;3841:253;;;-1:-1:-1;;;3910:4:64;3903:32;3965:4;3959;3952:18;4000:6;3994:4;3987:20;;4037:7;4031:4;4024:21;4075:4;4069;4062:18;3841:253;4115:16;4203:513;;;;4806:2;4801:558;;;;5398:56;5420:33;5416:2;5398:56;:::i;:::-;4108:1360;;4203:513;4579:5;4567:18;4557:115;;4609:45;4631:22;4627:2;4609:45;:::i;:::-;4701:1;4690:12;;4203:513;;4801:558;4848:16;4845:1;4842;4827:38;5341:1;5335:8;5328:16;5321:24;5310:35;;4108:1360;;2578:2906;;;:::o;4234:1202:65:-;4331:12;4357:22;4393:24;4431:23;4468:32;4529:5;4537:4;4529:12;4545:1;4529:17;4525:130;;4569:19;4562:26;;4525:130;;;4626:18;4619:25;;4525:130;4692:4;4684:12;;:17;;;-1:-1:-1;4723:4:65;4715:12;;4700:1;4715:17;4711:265;;4767:23;4748:42;;4711:265;;;4811:5;4819:4;4811:12;4827:1;4811:17;4807:169;;4863:26;4844:45;;4807:169;;;4939:26;4920:45;;4807:169;4989:5;4997:4;4989:12;5005:1;4989:17;4985:164;;5040:23;5022:41;;4985:164;;;5112:26;5094:44;;4985:164;5427:1;5418:5;:10;;5399:30;;;;;;;;:::i;:::-;5383:46;;4234:1202;;;;;;;:::o;8047:211:69:-;8175:13;8208:43;8221:11;8234:16;;8208:12;:43::i;:::-;8200:51;8047:211;-1:-1:-1;;;;8047:211:69:o;8904:564::-;9322:65;;33823:66:168;9322:65:69;;;33811:79:168;33906:12;;;33899:28;;;9033:13:69;;;;33943:12:168;;9322:65:69;;;;;;;;;;;;9299:98;;;;;;9275:122;;9416:45;9429:13;9444:16;;9416:12;:45::i;:::-;9408:53;8904:564;-1:-1:-1;;;;;8904:564:69:o;10167:864::-;10576:37;;10572:2;10568:46;10782:24;10296:13;10809:21;:16;10826:2;10809:16;10589:23;10809:21;:::i;:::-;10862:63;;10945:22;10862:63;;;10782:48;;-1:-1:-1;10782:48:69;;-1:-1:-1;10862:39:69;;;;353:10:59;;10862:63:69;;10902:11;;10782:48;;;;10862:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:105;;;10841:183;;;;-1:-1:-1;;;10841:183:69;;35165:2:168;10841:183:69;;;35147:21:168;35204:2;35184:18;;;35177:30;35243:33;35223:18;;;35216:61;35294:18;;10841:183:69;34963:355:168;10841:183:69;10311:720;;10167:864;;;;;:::o;11441:811::-;11590:13;11650:2;11623:29;;11615:70;;;;-1:-1:-1;;;11615:70:69;;35525:2:168;11615:70:69;;;35507:21:168;35564:2;35544:18;;;35537:30;35603;35583:18;;;35576:58;35651:18;;11615:70:69;35323:352:168;11615:70:69;-1:-1:-1;12029:31:69;;;3989:2:63;12029:31:69;;;11943:2;12029:31;;;;;;11947:37;;11939:46;;;;12005:21;;12029:31;;;;;;;;;;;-1:-1:-1;;12005:55:69;-1:-1:-1;12070:56:69;12005:55;12098:11;12111:5;12118:7;12070:27;:56::i;:::-;1434:39;1426:48;;12158:12;12171:8;12158:22;;;;;;:::i;:::-;;;;;;;;;;;;;;:36;12137:108;;;;-1:-1:-1;;;12137:108:69;;35882:2:168;12137:108:69;;;35864:21:168;35921:2;35901:18;;;35894:30;35960:27;35940:18;;;35933:55;36005:18;;12137:108:69;35680:349:168;12137:108:69;11605:647;11441:811;;;;;;:::o;6447:955::-;6566:14;4890:2;6617:49;;6596:127;;;;-1:-1:-1;;;6596:127:69;;36236:2:168;6596:127:69;;;36218:21:168;36275:2;36255:18;;;36248:30;36314:33;36294:18;;;36287:61;36365:18;;6596:127:69;36034:355:168;6596:127:69;7262:2;7296:27;;6734:9;7296:27;;7142:2;7296:27;;;;;;36621:25:168;;;7233:32:69;;;7220:46;7215:3;7211:56;36662:18:168;;;36655:45;;;6993:37:69;;36716:18:168;;;36709:34;;;7113:32:69;;;7100:46;36759:18:168;;;36752:34;;;6993:37:69;;7100:46;;7296:27;;36593:19:168;;7296:27:69;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7296:27:69;;;;;;-1:-1:-1;;7341:20:69;;;7333:62;;;;-1:-1:-1;;;7333:62:69;;36999:2:168;7333:62:69;;;36981:21:168;37038:2;37018:18;;;37011:30;37077:31;37057:18;;;37050:59;37126:18;;7333:62:69;36797:353:168;7333:62:69;6586:816;;;6447:955;;;;;:::o;14:375:168:-;85:8;95:6;149:3;142:4;134:6;130:17;126:27;116:55;;167:1;164;157:12;116:55;-1:-1:-1;190:20:168;;233:18;222:30;;219:50;;;265:1;262;255:12;219:50;302:4;294:6;290:17;278:29;;362:3;355:4;345:6;342:1;338:14;330:6;326:27;322:38;319:47;316:67;;;379:1;376;369:12;316:67;14:375;;;;;:::o;394:1465::-;677:6;685;693;701;709;717;725;778:3;766:9;757:7;753:23;749:33;746:53;;;795:1;792;785:12;746:53;835:9;822:23;864:18;905:2;897:6;894:14;891:34;;;921:1;918;911:12;891:34;960:78;1030:7;1021:6;1010:9;1006:22;960:78;:::i;:::-;1057:8;;-1:-1:-1;934:104:168;-1:-1:-1;1145:2:168;1130:18;;1117:32;;-1:-1:-1;1161:16:168;;;1158:36;;;1190:1;1187;1180:12;1158:36;1229:80;1301:7;1290:8;1279:9;1275:24;1229:80;:::i;:::-;1328:8;;-1:-1:-1;1203:106:168;-1:-1:-1;1416:2:168;1401:18;;1388:32;;-1:-1:-1;1432:16:168;;;1429:36;;;1461:1;1458;1451:12;1429:36;1500:80;1572:7;1561:8;1550:9;1546:24;1500:80;:::i;:::-;1599:8;;-1:-1:-1;1474:106:168;-1:-1:-1;1687:2:168;1672:18;;1659:32;;-1:-1:-1;1703:16:168;;;1700:36;;;1732:1;1729;1722:12;1700:36;-1:-1:-1;1755:24:168;;1802:2;1794:11;;1791:24;-1:-1:-1;1788:44:168;;;1828:1;1825;1818:12;1788:44;1851:2;1841:12;;;394:1465;;;;;;;;;;:::o;1864:347::-;1915:8;1925:6;1979:3;1972:4;1964:6;1960:17;1956:27;1946:55;;1997:1;1994;1987:12;1946:55;-1:-1:-1;2020:20:168;;2063:18;2052:30;;2049:50;;;2095:1;2092;2085:12;2049:50;2132:4;2124:6;2120:17;2108:29;;2184:3;2177:4;2168:6;2160;2156:19;2152:30;2149:39;2146:59;;;2201:1;2198;2191:12;2216:409;2286:6;2294;2347:2;2335:9;2326:7;2322:23;2318:32;2315:52;;;2363:1;2360;2353:12;2315:52;2403:9;2390:23;2436:18;2428:6;2425:30;2422:50;;;2468:1;2465;2458:12;2422:50;2507:58;2557:7;2548:6;2537:9;2533:22;2507:58;:::i;:::-;2584:8;;2481:84;;-1:-1:-1;2216:409:168;-1:-1:-1;;;;2216:409:168:o;2889:184::-;2941:77;2938:1;2931:88;3038:4;3035:1;3028:15;3062:4;3059:1;3052:15;3078:334;3149:2;3143:9;3205:2;3195:13;;3210:66;3191:86;3179:99;;3308:18;3293:34;;3329:22;;;3290:62;3287:88;;;3355:18;;:::i;:::-;3391:2;3384:22;3078:334;;-1:-1:-1;3078:334:168:o;3417:589::-;3459:5;3512:3;3505:4;3497:6;3493:17;3489:27;3479:55;;3530:1;3527;3520:12;3479:55;3566:6;3553:20;3592:18;3588:2;3585:26;3582:52;;;3614:18;;:::i;:::-;3658:114;3766:4;3697:66;3690:4;3686:2;3682:13;3678:86;3674:97;3658:114;:::i;:::-;3797:2;3788:7;3781:19;3843:3;3836:4;3831:2;3823:6;3819:15;3815:26;3812:35;3809:55;;;3860:1;3857;3850:12;3809:55;3925:2;3918:4;3910:6;3906:17;3899:4;3890:7;3886:18;3873:55;3973:1;3948:16;;;3966:4;3944:27;3937:38;;;;3952:7;3417:589;-1:-1:-1;;;3417:589:168:o;4011:320::-;4079:6;4132:2;4120:9;4111:7;4107:23;4103:32;4100:52;;;4148:1;4145;4138:12;4100:52;4188:9;4175:23;4221:18;4213:6;4210:30;4207:50;;;4253:1;4250;4243:12;4207:50;4276:49;4317:7;4308:6;4297:9;4293:22;4276:49;:::i;4518:154::-;4604:42;4597:5;4593:54;4586:5;4583:65;4573:93;;4662:1;4659;4652:12;4573:93;4518:154;:::o;4677:455::-;4754:6;4762;4815:2;4803:9;4794:7;4790:23;4786:32;4783:52;;;4831:1;4828;4821:12;4783:52;4870:9;4857:23;4889:31;4914:5;4889:31;:::i;:::-;4939:5;-1:-1:-1;4995:2:168;4980:18;;4967:32;5022:18;5011:30;;5008:50;;;5054:1;5051;5044:12;5008:50;5077:49;5118:7;5109:6;5098:9;5094:22;5077:49;:::i;:::-;5067:59;;;4677:455;;;;;:::o;5137:250::-;5222:1;5232:113;5246:6;5243:1;5240:13;5232:113;;;5322:11;;;5316:18;5303:11;;;5296:39;5268:2;5261:10;5232:113;;;-1:-1:-1;;5379:1:168;5361:16;;5354:27;5137:250::o;5392:329::-;5433:3;5471:5;5465:12;5498:6;5493:3;5486:19;5514:76;5583:6;5576:4;5571:3;5567:14;5560:4;5553:5;5549:16;5514:76;:::i;:::-;5635:2;5623:15;5640:66;5619:88;5610:98;;;;5710:4;5606:109;;5392:329;-1:-1:-1;;5392:329:168:o;5726:217::-;5873:2;5862:9;5855:21;5836:4;5893:44;5933:2;5922:9;5918:18;5910:6;5893:44;:::i;5948:248::-;6016:6;6024;6077:2;6065:9;6056:7;6052:23;6048:32;6045:52;;;6093:1;6090;6083:12;6045:52;-1:-1:-1;;6116:23:168;;;6186:2;6171:18;;;6158:32;;-1:-1:-1;5948:248:168:o;6201:1100::-;6405:6;6413;6421;6429;6437;6490:2;6478:9;6469:7;6465:23;6461:32;6458:52;;;6506:1;6503;6496:12;6458:52;6546:9;6533:23;6575:18;6616:2;6608:6;6605:14;6602:34;;;6632:1;6629;6622:12;6602:34;6671:78;6741:7;6732:6;6721:9;6717:22;6671:78;:::i;:::-;6768:8;;-1:-1:-1;6645:104:168;-1:-1:-1;6856:2:168;6841:18;;6828:32;;-1:-1:-1;6872:16:168;;;6869:36;;;6901:1;6898;6891:12;6869:36;6940:80;7012:7;7001:8;6990:9;6986:24;6940:80;:::i;:::-;7039:8;;-1:-1:-1;6914:106:168;-1:-1:-1;7127:2:168;7112:18;;7099:32;;-1:-1:-1;7143:16:168;;;7140:36;;;7172:1;7169;7162:12;7140:36;-1:-1:-1;7195:24:168;;7253:3;7235:16;;;7231:26;7228:46;;;7270:1;7267;7260:12;7228:46;7293:2;7283:12;;;6201:1100;;;;;;;;:::o;7563:456::-;7660:6;7668;7721:2;7709:9;7700:7;7696:23;7692:32;7689:52;;;7737:1;7734;7727:12;7689:52;7777:9;7764:23;7810:18;7802:6;7799:30;7796:50;;;7842:1;7839;7832:12;7796:50;7881:78;7951:7;7942:6;7931:9;7927:22;7881:78;:::i;8024:118::-;8110:5;8103:13;8096:21;8089:5;8086:32;8076:60;;8132:1;8129;8122:12;8147:538;8223:6;8231;8239;8292:2;8280:9;8271:7;8267:23;8263:32;8260:52;;;8308:1;8305;8298:12;8260:52;8348:9;8335:23;8381:18;8373:6;8370:30;8367:50;;;8413:1;8410;8403:12;8367:50;8452:58;8502:7;8493:6;8482:9;8478:22;8452:58;:::i;:::-;8529:8;;-1:-1:-1;8426:84:168;-1:-1:-1;;8614:2:168;8599:18;;8586:32;8627:28;8586:32;8627:28;:::i;:::-;8674:5;8664:15;;;8147:538;;;;;:::o;9710:245::-;9777:6;9830:2;9818:9;9809:7;9805:23;9801:32;9798:52;;;9846:1;9843;9836:12;9798:52;9878:9;9872:16;9897:28;9919:5;9897:28;:::i;10307:184::-;10359:77;10356:1;10349:88;10456:4;10453:1;10446:15;10480:4;10477:1;10470:15;10496:629;10614:4;10620:6;10680:11;10667:25;10770:66;10759:8;10743:14;10739:29;10735:102;10715:18;10711:127;10701:155;;10852:1;10849;10842:12;10701:155;10879:33;;10931:20;;;-1:-1:-1;10974:18:168;10963:30;;10960:50;;;11006:1;11003;10996:12;10960:50;11039:4;11027:17;;-1:-1:-1;11090:1:168;11086:14;;;11070;11066:35;11056:46;;11053:66;;;11115:1;11112;11105:12;11471:696;11688:2;11740:21;;;11810:13;;11713:18;;;11832:22;;;11659:4;;11688:2;11911:15;;;;11885:2;11870:18;;;11659:4;11954:187;11968:6;11965:1;11962:13;11954:187;;;12017:42;12055:3;12046:6;12040:13;11198:42;11279:2;11271:5;11265:12;11261:21;11256:3;11249:34;11344:2;11336:4;11329:5;11325:16;11319:23;11315:32;11308:4;11303:3;11299:14;11292:56;;11397:4;11390:5;11386:16;11380:23;11373:4;11368:3;11364:14;11357:47;11453:4;11446:5;11442:16;11436:23;11429:4;11424:3;11420:14;11413:47;11130:336;;;12017:42;12116:15;;;;12088:4;12079:14;;;;;11990:1;11983:9;11954:187;;;-1:-1:-1;12158:3:168;;11471:696;-1:-1:-1;;;;;;11471:696:168:o;12532:271::-;12715:6;12707;12702:3;12689:33;12671:3;12741:16;;12766:13;;;12741:16;12532:271;-1:-1:-1;12532:271:168:o;12808:325::-;12896:6;12891:3;12884:19;12948:6;12941:5;12934:4;12929:3;12925:14;12912:43;;13000:1;12993:4;12984:6;12979:3;12975:16;12971:27;12964:38;12866:3;13122:4;13052:66;13047:2;13039:6;13035:15;13031:88;13026:3;13022:98;13018:109;13011:116;;12808:325;;;;:::o;13138:244::-;13295:2;13284:9;13277:21;13258:4;13315:61;13372:2;13361:9;13357:18;13349:6;13341;13315:61;:::i;13387:287::-;13516:3;13554:6;13548:13;13570:66;13629:6;13624:3;13617:4;13609:6;13605:17;13570:66;:::i;:::-;13652:16;;;;;13387:287;-1:-1:-1;;13387:287:168:o;13679:400::-;13830:3;13868:6;13862:13;13884:66;13943:6;13938:3;13931:4;13923:6;13919:17;13884:66;:::i;:::-;14027:14;;14020:22;14015:3;14011:32;13972:16;;;;13997:47;;;14071:1;14060:13;;13679:400;-1:-1:-1;;13679:400:168:o;14084:184::-;14136:77;14133:1;14126:88;14233:4;14230:1;14223:15;14257:4;14254:1;14247:15;14273:168;14346:9;;;14377;;14394:15;;;14388:22;;14374:37;14364:71;;14415:18;;:::i;14446:195::-;14485:3;14516:66;14509:5;14506:77;14503:103;;14586:18;;:::i;:::-;-1:-1:-1;14633:1:168;14622:13;;14446:195::o;14994:191::-;15029:3;15060:66;15053:5;15050:77;15047:103;;15130:18;;:::i;:::-;-1:-1:-1;15170:1:168;15166:13;;14994:191::o;15539:184::-;15591:77;15588:1;15581:88;15688:4;15685:1;15678:15;15712:4;15709:1;15702:15;15728:553;15836:6;15831:3;15824:19;15806:3;15862:4;15891:2;15886:3;15882:12;15875:19;;15917:5;15940:1;15950:306;15964:6;15961:1;15958:13;15950:306;;;16041:6;16028:20;16061:33;16086:7;16061:33;:::i;:::-;16132:42;16119:56;16107:69;;16196:12;;;;16231:15;;;;15986:1;15979:9;15950:306;;;-1:-1:-1;16272:3:168;;15728:553;-1:-1:-1;;;;;15728:553:168:o;16669:434::-;16721:3;16759:5;16753:12;16786:6;16781:3;16774:19;16812:4;16841:2;16836:3;16832:12;16825:19;;16878:2;16871:5;16867:14;16899:1;16909:169;16923:6;16920:1;16917:13;16909:169;;;16984:13;;16972:26;;17018:12;;;;17053:15;;;;16945:1;16938:9;16909:169;;17207:2932;17838:4;17886:3;17875:9;17871:19;17920:1;17912:6;17909:13;17899:47;;17926:18;;:::i;:::-;17955:25;;;18016:3;18011:2;17996:18;;17989:31;18055:22;;;18108:3;18158:1;18154:14;;;18139:30;;18135:40;;;18093:19;;18198:6;-1:-1:-1;18232:1442:168;18246:6;18243:1;18240:13;18232:1442;;;18335:66;18323:9;18315:6;18311:22;18307:95;18302:3;18295:108;18455:6;18442:20;18542:66;18533:6;18517:14;18513:27;18509:100;18489:18;18485:125;18475:153;;18624:1;18621;18614:12;18475:153;18678:6;18658:18;18654:31;18641:44;;18726:5;18713:19;18705:6;18698:35;18794:2;18787:5;18783:14;18770:28;18765:2;18757:6;18753:15;18746:53;18862:4;18855:5;18851:16;18838:30;18831:4;18823:6;18819:17;18812:57;18932:4;18925:5;18921:16;18908:30;18901:4;18893:6;18889:17;18882:57;19004:4;18997:5;18993:16;18980:30;19091:66;19083:5;19067:14;19063:26;19059:99;19037:20;19033:126;19023:154;;19173:1;19170;19163:12;19023:154;19205:32;19326:2;19313:16;;;19264:21;19356:18;19345:30;;19342:50;;;19388:1;19385;19378:12;19342:50;19441:6;19425:14;19421:27;19412:7;19408:41;19405:61;;;19462:1;19459;19452:12;19405:61;19505:4;19498;19490:6;19486:17;19479:31;19533:61;19588:4;19580:6;19576:17;19568:6;19559:7;19533:61;:::i;:::-;19523:71;-1:-1:-1;;;19629:2:168;19652:12;;;;19617:15;;;;;18268:1;18261:9;18232:1442;;;18236:3;;;19724:9;19716:6;19712:22;19705:4;19694:9;19690:20;19683:52;19758:69;19820:6;19812;19804;19758:69;:::i;:::-;19744:83;;19836:62;19892:4;19881:9;19877:20;19869:6;16364:42;16445:2;16437:5;16431:12;16427:21;16422:3;16415:34;16512:4;16505:5;16501:16;16495:23;16488:31;16481:39;16474:4;16469:3;16465:14;16458:63;16582:2;16574:4;16567:5;16563:16;16557:23;16553:32;16546:4;16541:3;16537:14;16530:56;;16649:4;16642:5;16638:16;16632:23;16625:31;16618:39;16611:4;16606:3;16602:14;16595:63;16286:378;;;19836:62;19947:9;19939:6;19935:22;19929:3;19918:9;19914:19;19907:51;19975:43;20011:6;20003;19975:43;:::i;:::-;19967:51;;;20027:46;20068:3;20057:9;20053:19;20045:6;17184:10;17173:22;17161:35;;17108:94;20027:46;11265:12;;11198:42;11261:21;;;20128:3;20113:19;;11249:34;11336:4;11325:16;;11319:23;11315:32;11299:14;;;11292:56;11397:4;11386:16;;11380:23;11364:14;;;11357:47;11453:4;11442:16;;11436:23;11420:14;;;11413:47;17207:2932;;;;;;;;;;;;:::o;20144:935::-;20238:6;20269:2;20312;20300:9;20291:7;20287:23;20283:32;20280:52;;;20328:1;20325;20318:12;20280:52;20361:9;20355:16;20390:18;20431:2;20423:6;20420:14;20417:34;;;20447:1;20444;20437:12;20417:34;20485:6;20474:9;20470:22;20460:32;;20530:7;20523:4;20519:2;20515:13;20511:27;20501:55;;20552:1;20549;20542:12;20501:55;20581:2;20575:9;20603:2;20599;20596:10;20593:36;;;20609:18;;:::i;:::-;20655:2;20652:1;20648:10;20638:20;;20678:28;20702:2;20698;20694:11;20678:28;:::i;:::-;20740:15;;;20810:11;;;20806:20;;;20771:12;;;;20838:19;;;20835:39;;;20870:1;20867;20860:12;20835:39;20894:11;;;;20914:135;20930:6;20925:3;20922:15;20914:135;;;20996:10;;20984:23;;20947:12;;;;21027;;;;20914:135;;;21068:5;20144:935;-1:-1:-1;;;;;;;;20144:935:168:o;22150:683::-;22428:4;22457:42;22538:2;22530:6;22526:15;22515:9;22508:34;22590:2;22582:6;22578:15;22573:2;22562:9;22558:18;22551:43;;22630:6;22625:2;22614:9;22610:18;22603:34;22673:6;22668:2;22657:9;22653:18;22646:34;22717:6;22711:3;22700:9;22696:19;22689:35;22761:3;22755;22744:9;22740:19;22733:32;22782:45;22822:3;22811:9;22807:19;22799:6;22782:45;:::i;23546:325::-;23725:2;23714:9;23707:21;23688:4;23745:61;23802:2;23791:9;23787:18;23779:6;23771;23745:61;:::i;:::-;23737:69;;23856:6;23849:14;23842:22;23837:2;23826:9;23822:18;23815:50;23546:325;;;;;;:::o;23876:337::-;24063:42;24055:6;24051:55;24040:9;24033:74;24143:2;24138;24127:9;24123:18;24116:30;24014:4;24163:44;24203:2;24192:9;24188:18;24180:6;24163:44;:::i;24218:128::-;24285:9;;;24306:11;;;24303:37;;;24320:18;;:::i;24351:381::-;24442:4;24500:11;24487:25;24590:66;24579:8;24563:14;24559:29;24555:102;24535:18;24531:127;24521:155;;24672:1;24669;24662:12;24737:247;24796:6;24849:2;24837:9;24828:7;24824:23;24820:32;24817:52;;;24865:1;24862;24855:12;24817:52;24904:9;24891:23;24923:31;24948:5;24923:31;:::i;25669:381::-;25760:4;25818:11;25805:25;25908:66;25897:8;25881:14;25877:29;25873:102;25853:18;25849:127;25839:155;;25990:1;25987;25980:12;26414:1235;26649:2;26701:21;;;26771:13;;26674:18;;;26793:22;;;26620:4;;26649:2;26834;;26852:18;;;;26893:15;;;26620:4;26936:687;26950:6;26947:1;26944:13;26936:687;;;27015:6;27009:13;27051:2;27045:9;27084:1;27080:2;27077:9;27067:43;;27090:18;;:::i;:::-;27123:15;;27177:11;;;27171:18;27212:42;27288:21;;;27274:12;;;27267:43;27350:11;;;27344:18;27330:12;;;27323:40;27386:4;27434:11;;;27428:18;27424:27;;27410:12;;;27403:49;27475:4;27523:11;;;27517:18;27513:27;27499:12;;;27492:49;27570:4;27561:14;;;;27598:15;;;;26972:1;26965:9;26936:687;;;-1:-1:-1;27640:3:168;;26414:1235;-1:-1:-1;;;;;;;26414:1235:168:o;28000:580::-;28077:4;28083:6;28143:11;28130:25;28233:66;28222:8;28206:14;28202:29;28198:102;28178:18;28174:127;28164:155;;28315:1;28312;28305:12;28164:155;28342:33;;28394:20;;;-1:-1:-1;28437:18:168;28426:30;;28423:50;;;28469:1;28466;28459:12;28423:50;28502:4;28490:17;;-1:-1:-1;28533:14:168;28529:27;;;28519:38;;28516:58;;;28570:1;28567;28560:12;30966:276;31024:6;31077:2;31065:9;31056:7;31052:23;31048:32;31045:52;;;31093:1;31090;31083:12;31045:52;31132:9;31119:23;31182:10;31175:5;31171:22;31164:5;31161:33;31151:61;;31208:1;31205;31198:12;31601:184;31653:77;31650:1;31643:88;31750:4;31747:1;31740:15;31774:4;31771:1;31764:15;31790:120;31830:1;31856;31846:35;;31861:18;;:::i;:::-;-1:-1:-1;31895:9:168;;31790:120::o;32978:112::-;33010:1;33036;33026:35;;33041:18;;:::i;:::-;-1:-1:-1;33075:9:168;;32978:112::o;33095:125::-;33160:9;;;33181:10;;;33178:36;;;33194:18;;:::i;33966:331::-;34071:9;34082;34124:8;34112:10;34109:24;34106:44;;;34146:1;34143;34136:12;34106:44;34175:6;34165:8;34162:20;34159:40;;;34195:1;34192;34185:12;34159:40;-1:-1:-1;;34221:23:168;;;34266:25;;;;;-1:-1:-1;33966:331:168:o;34302:315::-;34487:6;34476:9;34469:25;34530:2;34525;34514:9;34510:18;34503:30;34450:4;34550:61;34607:2;34596:9;34592:18;34584:6;34576;34550:61;:::i;34622:336::-;34691:6;34744:2;34732:9;34723:7;34719:23;34715:32;34712:52;;;34760:1;34757;34750:12;34712:52;34792:9;34786:16;34842:66;34835:5;34831:78;34824:5;34821:89;34811:117;;34924:1;34921;34914:12", - "linkReferences": {}, - "immutableReferences": { - "15688": [ - { - "start": 332, - "length": 32 - }, - { - "start": 1065, - "length": 32 - }, - { - "start": 2340, - "length": 32 - } - ], - "15692": [ - { - "start": 893, - "length": 32 - }, - { - "start": 1531, - "length": 32 - } - ], - "15696": [ - { - "start": 605, - "length": 32 - }, - { - "start": 1380, - "length": 32 - }, - { - "start": 3440, - "length": 32 - }, - { - "start": 5287, - "length": 32 - } - ], - "18277": [ - { - "start": 809, - "length": 32 - }, - { - "start": 9464, - "length": 32 - } - ] - } - }, - "methodIdentifiers": { - "authenticator()": "2335c76b", - "domainSeparator()": "f698da25", - "filledAmount(bytes)": "2479fb6e", - "freeFilledAmountStorage(bytes[])": "ed9f35ce", - "freePreSignatureStorage(bytes[])": "a2a7d51b", - "getStorageAt(uint256,uint256)": "5624b25b", - "invalidateOrder(bytes)": "15337bc0", - "preSignature(bytes)": "d08d33d1", - "setPreSignature(bytes,bool)": "ec6cb13f", - "settle(address[],uint256[],(uint256,uint256,address,uint256,uint256,uint32,bytes32,uint256,uint256,uint256,bytes)[],(address,uint256,bytes)[][3])": "13d79a0b", - "simulateDelegatecall(address,bytes)": "f84436bd", - "simulateDelegatecallInternal(address,bytes)": "43218e19", - "swap((bytes32,uint256,uint256,uint256,bytes)[],address[],(uint256,uint256,address,uint256,uint256,uint32,bytes32,uint256,uint256,uint256,bytes))": "845a101f", - "vault()": "fbfa77cf", - "vaultRelayer()": "9b552cc2" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract GPv2Authentication\",\"name\":\"authenticator_\",\"type\":\"address\"},{\"internalType\":\"contract IVault\",\"name\":\"vault_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"Interaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"orderUid\",\"type\":\"bytes\"}],\"name\":\"OrderInvalidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"orderUid\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"signed\",\"type\":\"bool\"}],\"name\":\"PreSignature\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"solver\",\"type\":\"address\"}],\"name\":\"Settlement\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"sellToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"buyToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sellAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"buyAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"orderUid\",\"type\":\"bytes\"}],\"name\":\"Trade\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"authenticator\",\"outputs\":[{\"internalType\":\"contract GPv2Authentication\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"filledAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"orderUids\",\"type\":\"bytes[]\"}],\"name\":\"freeFilledAmountStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"orderUids\",\"type\":\"bytes[]\"}],\"name\":\"freePreSignatureStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"getStorageAt\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"orderUid\",\"type\":\"bytes\"}],\"name\":\"invalidateOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"preSignature\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"orderUid\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"signed\",\"type\":\"bool\"}],\"name\":\"setPreSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"clearingPrices\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"sellTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"buyTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sellAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"buyAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"validTo\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"appData\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"flags\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct GPv2Trade.Data[]\",\"name\":\"trades\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct GPv2Interaction.Data[][3]\",\"name\":\"interactions\",\"type\":\"tuple[][3]\"}],\"name\":\"settle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"targetContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"calldataPayload\",\"type\":\"bytes\"}],\"name\":\"simulateDelegatecall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"targetContract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"calldataPayload\",\"type\":\"bytes\"}],\"name\":\"simulateDelegatecallInternal\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"assetInIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"assetOutIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"internalType\":\"struct IVault.BatchSwapStep[]\",\"name\":\"swaps\",\"type\":\"tuple[]\"},{\"internalType\":\"contract IERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"sellTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"buyTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sellAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"buyAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"validTo\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"appData\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"flags\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct GPv2Trade.Data\",\"name\":\"trade\",\"type\":\"tuple\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"contract IVault\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultRelayer\",\"outputs\":[{\"internalType\":\"contract GPv2VaultRelayer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Gnosis Developers\",\"events\":{\"Interaction(address,uint256,bytes4)\":{\"details\":\"Event emitted for each executed interaction. For gas effeciency, only the interaction calldata selector (first 4 bytes) is included in the event. For interactions without calldata or whose calldata is shorter than 4 bytes, the selector will be `0`.\"},\"OrderInvalidated(address,bytes)\":{\"details\":\"Event emitted when an order is invalidated.\"},\"PreSignature(address,bytes,bool)\":{\"details\":\"Event that is emitted when an account either pre-signs an order or revokes an existing pre-signature.\"},\"Settlement(address)\":{\"details\":\"Event emitted when a settlement complets\"},\"Trade(address,address,address,uint256,uint256,uint256,bytes)\":{\"details\":\"Event emitted for each executed trade.\"}},\"kind\":\"dev\",\"methods\":{\"freeFilledAmountStorage(bytes[])\":{\"details\":\"Free storage from the filled amounts of **expired** orders to claim a gas refund. This method can only be called as an interaction.\",\"params\":{\"orderUids\":\"The unique identifiers of the expired order to free storage for.\"}},\"freePreSignatureStorage(bytes[])\":{\"details\":\"Free storage from the pre signatures of **expired** orders to claim a gas refund. This method can only be called as an interaction.\",\"params\":{\"orderUids\":\"The unique identifiers of the expired order to free storage for.\"}},\"getStorageAt(uint256,uint256)\":{\"details\":\"Reads `length` bytes of storage in the currents contract\",\"params\":{\"length\":\"- the number of words (32 bytes) of data to read\",\"offset\":\"- the offset in the current contract's storage in words to start reading from\"},\"returns\":{\"_0\":\"the bytes that were read.\"}},\"invalidateOrder(bytes)\":{\"details\":\"Invalidate onchain an order that has been signed offline.\",\"params\":{\"orderUid\":\"The unique identifier of the order that is to be made invalid after calling this function. The user that created the order must be the the sender of this message. See [`extractOrderUidParams`] for details on orderUid.\"}},\"setPreSignature(bytes,bool)\":{\"details\":\"Sets a presignature for the specified order UID.\",\"params\":{\"orderUid\":\"The unique identifier of the order to pre-sign.\"}},\"settle(address[],uint256[],(uint256,uint256,address,uint256,uint256,uint32,bytes32,uint256,uint256,uint256,bytes)[],(address,uint256,bytes)[][3])\":{\"details\":\"Settle the specified orders at a clearing price. Note that it is the responsibility of the caller to ensure that all GPv2 invariants are upheld for the input settlement, otherwise this call will revert. Namely: - All orders are valid and signed - Accounts have sufficient balance and approval. - Settlement contract has sufficient balance to execute trades. Note this implies that the accumulated fees held in the contract can also be used for settlement. This is OK since: - Solvers need to be authorized - Misbehaving solvers will be slashed for abusing accumulated fees for settlement - Critically, user orders are entirely protected\",\"params\":{\"clearingPrices\":\"An array of clearing prices where the `i`-th price is for the `i`-th token in the [`tokens`] array.\",\"interactions\":\"Smart contract interactions split into three separate lists to be run before the settlement, during the settlement and after the settlement respectively.\",\"tokens\":\"An array of ERC20 tokens to be traded in the settlement. Trades encode tokens as indices into this array.\",\"trades\":\"Trades for signed orders.\"}},\"simulateDelegatecall(address,bytes)\":{\"details\":\"Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). Catches revert and returns encoded result as bytes.\",\"params\":{\"calldataPayload\":\"Calldata that should be sent to the target contract (encoded method name and arguments).\",\"targetContract\":\"Address of the contract containing the code to execute.\"}},\"simulateDelegatecallInternal(address,bytes)\":{\"details\":\"Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). Returns encoded result as revert message concatenated with the success flag of the inner call as a last byte.\",\"params\":{\"calldataPayload\":\"Calldata that should be sent to the target contract (encoded method name and arguments).\",\"targetContract\":\"Address of the contract containing the code to execute.\"}},\"swap((bytes32,uint256,uint256,uint256,bytes)[],address[],(uint256,uint256,address,uint256,uint256,uint32,bytes32,uint256,uint256,uint256,bytes))\":{\"details\":\"Settle an order directly against Balancer V2 pools.\",\"params\":{\"swaps\":\"The Balancer V2 swap steps to use for trading.\",\"tokens\":\"An array of ERC20 tokens to be traded in the settlement. Swaps and the trade encode tokens as indices into this array.\",\"trade\":\"The trade to match directly against Balancer liquidity. The order will always be fully executed, so the trade's `executedAmount` field is used to represent a swap limit amount.\"}}},\"stateVariables\":{\"authenticator\":{\"details\":\"The authenticator is used to determine who can call the settle function. That is, only authorised solvers have the ability to invoke settlements. Any valid authenticator implements an isSolver method called by the onlySolver modifier below.\"},\"filledAmount\":{\"details\":\"Map each user order by UID to the amount that has been filled so far. If this amount is larger than or equal to the amount traded in the order (amount sold for sell orders, amount bought for buy orders) then the order cannot be traded anymore. If the order is fill or kill, then this value is only used to determine whether the order has already been executed.\"},\"vault\":{\"details\":\"The Balancer Vault the protocol uses for managing user funds.\"},\"vaultRelayer\":{\"details\":\"The Balancer Vault relayer which can interact on behalf of users. This contract is created during deployment\"}},\"title\":\"Gnosis Protocol v2 Settlement Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/cowprotocol/src/contracts/GPv2Settlement.sol\":\"GPv2Settlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/contracts/\",\":@openzeppelin/contracts/=lib/@openzeppelin/contracts/\",\":balancer/=lib/balancer/src/\",\":canonical-weth/=lib/canonical-weth/src/\",\":cowprotocol/=lib/cowprotocol/src/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/@openzeppelin/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":helpers/=lib/balancer/src/lib/helpers/\",\":math/=lib/balancer/src/lib/math/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/murky/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/@openzeppelin/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"lib/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/cowprotocol/src/contracts/GPv2Settlement.sol\":{\"keccak256\":\"0xc28bbf8245c27a4e0318ddb98affa388a78f5afdb00bbcf84897659ee7f08e71\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://7e1200b13634efc822f5fb32fc71490bf244cd39b4d98fcb58c4208c620c5dd7\",\"dweb:/ipfs/QmcUizcEMpMkQ7Kw1sadmcUCaztDhtBavaSCJTp5JSMkVF\"]},\"lib/cowprotocol/src/contracts/GPv2VaultRelayer.sol\":{\"keccak256\":\"0xb785d0cc8a18cad4bd7bdc46ba4f995b17e6a3f95c8cbefcc1be6618bfab1595\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://655f249d6af04d75e907376157e393d205ee6be73007f6d75d9bb1325a9efc28\",\"dweb:/ipfs/QmanQfzHUnyrGvknJ9EgkLLQ2Nfd1A6RnfFjXaStp6vgYr\"]},\"lib/cowprotocol/src/contracts/interfaces/GPv2Authentication.sol\":{\"keccak256\":\"0x13eafd3d4043356364572ff28f213ea39faeb4b21b53a900b35fa765a5e0347f\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://71bbcdb728824b72046281d5ca6adc6da2d0806cf251b0662dfc8b06dec9845d\",\"dweb:/ipfs/Qme59yqn4QBBsVe9miUvyD1wVNNFvauXgsPBXT47Ahbizf\"]},\"lib/cowprotocol/src/contracts/interfaces/GPv2EIP1271.sol\":{\"keccak256\":\"0xea0afb5f00ece4de83adb6cf76629344dae3171db3040e50ed704e0650342ade\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://4d9d40de14b1bd8ce70a2f94aa43957e77d7c71b58973e5dcc7d5765ded6cae7\",\"dweb:/ipfs/QmaYLbc84vUtKjdvHjwkYVvnr2hP54Q1B7Jm5KW4iuxt4j\"]},\"lib/cowprotocol/src/contracts/interfaces/IVault.sol\":{\"keccak256\":\"0x205fedd49ab79dd6d2824a056d61ec8bdd6bd02ea9b50e398ea4353095c5325b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://4470ff225bda4345d08c27f7d2e41b079be66e51c2376f4170978aba85bef906\",\"dweb:/ipfs/QmUxq55vtTEDU63ttAUGUsEksH4gLq8dJHkQEC7Zy6gdT1\"]},\"lib/cowprotocol/src/contracts/libraries/GPv2Interaction.sol\":{\"keccak256\":\"0xb950f05f76ac8044b82314ea5510941fdbc0f0e76e7f159023d435652b429528\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://c081155e1b18c060aaab781b4887744413efffdfc55ce190db45c321444f165f\",\"dweb:/ipfs/QmbK3Qu7ZgwBfx2Es5EQcvG6q2srkHjzfNK2ziQ4ojxLSF\"]},\"lib/cowprotocol/src/contracts/libraries/GPv2Order.sol\":{\"keccak256\":\"0xffd0cc3de3209aa38045d57def570ccbde028a39a54b00c696dbe19f4f6d7f9f\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://5714a47cae551d3364bfc6a753d92822b29d277298e55942a2814ed1e2afd87d\",\"dweb:/ipfs/QmS2G8ftdhk11qoSYHX8twZK5vFArhcnVVe6gy5UGTvXmg\"]},\"lib/cowprotocol/src/contracts/libraries/GPv2SafeERC20.sol\":{\"keccak256\":\"0x746fa180cf0c8f866d124958afdabb7430bc79539335f8e25ea89c212378d03b\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://eb94c53fd20b77c15cf44fcdb4939dba3e6e370661d114f73d59b2737ccf4e39\",\"dweb:/ipfs/QmeWYK6wZJ4WKT35yhYkhp1ixwcP348Dr5nS36fnx5FLVD\"]},\"lib/cowprotocol/src/contracts/libraries/GPv2Trade.sol\":{\"keccak256\":\"0x416f67497b82e72e364c94f9322e89a3f993690751f061e55f9b33c135dc6c5a\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://246c6840d43acd6b64135ad7bf99e2a9c87dc9a7c43d14fd43097e8321a424db\",\"dweb:/ipfs/QmXmV7qxM7hmEc5Z5L2crsMzYb9t4GPes8KM5oLXsgxVR5\"]},\"lib/cowprotocol/src/contracts/libraries/GPv2Transfer.sol\":{\"keccak256\":\"0x3fbac207882d1e12ce41b112c1d878e3b234842904c11e006059ab642740f84b\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://eba7b5484ed100a8b4d8af0d62bcc3f30f622065d21de4913ea6a1be024f718e\",\"dweb:/ipfs/QmYxbR3cUybCwyCmzdEyxtjnrf8zb6jxBRVycEVpANXnmf\"]},\"lib/cowprotocol/src/contracts/libraries/SafeCast.sol\":{\"keccak256\":\"0x5804f013c055fefd71f82a86e51070e43bc17ec47fef18a501ad5fbccb20c9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39d85416d210ab05604c4d65aa61b69b220d6b3ae0e0077586104914e129c693\",\"dweb:/ipfs/QmdNpvn2jtCJLJ8jTDgQFGCAkKVAxg4FJWaLUhWxFZphPP\"]},\"lib/cowprotocol/src/contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x5be2c9bf446b9cf76f2c8ce6f3a4e350b588cf794bd274d1d1f18f9907924710\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14a94812f09c5a2213a1af1ab7be15ff0d9000376d93205a19b7eec1e00e6874\",\"dweb:/ipfs/QmPD6Rh7MmyuaBTksnz2idXsqzXUtPaHariiUPFnrCoJu7\"]},\"lib/cowprotocol/src/contracts/mixins/GPv2Signing.sol\":{\"keccak256\":\"0x32351a830456c755d4f4c24180f5d54afc3141e7f1cedba575407ea7a96abdc0\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://e55fc7d29fb7d740181bc790f33308d810950854d357ee17e5c410cc2c273d92\",\"dweb:/ipfs/QmbBhUM8YFHYyEonG5Xa6WsFXkvGXpWceC7zTJeCUnSSe1\"]},\"lib/cowprotocol/src/contracts/mixins/ReentrancyGuard.sol\":{\"keccak256\":\"0xa18086f1819346a9c89daf6abab56df2818fabcf87e8e606e5fedb207ff2d7a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://168b99215387727d51f66314e60ad5c90d8e2d7d8c1557433af1a3b1d1c3931e\",\"dweb:/ipfs/QmaCsMr7dzRS827c5JXwyVgT7wuePwYTNH76w49dcqALN2\"]},\"lib/cowprotocol/src/contracts/mixins/StorageAccessible.sol\":{\"keccak256\":\"0xebf1b3d1f101deac9c85b6c04b32a59c3fb5bc92445a205c33fa4f6c3e2694b8\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://4bc9f0cc4b2949a8301eccac1b4dab27ab104ab11a662be2682818e0d8a6990b\",\"dweb:/ipfs/QmZACELQ2C9RSyoNSuBEiHi17RvCwp3X8p9vo2oSZ9eqhe\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.19+commit.7dd6d404" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "contract GPv2Authentication", - "name": "authenticator_", - "type": "address" - }, - { - "internalType": "contract IVault", - "name": "vault_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256", - "indexed": false - }, - { - "internalType": "bytes4", - "name": "selector", - "type": "bytes4", - "indexed": false - } - ], - "type": "event", - "name": "Interaction", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "bytes", - "name": "orderUid", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "OrderInvalidated", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "bytes", - "name": "orderUid", - "type": "bytes", - "indexed": false - }, - { - "internalType": "bool", - "name": "signed", - "type": "bool", - "indexed": false - } - ], - "type": "event", - "name": "PreSignature", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "solver", - "type": "address", - "indexed": true - } - ], - "type": "event", - "name": "Settlement", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "contract IERC20", - "name": "sellToken", - "type": "address", - "indexed": false - }, - { - "internalType": "contract IERC20", - "name": "buyToken", - "type": "address", - "indexed": false - }, - { - "internalType": "uint256", - "name": "sellAmount", - "type": "uint256", - "indexed": false - }, - { - "internalType": "uint256", - "name": "buyAmount", - "type": "uint256", - "indexed": false - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256", - "indexed": false - }, - { - "internalType": "bytes", - "name": "orderUid", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "Trade", - "anonymous": false - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "authenticator", - "outputs": [ - { - "internalType": "contract GPv2Authentication", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function", - "name": "filledAmount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "orderUids", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "freeFilledAmountStorage" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "orderUids", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "freePreSignatureStorage" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "offset", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getStorageAt", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "invalidateOrder" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function", - "name": "preSignature", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "signed", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setPreSignature" - }, - { - "inputs": [ - { - "internalType": "contract IERC20[]", - "name": "tokens", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "clearingPrices", - "type": "uint256[]" - }, - { - "internalType": "struct GPv2Trade.Data[]", - "name": "trades", - "type": "tuple[]", - "components": [ - { - "internalType": "uint256", - "name": "sellTokenIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyTokenIndex", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "sellAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyAmount", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "validTo", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "appData", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flags", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "executedAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ] - }, - { - "internalType": "struct GPv2Interaction.Data[][3]", - "name": "interactions", - "type": "tuple[][3]", - "components": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "settle" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "targetContract", - "type": "address" - }, - { - "internalType": "bytes", - "name": "calldataPayload", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "simulateDelegatecall", - "outputs": [ - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "targetContract", - "type": "address" - }, - { - "internalType": "bytes", - "name": "calldataPayload", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "simulateDelegatecallInternal", - "outputs": [ - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct IVault.BatchSwapStep[]", - "name": "swaps", - "type": "tuple[]", - "components": [ - { - "internalType": "bytes32", - "name": "poolId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "assetInIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "assetOutIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "userData", - "type": "bytes" - } - ] - }, - { - "internalType": "contract IERC20[]", - "name": "tokens", - "type": "address[]" - }, - { - "internalType": "struct GPv2Trade.Data", - "name": "trade", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "sellTokenIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyTokenIndex", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "sellAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyAmount", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "validTo", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "appData", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flags", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "executedAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "swap" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "vault", - "outputs": [ - { - "internalType": "contract IVault", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "vaultRelayer", - "outputs": [ - { - "internalType": "contract GPv2VaultRelayer", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "payable", - "type": "receive" - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "freeFilledAmountStorage(bytes[])": { - "details": "Free storage from the filled amounts of **expired** orders to claim a gas refund. This method can only be called as an interaction.", - "params": { - "orderUids": "The unique identifiers of the expired order to free storage for." - } - }, - "freePreSignatureStorage(bytes[])": { - "details": "Free storage from the pre signatures of **expired** orders to claim a gas refund. This method can only be called as an interaction.", - "params": { - "orderUids": "The unique identifiers of the expired order to free storage for." - } - }, - "getStorageAt(uint256,uint256)": { - "details": "Reads `length` bytes of storage in the currents contract", - "params": { - "length": "- the number of words (32 bytes) of data to read", - "offset": "- the offset in the current contract's storage in words to start reading from" - }, - "returns": { - "_0": "the bytes that were read." - } - }, - "invalidateOrder(bytes)": { - "details": "Invalidate onchain an order that has been signed offline.", - "params": { - "orderUid": "The unique identifier of the order that is to be made invalid after calling this function. The user that created the order must be the the sender of this message. See [`extractOrderUidParams`] for details on orderUid." - } - }, - "setPreSignature(bytes,bool)": { - "details": "Sets a presignature for the specified order UID.", - "params": { - "orderUid": "The unique identifier of the order to pre-sign." - } - }, - "settle(address[],uint256[],(uint256,uint256,address,uint256,uint256,uint32,bytes32,uint256,uint256,uint256,bytes)[],(address,uint256,bytes)[][3])": { - "details": "Settle the specified orders at a clearing price. Note that it is the responsibility of the caller to ensure that all GPv2 invariants are upheld for the input settlement, otherwise this call will revert. Namely: - All orders are valid and signed - Accounts have sufficient balance and approval. - Settlement contract has sufficient balance to execute trades. Note this implies that the accumulated fees held in the contract can also be used for settlement. This is OK since: - Solvers need to be authorized - Misbehaving solvers will be slashed for abusing accumulated fees for settlement - Critically, user orders are entirely protected", - "params": { - "clearingPrices": "An array of clearing prices where the `i`-th price is for the `i`-th token in the [`tokens`] array.", - "interactions": "Smart contract interactions split into three separate lists to be run before the settlement, during the settlement and after the settlement respectively.", - "tokens": "An array of ERC20 tokens to be traded in the settlement. Trades encode tokens as indices into this array.", - "trades": "Trades for signed orders." - } - }, - "simulateDelegatecall(address,bytes)": { - "details": "Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). Catches revert and returns encoded result as bytes.", - "params": { - "calldataPayload": "Calldata that should be sent to the target contract (encoded method name and arguments).", - "targetContract": "Address of the contract containing the code to execute." - } - }, - "simulateDelegatecallInternal(address,bytes)": { - "details": "Performs a delegetecall on a targetContract in the context of self. Internally reverts execution to avoid side effects (making it static). Returns encoded result as revert message concatenated with the success flag of the inner call as a last byte.", - "params": { - "calldataPayload": "Calldata that should be sent to the target contract (encoded method name and arguments).", - "targetContract": "Address of the contract containing the code to execute." - } - }, - "swap((bytes32,uint256,uint256,uint256,bytes)[],address[],(uint256,uint256,address,uint256,uint256,uint32,bytes32,uint256,uint256,uint256,bytes))": { - "details": "Settle an order directly against Balancer V2 pools.", - "params": { - "swaps": "The Balancer V2 swap steps to use for trading.", - "tokens": "An array of ERC20 tokens to be traded in the settlement. Swaps and the trade encode tokens as indices into this array.", - "trade": "The trade to match directly against Balancer liquidity. The order will always be fully executed, so the trade's `executedAmount` field is used to represent a swap limit amount." - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [ - ":@openzeppelin/=lib/@openzeppelin/contracts/", - ":@openzeppelin/contracts/=lib/@openzeppelin/contracts/", - ":balancer/=lib/balancer/src/", - ":canonical-weth/=lib/canonical-weth/src/", - ":cowprotocol/=lib/cowprotocol/src/contracts/", - ":ds-test/=lib/forge-std/lib/ds-test/src/", - ":erc4626-tests/=lib/@openzeppelin/lib/erc4626-tests/", - ":forge-std/=lib/forge-std/src/", - ":helpers/=lib/balancer/src/lib/helpers/", - ":math/=lib/balancer/src/lib/math/", - ":murky/=lib/murky/src/", - ":openzeppelin-contracts/=lib/murky/lib/openzeppelin-contracts/", - ":openzeppelin/=lib/@openzeppelin/contracts/", - ":safe/=lib/safe/contracts/" - ], - "optimizer": { - "enabled": true, - "runs": 20000 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "lib/cowprotocol/src/contracts/GPv2Settlement.sol": "GPv2Settlement" - }, - "libraries": {} - }, - "sources": { - "lib/@openzeppelin/contracts/interfaces/IERC20.sol": { - "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", - "urls": [ - "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", - "dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq" - ], - "license": "MIT" - }, - "lib/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", - "urls": [ - "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", - "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" - ], - "license": "MIT" - }, - "lib/cowprotocol/src/contracts/GPv2Settlement.sol": { - "keccak256": "0xc28bbf8245c27a4e0318ddb98affa388a78f5afdb00bbcf84897659ee7f08e71", - "urls": [ - "bzz-raw://7e1200b13634efc822f5fb32fc71490bf244cd39b4d98fcb58c4208c620c5dd7", - "dweb:/ipfs/QmcUizcEMpMkQ7Kw1sadmcUCaztDhtBavaSCJTp5JSMkVF" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/GPv2VaultRelayer.sol": { - "keccak256": "0xb785d0cc8a18cad4bd7bdc46ba4f995b17e6a3f95c8cbefcc1be6618bfab1595", - "urls": [ - "bzz-raw://655f249d6af04d75e907376157e393d205ee6be73007f6d75d9bb1325a9efc28", - "dweb:/ipfs/QmanQfzHUnyrGvknJ9EgkLLQ2Nfd1A6RnfFjXaStp6vgYr" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/interfaces/GPv2Authentication.sol": { - "keccak256": "0x13eafd3d4043356364572ff28f213ea39faeb4b21b53a900b35fa765a5e0347f", - "urls": [ - "bzz-raw://71bbcdb728824b72046281d5ca6adc6da2d0806cf251b0662dfc8b06dec9845d", - "dweb:/ipfs/Qme59yqn4QBBsVe9miUvyD1wVNNFvauXgsPBXT47Ahbizf" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/interfaces/GPv2EIP1271.sol": { - "keccak256": "0xea0afb5f00ece4de83adb6cf76629344dae3171db3040e50ed704e0650342ade", - "urls": [ - "bzz-raw://4d9d40de14b1bd8ce70a2f94aa43957e77d7c71b58973e5dcc7d5765ded6cae7", - "dweb:/ipfs/QmaYLbc84vUtKjdvHjwkYVvnr2hP54Q1B7Jm5KW4iuxt4j" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/interfaces/IVault.sol": { - "keccak256": "0x205fedd49ab79dd6d2824a056d61ec8bdd6bd02ea9b50e398ea4353095c5325b", - "urls": [ - "bzz-raw://4470ff225bda4345d08c27f7d2e41b079be66e51c2376f4170978aba85bef906", - "dweb:/ipfs/QmUxq55vtTEDU63ttAUGUsEksH4gLq8dJHkQEC7Zy6gdT1" - ], - "license": "GPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/libraries/GPv2Interaction.sol": { - "keccak256": "0xb950f05f76ac8044b82314ea5510941fdbc0f0e76e7f159023d435652b429528", - "urls": [ - "bzz-raw://c081155e1b18c060aaab781b4887744413efffdfc55ce190db45c321444f165f", - "dweb:/ipfs/QmbK3Qu7ZgwBfx2Es5EQcvG6q2srkHjzfNK2ziQ4ojxLSF" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/libraries/GPv2Order.sol": { - "keccak256": "0xffd0cc3de3209aa38045d57def570ccbde028a39a54b00c696dbe19f4f6d7f9f", - "urls": [ - "bzz-raw://5714a47cae551d3364bfc6a753d92822b29d277298e55942a2814ed1e2afd87d", - "dweb:/ipfs/QmS2G8ftdhk11qoSYHX8twZK5vFArhcnVVe6gy5UGTvXmg" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/libraries/GPv2SafeERC20.sol": { - "keccak256": "0x746fa180cf0c8f866d124958afdabb7430bc79539335f8e25ea89c212378d03b", - "urls": [ - "bzz-raw://eb94c53fd20b77c15cf44fcdb4939dba3e6e370661d114f73d59b2737ccf4e39", - "dweb:/ipfs/QmeWYK6wZJ4WKT35yhYkhp1ixwcP348Dr5nS36fnx5FLVD" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/libraries/GPv2Trade.sol": { - "keccak256": "0x416f67497b82e72e364c94f9322e89a3f993690751f061e55f9b33c135dc6c5a", - "urls": [ - "bzz-raw://246c6840d43acd6b64135ad7bf99e2a9c87dc9a7c43d14fd43097e8321a424db", - "dweb:/ipfs/QmXmV7qxM7hmEc5Z5L2crsMzYb9t4GPes8KM5oLXsgxVR5" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/libraries/GPv2Transfer.sol": { - "keccak256": "0x3fbac207882d1e12ce41b112c1d878e3b234842904c11e006059ab642740f84b", - "urls": [ - "bzz-raw://eba7b5484ed100a8b4d8af0d62bcc3f30f622065d21de4913ea6a1be024f718e", - "dweb:/ipfs/QmYxbR3cUybCwyCmzdEyxtjnrf8zb6jxBRVycEVpANXnmf" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/libraries/SafeCast.sol": { - "keccak256": "0x5804f013c055fefd71f82a86e51070e43bc17ec47fef18a501ad5fbccb20c9fd", - "urls": [ - "bzz-raw://39d85416d210ab05604c4d65aa61b69b220d6b3ae0e0077586104914e129c693", - "dweb:/ipfs/QmdNpvn2jtCJLJ8jTDgQFGCAkKVAxg4FJWaLUhWxFZphPP" - ], - "license": "MIT" - }, - "lib/cowprotocol/src/contracts/libraries/SafeMath.sol": { - "keccak256": "0x5be2c9bf446b9cf76f2c8ce6f3a4e350b588cf794bd274d1d1f18f9907924710", - "urls": [ - "bzz-raw://14a94812f09c5a2213a1af1ab7be15ff0d9000376d93205a19b7eec1e00e6874", - "dweb:/ipfs/QmPD6Rh7MmyuaBTksnz2idXsqzXUtPaHariiUPFnrCoJu7" - ], - "license": "MIT" - }, - "lib/cowprotocol/src/contracts/mixins/GPv2Signing.sol": { - "keccak256": "0x32351a830456c755d4f4c24180f5d54afc3141e7f1cedba575407ea7a96abdc0", - "urls": [ - "bzz-raw://e55fc7d29fb7d740181bc790f33308d810950854d357ee17e5c410cc2c273d92", - "dweb:/ipfs/QmbBhUM8YFHYyEonG5Xa6WsFXkvGXpWceC7zTJeCUnSSe1" - ], - "license": "LGPL-3.0-or-later" - }, - "lib/cowprotocol/src/contracts/mixins/ReentrancyGuard.sol": { - "keccak256": "0xa18086f1819346a9c89daf6abab56df2818fabcf87e8e606e5fedb207ff2d7a0", - "urls": [ - "bzz-raw://168b99215387727d51f66314e60ad5c90d8e2d7d8c1557433af1a3b1d1c3931e", - "dweb:/ipfs/QmaCsMr7dzRS827c5JXwyVgT7wuePwYTNH76w49dcqALN2" - ], - "license": "MIT" - }, - "lib/cowprotocol/src/contracts/mixins/StorageAccessible.sol": { - "keccak256": "0xebf1b3d1f101deac9c85b6c04b32a59c3fb5bc92445a205c33fa4f6c3e2694b8", - "urls": [ - "bzz-raw://4bc9f0cc4b2949a8301eccac1b4dab27ab104ab11a662be2682818e0d8a6990b", - "dweb:/ipfs/QmZACELQ2C9RSyoNSuBEiHi17RvCwp3X8p9vo2oSZ9eqhe" - ], - "license": "LGPL-3.0-only" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "lib/cowprotocol/src/contracts/GPv2Settlement.sol", - "id": 16750, - "exportedSymbols": { - "EIP1271Verifier": [ - 16898 - ], - "GPv2Authentication": [ - 16879 - ], - "GPv2EIP1271": [ - 16886 - ], - "GPv2Interaction": [ - 17090 - ], - "GPv2Order": [ - 17246 - ], - "GPv2SafeERC20": [ - 17316 - ], - "GPv2Settlement": [ - 16749 - ], - "GPv2Signing": [ - 18699 - ], - "GPv2Trade": [ - 17549 - ], - "GPv2Transfer": [ - 18026 - ], - "GPv2VaultRelayer": [ - 16867 - ], - "IERC20": [ - 670 - ], - "IVault": [ - 17010 - ], - "ReentrancyGuard": [ - 18803 - ], - "SafeCast": [ - 18079 - ], - "SafeMath": [ - 18219 - ], - "StorageAccessible": [ - 18973 - ], - "ViewStorageAccessible": [ - 18827 - ] - }, - "nodeType": "SourceUnit", - "src": "46:19183:56", - "nodes": [ - { - "id": 15648, - "nodeType": "PragmaDirective", - "src": "46:31:56", - "nodes": [], - "literals": [ - "solidity", - ">=", - "0.8", - ".0", - "<", - "0.9", - ".0" - ] - }, - { - "id": 15649, - "nodeType": "ImportDirective", - "src": "79:32:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/GPv2VaultRelayer.sol", - "file": "./GPv2VaultRelayer.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 16868, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15650, - "nodeType": "ImportDirective", - "src": "112:45:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/interfaces/GPv2Authentication.sol", - "file": "./interfaces/GPv2Authentication.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 16880, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15651, - "nodeType": "ImportDirective", - "src": "158:55:56", - "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/interfaces/IERC20.sol", - "file": "@openzeppelin/contracts/interfaces/IERC20.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 3, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15652, - "nodeType": "ImportDirective", - "src": "214:33:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/interfaces/IVault.sol", - "file": "./interfaces/IVault.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 17011, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15653, - "nodeType": "ImportDirective", - "src": "248:41:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/libraries/GPv2Interaction.sol", - "file": "./libraries/GPv2Interaction.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 17091, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15654, - "nodeType": "ImportDirective", - "src": "290:35:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/libraries/GPv2Order.sol", - "file": "./libraries/GPv2Order.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 17247, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15655, - "nodeType": "ImportDirective", - "src": "326:35:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/libraries/GPv2Trade.sol", - "file": "./libraries/GPv2Trade.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 17550, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15656, - "nodeType": "ImportDirective", - "src": "362:38:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/libraries/GPv2Transfer.sol", - "file": "./libraries/GPv2Transfer.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 18027, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15657, - "nodeType": "ImportDirective", - "src": "401:34:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/libraries/SafeCast.sol", - "file": "./libraries/SafeCast.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 18080, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15658, - "nodeType": "ImportDirective", - "src": "436:34:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/libraries/SafeMath.sol", - "file": "./libraries/SafeMath.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 18220, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15659, - "nodeType": "ImportDirective", - "src": "471:34:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/mixins/GPv2Signing.sol", - "file": "./mixins/GPv2Signing.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 18700, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15660, - "nodeType": "ImportDirective", - "src": "506:38:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/mixins/ReentrancyGuard.sol", - "file": "./mixins/ReentrancyGuard.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 18804, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 15661, - "nodeType": "ImportDirective", - "src": "545:40:56", - "nodes": [], - "absolutePath": "lib/cowprotocol/src/contracts/mixins/StorageAccessible.sol", - "file": "./mixins/StorageAccessible.sol", - "nameLocation": "-1:-1:-1", - "scope": 16750, - "sourceUnit": 18974, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 16749, - "nodeType": "ContractDefinition", - "src": "667:18561:56", - "nodes": [ - { - "id": 15671, - "nodeType": "UsingForDirective", - "src": "748:26:56", - "nodes": [], - "global": false, - "libraryName": { - "id": 15669, - "name": "GPv2Order", - "nameLocations": [ - "754:9:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17246, - "src": "754:9:56" - }, - "typeName": { - "id": 15670, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "768:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - { - "id": 15675, - "nodeType": "UsingForDirective", - "src": "779:30:56", - "nodes": [], - "global": false, - "libraryName": { - "id": 15672, - "name": "GPv2Transfer", - "nameLocations": [ - "785:12:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18026, - "src": "785:12:56" - }, - "typeName": { - "id": 15674, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15673, - "name": "IVault", - "nameLocations": [ - "802:6:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17010, - "src": "802:6:56" - }, - "referencedDeclaration": 17010, - "src": "802:6:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVault_$17010", - "typeString": "contract IVault" - } - } - }, - { - "id": 15678, - "nodeType": "UsingForDirective", - "src": "814:26:56", - "nodes": [], - "global": false, - "libraryName": { - "id": 15676, - "name": "SafeCast", - "nameLocations": [ - "820:8:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18079, - "src": "820:8:56" - }, - "typeName": { - "id": 15677, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "833:6:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - }, - { - "id": 15681, - "nodeType": "UsingForDirective", - "src": "845:27:56", - "nodes": [], - "global": false, - "libraryName": { - "id": 15679, - "name": "SafeCast", - "nameLocations": [ - "851:8:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18079, - "src": "851:8:56" - }, - "typeName": { - "id": 15680, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "864:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 15684, - "nodeType": "UsingForDirective", - "src": "877:27:56", - "nodes": [], - "global": false, - "libraryName": { - "id": 15682, - "name": "SafeMath", - "nameLocations": [ - "883:8:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18219, - "src": "883:8:56" - }, - "typeName": { - "id": 15683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "896:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 15688, - "nodeType": "VariableDeclaration", - "src": "1188:49:56", - "nodes": [], - "constant": false, - "documentation": { - "id": 15685, - "nodeType": "StructuredDocumentation", - "src": "910:273:56", - "text": "@dev The authenticator is used to determine who can call the settle function.\n That is, only authorised solvers have the ability to invoke settlements.\n Any valid authenticator implements an isSolver method called by the onlySolver\n modifier below." - }, - "functionSelector": "2335c76b", - "mutability": "immutable", - "name": "authenticator", - "nameLocation": "1224:13:56", - "scope": 16749, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2Authentication_$16879", - "typeString": "contract GPv2Authentication" - }, - "typeName": { - "id": 15687, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15686, - "name": "GPv2Authentication", - "nameLocations": [ - "1188:18:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 16879, - "src": "1188:18:56" - }, - "referencedDeclaration": 16879, - "src": "1188:18:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2Authentication_$16879", - "typeString": "contract GPv2Authentication" - } - }, - "visibility": "public" - }, - { - "id": 15692, - "nodeType": "VariableDeclaration", - "src": "1319:29:56", - "nodes": [], - "constant": false, - "documentation": { - "id": 15689, - "nodeType": "StructuredDocumentation", - "src": "1244:70:56", - "text": "@dev The Balancer Vault the protocol uses for managing user funds." - }, - "functionSelector": "fbfa77cf", - "mutability": "immutable", - "name": "vault", - "nameLocation": "1343:5:56", - "scope": 16749, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVault_$17010", - "typeString": "contract IVault" - }, - "typeName": { - "id": 15691, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15690, - "name": "IVault", - "nameLocations": [ - "1319:6:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17010, - "src": "1319:6:56" - }, - "referencedDeclaration": 17010, - "src": "1319:6:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVault_$17010", - "typeString": "contract IVault" - } - }, - "visibility": "public" - }, - { - "id": 15696, - "nodeType": "VariableDeclaration", - "src": "1485:46:56", - "nodes": [], - "constant": false, - "documentation": { - "id": 15693, - "nodeType": "StructuredDocumentation", - "src": "1355:125:56", - "text": "@dev The Balancer Vault relayer which can interact on behalf of users.\n This contract is created during deployment" - }, - "functionSelector": "9b552cc2", - "mutability": "immutable", - "name": "vaultRelayer", - "nameLocation": "1519:12:56", - "scope": 16749, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2VaultRelayer_$16867", - "typeString": "contract GPv2VaultRelayer" - }, - "typeName": { - "id": 15695, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15694, - "name": "GPv2VaultRelayer", - "nameLocations": [ - "1485:16:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 16867, - "src": "1485:16:56" - }, - "referencedDeclaration": 16867, - "src": "1485:16:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2VaultRelayer_$16867", - "typeString": "contract GPv2VaultRelayer" - } - }, - "visibility": "public" - }, - { - "id": 15701, - "nodeType": "VariableDeclaration", - "src": "1952:45:56", - "nodes": [], - "constant": false, - "documentation": { - "id": 15697, - "nodeType": "StructuredDocumentation", - "src": "1538:409:56", - "text": "@dev Map each user order by UID to the amount that has been filled so\n far. If this amount is larger than or equal to the amount traded in the\n order (amount sold for sell orders, amount bought for buy orders) then\n the order cannot be traded anymore. If the order is fill or kill, then\n this value is only used to determine whether the order has already been\n executed." - }, - "functionSelector": "2479fb6e", - "mutability": "mutable", - "name": "filledAmount", - "nameLocation": "1985:12:56", - "scope": 16749, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes => uint256)" - }, - "typeName": { - "id": 15700, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 15698, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1960:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "1952:25:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 15699, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1969:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "public" - }, - { - "id": 15720, - "nodeType": "EventDefinition", - "src": "2056:206:56", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 15702, - "nodeType": "StructuredDocumentation", - "src": "2004:47:56", - "text": "@dev Event emitted for each executed trade." - }, - "eventSelector": "a07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", - "name": "Trade", - "nameLocation": "2062:5:56", - "parameters": { - "id": 15719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15704, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2093:5:56", - "nodeType": "VariableDeclaration", - "scope": 15720, - "src": "2077:21:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 15703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2077:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15707, - "indexed": false, - "mutability": "mutable", - "name": "sellToken", - "nameLocation": "2115:9:56", - "nodeType": "VariableDeclaration", - "scope": 15720, - "src": "2108:16:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 15706, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15705, - "name": "IERC20", - "nameLocations": [ - "2108:6:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "2108:6:56" - }, - "referencedDeclaration": 670, - "src": "2108:6:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15710, - "indexed": false, - "mutability": "mutable", - "name": "buyToken", - "nameLocation": "2141:8:56", - "nodeType": "VariableDeclaration", - "scope": 15720, - "src": "2134:15:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 15709, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15708, - "name": "IERC20", - "nameLocations": [ - "2134:6:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "2134:6:56" - }, - "referencedDeclaration": 670, - "src": "2134:6:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15712, - "indexed": false, - "mutability": "mutable", - "name": "sellAmount", - "nameLocation": "2167:10:56", - "nodeType": "VariableDeclaration", - "scope": 15720, - "src": "2159:18:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15711, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2159:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15714, - "indexed": false, - "mutability": "mutable", - "name": "buyAmount", - "nameLocation": "2195:9:56", - "nodeType": "VariableDeclaration", - "scope": 15720, - "src": "2187:17:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15713, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2187:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15716, - "indexed": false, - "mutability": "mutable", - "name": "feeAmount", - "nameLocation": "2222:9:56", - "nodeType": "VariableDeclaration", - "scope": 15720, - "src": "2214:17:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15715, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2214:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15718, - "indexed": false, - "mutability": "mutable", - "name": "orderUid", - "nameLocation": "2247:8:56", - "nodeType": "VariableDeclaration", - "scope": 15720, - "src": "2241:14:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 15717, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2241:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2067:194:56" - } - }, - { - "id": 15729, - "nodeType": "EventDefinition", - "src": "2562:74:56", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 15721, - "nodeType": "StructuredDocumentation", - "src": "2268:289:56", - "text": "@dev Event emitted for each executed interaction.\n For gas effeciency, only the interaction calldata selector (first 4\n bytes) is included in the event. For interactions without calldata or\n whose calldata is shorter than 4 bytes, the selector will be `0`." - }, - "eventSelector": "ed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", - "name": "Interaction", - "nameLocation": "2568:11:56", - "parameters": { - "id": 15728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15723, - "indexed": true, - "mutability": "mutable", - "name": "target", - "nameLocation": "2596:6:56", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "2580:22:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 15722, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2580:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15725, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nameLocation": "2612:5:56", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "2604:13:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15724, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2604:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15727, - "indexed": false, - "mutability": "mutable", - "name": "selector", - "nameLocation": "2626:8:56", - "nodeType": "VariableDeclaration", - "scope": 15729, - "src": "2619:15:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 15726, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2619:6:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "2579:56:56" - } - }, - { - "id": 15734, - "nodeType": "EventDefinition", - "src": "2696:41:56", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 15730, - "nodeType": "StructuredDocumentation", - "src": "2642:49:56", - "text": "@dev Event emitted when a settlement complets" - }, - "eventSelector": "40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", - "name": "Settlement", - "nameLocation": "2702:10:56", - "parameters": { - "id": 15733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15732, - "indexed": true, - "mutability": "mutable", - "name": "solver", - "nameLocation": "2729:6:56", - "nodeType": "VariableDeclaration", - "scope": 15734, - "src": "2713:22:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 15731, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2713:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2712:24:56" - } - }, - { - "id": 15741, - "nodeType": "EventDefinition", - "src": "2800:62:56", - "nodes": [], - "anonymous": false, - "documentation": { - "id": 15735, - "nodeType": "StructuredDocumentation", - "src": "2743:52:56", - "text": "@dev Event emitted when an order is invalidated." - }, - "eventSelector": "875b6cb035bbd4ac6500fabc6d1e4ca5bdc58a3e2b424ccb5c24cdbebeb009a9", - "name": "OrderInvalidated", - "nameLocation": "2806:16:56", - "parameters": { - "id": 15740, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15737, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2839:5:56", - "nodeType": "VariableDeclaration", - "scope": 15741, - "src": "2823:21:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 15736, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2823:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15739, - "indexed": false, - "mutability": "mutable", - "name": "orderUid", - "nameLocation": "2852:8:56", - "nodeType": "VariableDeclaration", - "scope": 15741, - "src": "2846:14:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 15738, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2846:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2822:39:56" - } - }, - { - "id": 15767, - "nodeType": "FunctionDefinition", - "src": "2868:186:56", - "nodes": [], - "body": { - "id": 15766, - "nodeType": "Block", - "src": "2930:124:56", - "nodes": [], - "statements": [ - { - "expression": { - "id": 15752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 15750, - "name": "authenticator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15688, - "src": "2940:13:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2Authentication_$16879", - "typeString": "contract GPv2Authentication" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 15751, - "name": "authenticator_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15744, - "src": "2956:14:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2Authentication_$16879", - "typeString": "contract GPv2Authentication" - } - }, - "src": "2940:30:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2Authentication_$16879", - "typeString": "contract GPv2Authentication" - } - }, - "id": 15753, - "nodeType": "ExpressionStatement", - "src": "2940:30:56" - }, - { - "expression": { - "id": 15756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 15754, - "name": "vault", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15692, - "src": "2980:5:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVault_$17010", - "typeString": "contract IVault" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 15755, - "name": "vault_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15747, - "src": "2988:6:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVault_$17010", - "typeString": "contract IVault" - } - }, - "src": "2980:14:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVault_$17010", - "typeString": "contract IVault" - } - }, - "id": 15757, - "nodeType": "ExpressionStatement", - "src": "2980:14:56" - }, - { - "expression": { - "id": 15764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 15758, - "name": "vaultRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15696, - "src": "3004:12:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2VaultRelayer_$16867", - "typeString": "contract GPv2VaultRelayer" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 15762, - "name": "vault_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15747, - "src": "3040:6:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVault_$17010", - "typeString": "contract IVault" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IVault_$17010", - "typeString": "contract IVault" - } - ], - "id": 15761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3019:20:56", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_contract$_IVault_$17010_$returns$_t_contract$_GPv2VaultRelayer_$16867_$", - "typeString": "function (contract IVault) returns (contract GPv2VaultRelayer)" - }, - "typeName": { - "id": 15760, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15759, - "name": "GPv2VaultRelayer", - "nameLocations": [ - "3023:16:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 16867, - "src": "3023:16:56" - }, - "referencedDeclaration": 16867, - "src": "3023:16:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2VaultRelayer_$16867", - "typeString": "contract GPv2VaultRelayer" - } - } - }, - "id": 15763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3019:28:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2VaultRelayer_$16867", - "typeString": "contract GPv2VaultRelayer" - } - }, - "src": "3004:43:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2VaultRelayer_$16867", - "typeString": "contract GPv2VaultRelayer" - } - }, - "id": 15765, - "nodeType": "ExpressionStatement", - "src": "3004:43:56" - } - ] - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 15748, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15744, - "mutability": "mutable", - "name": "authenticator_", - "nameLocation": "2899:14:56", - "nodeType": "VariableDeclaration", - "scope": 15767, - "src": "2880:33:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2Authentication_$16879", - "typeString": "contract GPv2Authentication" - }, - "typeName": { - "id": 15743, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15742, - "name": "GPv2Authentication", - "nameLocations": [ - "2880:18:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 16879, - "src": "2880:18:56" - }, - "referencedDeclaration": 16879, - "src": "2880:18:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2Authentication_$16879", - "typeString": "contract GPv2Authentication" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15747, - "mutability": "mutable", - "name": "vault_", - "nameLocation": "2922:6:56", - "nodeType": "VariableDeclaration", - "scope": 15767, - "src": "2915:13:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVault_$17010", - "typeString": "contract IVault" - }, - "typeName": { - "id": 15746, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15745, - "name": "IVault", - "nameLocations": [ - "2915:6:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17010, - "src": "2915:6:56" - }, - "referencedDeclaration": 17010, - "src": "2915:6:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVault_$17010", - "typeString": "contract IVault" - } - }, - "visibility": "internal" - } - ], - "src": "2879:50:56" - }, - "returnParameters": { - "id": 15749, - "nodeType": "ParameterList", - "parameters": [], - "src": "2930:0:56" - }, - "scope": 16749, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 15771, - "nodeType": "FunctionDefinition", - "src": "3109:174:56", - "nodes": [], - "body": { - "id": 15770, - "nodeType": "Block", - "src": "3136:147:56", - "nodes": [], - "statements": [] - }, - "implemented": true, - "kind": "receive", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 15768, - "nodeType": "ParameterList", - "parameters": [], - "src": "3116:2:56" - }, - "returnParameters": { - "id": 15769, - "nodeType": "ParameterList", - "parameters": [], - "src": "3136:0:56" - }, - "scope": 16749, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 15785, - "nodeType": "ModifierDefinition", - "src": "3408:115:56", - "nodes": [], - "body": { - "id": 15784, - "nodeType": "Block", - "src": "3430:93:56", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 15777, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3471:3:56", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3475:6:56", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3471:10:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 15775, - "name": "authenticator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15688, - "src": "3448:13:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2Authentication_$16879", - "typeString": "contract GPv2Authentication" - } - }, - "id": 15776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3462:8:56", - "memberName": "isSolver", - "nodeType": "MemberAccess", - "referencedDeclaration": 16878, - "src": "3448:22:56", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 15779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3448:34:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a206e6f74206120736f6c766572", - "id": 15780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3484:20:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bb0d072ebc75a10cd31f7c3fe786959a078a12f0b8062c973038d081c276b723", - "typeString": "literal_string \"GPv2: not a solver\"" - }, - "value": "GPv2: not a solver" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bb0d072ebc75a10cd31f7c3fe786959a078a12f0b8062c973038d081c276b723", - "typeString": "literal_string \"GPv2: not a solver\"" - } - ], - "id": 15774, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3440:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3440:65:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15782, - "nodeType": "ExpressionStatement", - "src": "3440:65:56" - }, - { - "id": 15783, - "nodeType": "PlaceholderStatement", - "src": "3515:1:56" - } - ] - }, - "documentation": { - "id": 15772, - "nodeType": "StructuredDocumentation", - "src": "3289:114:56", - "text": "@dev This modifier is called by settle function to block any non-listed\n senders from settling batches." - }, - "name": "onlySolver", - "nameLocation": "3417:10:56", - "parameters": { - "id": 15773, - "nodeType": "ParameterList", - "parameters": [], - "src": "3427:2:56" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 15801, - "nodeType": "ModifierDefinition", - "src": "3641:119:56", - "nodes": [], - "body": { - "id": 15800, - "nodeType": "Block", - "src": "3668:92:56", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 15795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 15791, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3694:4:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2Settlement_$16749", - "typeString": "contract GPv2Settlement" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_GPv2Settlement_$16749", - "typeString": "contract GPv2Settlement" - } - ], - "id": 15790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3686:7:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 15789, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3686:7:56", - "typeDescriptions": {} - } - }, - "id": 15792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3686:13:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 15793, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3703:3:56", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3707:6:56", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3703:10:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3686:27:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a206e6f7420616e20696e746572616374696f6e", - "id": 15796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3715:26:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_771a01853bd96c5c38430404c768608aea1a04fcea7834e1549545d3963758d4", - "typeString": "literal_string \"GPv2: not an interaction\"" - }, - "value": "GPv2: not an interaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_771a01853bd96c5c38430404c768608aea1a04fcea7834e1549545d3963758d4", - "typeString": "literal_string \"GPv2: not an interaction\"" - } - ], - "id": 15788, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3678:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 15797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3678:64:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15798, - "nodeType": "ExpressionStatement", - "src": "3678:64:56" - }, - { - "id": 15799, - "nodeType": "PlaceholderStatement", - "src": "3752:1:56" - } - ] - }, - "documentation": { - "id": 15786, - "nodeType": "StructuredDocumentation", - "src": "3529:107:56", - "text": "@dev Modifier to ensure that an external function is only callable as a\n settlement interaction." - }, - "name": "onlyInteraction", - "nameLocation": "3650:15:56", - "parameters": { - "id": 15787, - "nodeType": "ParameterList", - "parameters": [], - "src": "3665:2:56" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 15878, - "nodeType": "FunctionDefinition", - "src": "5054:705:56", - "nodes": [], - "body": { - "id": 15877, - "nodeType": "Block", - "src": "5285:474:56", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 15827, - "name": "interactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15819, - "src": "5315:12:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr_$3_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata[] calldata[3] calldata" - } - }, - "id": 15829, - "indexExpression": { - "hexValue": "30", - "id": 15828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5328:1:56", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5315:15:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata[] calldata" - } - ], - "id": 15826, - "name": "executeInteractions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16697, - "src": "5295:19:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr_$returns$__$", - "typeString": "function (struct GPv2Interaction.Data calldata[] calldata)" - } - }, - "id": 15830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5295:36:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15831, - "nodeType": "ExpressionStatement", - "src": "5295:36:56" - }, - { - "assignments": [ - 15837, - 15841 - ], - "declarations": [ - { - "constant": false, - "id": 15837, - "mutability": "mutable", - "name": "inTransfers", - "nameLocation": "5383:11:56", - "nodeType": "VariableDeclaration", - "scope": 15877, - "src": "5356:38:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data[]" - }, - "typeName": { - "baseType": { - "id": 15835, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15834, - "name": "GPv2Transfer.Data", - "nameLocations": [ - "5356:12:56", - "5369:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17570, - "src": "5356:17:56" - }, - "referencedDeclaration": 17570, - "src": "5356:17:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_storage_ptr", - "typeString": "struct GPv2Transfer.Data" - } - }, - "id": 15836, - "nodeType": "ArrayTypeName", - "src": "5356:19:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_storage_$dyn_storage_ptr", - "typeString": "struct GPv2Transfer.Data[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15841, - "mutability": "mutable", - "name": "outTransfers", - "nameLocation": "5435:12:56", - "nodeType": "VariableDeclaration", - "scope": 15877, - "src": "5408:39:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data[]" - }, - "typeName": { - "baseType": { - "id": 15839, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15838, - "name": "GPv2Transfer.Data", - "nameLocations": [ - "5408:12:56", - "5421:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17570, - "src": "5408:17:56" - }, - "referencedDeclaration": 17570, - "src": "5408:17:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_storage_ptr", - "typeString": "struct GPv2Transfer.Data" - } - }, - "id": 15840, - "nodeType": "ArrayTypeName", - "src": "5408:19:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_storage_$dyn_storage_ptr", - "typeString": "struct GPv2Transfer.Data[]" - } - }, - "visibility": "internal" - } - ], - "id": 15847, - "initialValue": { - "arguments": [ - { - "id": 15843, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15806, - "src": "5483:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[] calldata" - } - }, - { - "id": 15844, - "name": "clearingPrices", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15809, - "src": "5491:14:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - { - "id": 15845, - "name": "trades", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15813, - "src": "5507:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17352_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[] calldata" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - }, - { - "typeIdentifier": "t_array$_t_struct$_Data_$17352_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata[] calldata" - } - ], - "id": 15842, - "name": "computeTradeExecutions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16366, - "src": "5460:22:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_struct$_Data_$17352_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (contract IERC20[] calldata,uint256[] calldata,struct GPv2Trade.Data calldata[] calldata) returns (struct GPv2Transfer.Data memory[] memory,struct GPv2Transfer.Data memory[] memory)" - } - }, - "id": 15846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5460:54:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr_$", - "typeString": "tuple(struct GPv2Transfer.Data memory[] memory,struct GPv2Transfer.Data memory[] memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5342:172:56" - }, - { - "expression": { - "arguments": [ - { - "id": 15851, - "name": "inTransfers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15837, - "src": "5559:11:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - ], - "expression": { - "id": 15848, - "name": "vaultRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15696, - "src": "5525:12:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2VaultRelayer_$16867", - "typeString": "contract GPv2VaultRelayer" - } - }, - "id": 15850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5538:20:56", - "memberName": "transferFromAccounts", - "nodeType": "MemberAccess", - "referencedDeclaration": 16814, - "src": "5525:33:56", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct GPv2Transfer.Data memory[] memory) external" - } - }, - "id": 15852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5525:46:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15853, - "nodeType": "ExpressionStatement", - "src": "5525:46:56" - }, - { - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 15855, - "name": "interactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15819, - "src": "5602:12:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr_$3_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata[] calldata[3] calldata" - } - }, - "id": 15857, - "indexExpression": { - "hexValue": "31", - "id": 15856, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5615:1:56", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5602:15:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata[] calldata" - } - ], - "id": 15854, - "name": "executeInteractions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16697, - "src": "5582:19:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr_$returns$__$", - "typeString": "function (struct GPv2Interaction.Data calldata[] calldata)" - } - }, - "id": 15858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5582:36:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15859, - "nodeType": "ExpressionStatement", - "src": "5582:36:56" - }, - { - "expression": { - "arguments": [ - { - "id": 15863, - "name": "outTransfers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15841, - "src": "5654:12:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - ], - "expression": { - "id": 15860, - "name": "vault", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15692, - "src": "5629:5:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IVault_$17010", - "typeString": "contract IVault" - } - }, - "id": 15862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5635:18:56", - "memberName": "transferToAccounts", - "nodeType": "MemberAccess", - "referencedDeclaration": 18013, - "src": "5629:24:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IVault_$17010_$_t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr_$returns$__$attached_to$_t_contract$_IVault_$17010_$", - "typeString": "function (contract IVault,struct GPv2Transfer.Data memory[] memory)" - } - }, - "id": 15864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5629:38:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15865, - "nodeType": "ExpressionStatement", - "src": "5629:38:56" - }, - { - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 15867, - "name": "interactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15819, - "src": "5698:12:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr_$3_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata[] calldata[3] calldata" - } - }, - "id": 15869, - "indexExpression": { - "hexValue": "32", - "id": 15868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5711:1:56", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5698:15:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata[] calldata" - } - ], - "id": 15866, - "name": "executeInteractions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16697, - "src": "5678:19:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr_$returns$__$", - "typeString": "function (struct GPv2Interaction.Data calldata[] calldata)" - } - }, - "id": 15870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5678:36:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15871, - "nodeType": "ExpressionStatement", - "src": "5678:36:56" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 15873, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5741:3:56", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 15874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5745:6:56", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5741:10:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 15872, - "name": "Settlement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15734, - "src": "5730:10:56", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 15875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5730:22:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15876, - "nodeType": "EmitStatement", - "src": "5725:27:56" - } - ] - }, - "documentation": { - "id": 15802, - "nodeType": "StructuredDocumentation", - "src": "3766:1283:56", - "text": "@dev Settle the specified orders at a clearing price. Note that it is\n the responsibility of the caller to ensure that all GPv2 invariants are\n upheld for the input settlement, otherwise this call will revert.\n Namely:\n - All orders are valid and signed\n - Accounts have sufficient balance and approval.\n - Settlement contract has sufficient balance to execute trades. Note\n this implies that the accumulated fees held in the contract can also\n be used for settlement. This is OK since:\n - Solvers need to be authorized\n - Misbehaving solvers will be slashed for abusing accumulated fees for\n settlement\n - Critically, user orders are entirely protected\n @param tokens An array of ERC20 tokens to be traded in the settlement.\n Trades encode tokens as indices into this array.\n @param clearingPrices An array of clearing prices where the `i`-th price\n is for the `i`-th token in the [`tokens`] array.\n @param trades Trades for signed orders.\n @param interactions Smart contract interactions split into three\n separate lists to be run before the settlement, during the settlement\n and after the settlement respectively." - }, - "functionSelector": "13d79a0b", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 15822, - "kind": "modifierInvocation", - "modifierName": { - "id": 15821, - "name": "nonReentrant", - "nameLocations": [ - "5261:12:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18802, - "src": "5261:12:56" - }, - "nodeType": "ModifierInvocation", - "src": "5261:12:56" - }, - { - "id": 15824, - "kind": "modifierInvocation", - "modifierName": { - "id": 15823, - "name": "onlySolver", - "nameLocations": [ - "5274:10:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 15785, - "src": "5274:10:56" - }, - "nodeType": "ModifierInvocation", - "src": "5274:10:56" - } - ], - "name": "settle", - "nameLocation": "5063:6:56", - "parameters": { - "id": 15820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15806, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "5097:6:56", - "nodeType": "VariableDeclaration", - "scope": 15878, - "src": "5079:24:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "id": 15804, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15803, - "name": "IERC20", - "nameLocations": [ - "5079:6:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "5079:6:56" - }, - "referencedDeclaration": 670, - "src": "5079:6:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "id": 15805, - "nodeType": "ArrayTypeName", - "src": "5079:8:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15809, - "mutability": "mutable", - "name": "clearingPrices", - "nameLocation": "5132:14:56", - "nodeType": "VariableDeclaration", - "scope": 15878, - "src": "5113:33:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 15807, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5113:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 15808, - "nodeType": "ArrayTypeName", - "src": "5113:9:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15813, - "mutability": "mutable", - "name": "trades", - "nameLocation": "5182:6:56", - "nodeType": "VariableDeclaration", - "scope": 15878, - "src": "5156:32:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17352_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Trade.Data[]" - }, - "typeName": { - "baseType": { - "id": 15811, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15810, - "name": "GPv2Trade.Data", - "nameLocations": [ - "5156:9:56", - "5166:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17352, - "src": "5156:14:56" - }, - "referencedDeclaration": 17352, - "src": "5156:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_storage_ptr", - "typeString": "struct GPv2Trade.Data" - } - }, - "id": 15812, - "nodeType": "ArrayTypeName", - "src": "5156:16:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17352_storage_$dyn_storage_ptr", - "typeString": "struct GPv2Trade.Data[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15819, - "mutability": "mutable", - "name": "interactions", - "nameLocation": "5233:12:56", - "nodeType": "VariableDeclaration", - "scope": 15878, - "src": "5198:47:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr_$3_calldata_ptr", - "typeString": "struct GPv2Interaction.Data[][3]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 15815, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15814, - "name": "GPv2Interaction.Data", - "nameLocations": [ - "5198:15:56", - "5214:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17043, - "src": "5198:20:56" - }, - "referencedDeclaration": 17043, - "src": "5198:20:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17043_storage_ptr", - "typeString": "struct GPv2Interaction.Data" - } - }, - "id": 15816, - "nodeType": "ArrayTypeName", - "src": "5198:22:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17043_storage_$dyn_storage_ptr", - "typeString": "struct GPv2Interaction.Data[]" - } - }, - "id": 15818, - "length": { - "hexValue": "33", - "id": 15817, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5221:1:56", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "nodeType": "ArrayTypeName", - "src": "5198:25:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_struct$_Data_$17043_storage_$dyn_storage_$3_storage_ptr", - "typeString": "struct GPv2Interaction.Data[][3]" - } - }, - "visibility": "internal" - } - ], - "src": "5069:182:56" - }, - "returnParameters": { - "id": 15825, - "nodeType": "ParameterList", - "parameters": [], - "src": "5285:0:56" - }, - "scope": 16749, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 16202, - "nodeType": "FunctionDefinition", - "src": "6269:3614:56", - "nodes": [], - "body": { - "id": 16201, - "nodeType": "Block", - "src": "6442:3441:56", - "nodes": [], - "statements": [ - { - "assignments": [ - 15899 - ], - "declarations": [ - { - "constant": false, - "id": 15899, - "mutability": "mutable", - "name": "recoveredOrder", - "nameLocation": "6474:14:56", - "nodeType": "VariableDeclaration", - "scope": 16201, - "src": "6452:36:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder" - }, - "typeName": { - "id": 15898, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15897, - "name": "RecoveredOrder", - "nameLocations": [ - "6452:14:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18242, - "src": "6452:14:56" - }, - "referencedDeclaration": 18242, - "src": "6452:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_storage_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder" - } - }, - "visibility": "internal" - } - ], - "id": 15902, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 15900, - "name": "allocateRecoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18378, - "src": "6491:22:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_RecoveredOrder_$18242_memory_ptr_$", - "typeString": "function () pure returns (struct GPv2Signing.RecoveredOrder memory)" - } - }, - "id": 15901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6491:24:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6452:63:56" - }, - { - "assignments": [ - 15907 - ], - "declarations": [ - { - "constant": false, - "id": 15907, - "mutability": "mutable", - "name": "order", - "nameLocation": "6547:5:56", - "nodeType": "VariableDeclaration", - "scope": 16201, - "src": "6525:27:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data" - }, - "typeName": { - "id": 15906, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15905, - "name": "GPv2Order.Data", - "nameLocations": [ - "6525:9:56", - "6535:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "6525:14:56" - }, - "referencedDeclaration": 17121, - "src": "6525:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", - "typeString": "struct GPv2Order.Data" - } - }, - "visibility": "internal" - } - ], - "id": 15910, - "initialValue": { - "expression": { - "id": 15908, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15899, - "src": "6555:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "id": 15909, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6570:4:56", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 18235, - "src": "6555:19:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6525:49:56" - }, - { - "expression": { - "arguments": [ - { - "id": 15912, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15899, - "src": "6606:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - { - "id": 15913, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15887, - "src": "6622:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[] calldata" - } - }, - { - "id": 15914, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15890, - "src": "6630:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[] calldata" - }, - { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - ], - "id": 15911, - "name": "recoverOrderFromTrade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18448, - "src": "6584:21:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_RecoveredOrder_$18242_memory_ptr_$_t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr_$_t_struct$_Data_$17352_calldata_ptr_$returns$__$", - "typeString": "function (struct GPv2Signing.RecoveredOrder memory,contract IERC20[] calldata,struct GPv2Trade.Data calldata) view" - } - }, - "id": 15915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6584:52:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 15916, - "nodeType": "ExpressionStatement", - "src": "6584:52:56" - }, - { - "assignments": [ - 15921 - ], - "declarations": [ - { - "constant": false, - "id": 15921, - "mutability": "mutable", - "name": "kind", - "nameLocation": "6663:4:56", - "nodeType": "VariableDeclaration", - "scope": 16201, - "src": "6647:20:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_SwapKind_$16931", - "typeString": "enum IVault.SwapKind" - }, - "typeName": { - "id": 15920, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15919, - "name": "IVault.SwapKind", - "nameLocations": [ - "6647:6:56", - "6654:8:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 16931, - "src": "6647:15:56" - }, - "referencedDeclaration": 16931, - "src": "6647:15:56", - "typeDescriptions": { - "typeIdentifier": "t_enum$_SwapKind_$16931", - "typeString": "enum IVault.SwapKind" - } - }, - "visibility": "internal" - } - ], - "id": 15934, - "initialValue": { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 15926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 15922, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "6670:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 15923, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6676:4:56", - "memberName": "kind", - "nodeType": "MemberAccess", - "referencedDeclaration": 17114, - "src": "6670:10:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 15924, - "name": "GPv2Order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "6684:9:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", - "typeString": "type(library GPv2Order)" - } - }, - "id": 15925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6694:9:56", - "memberName": "KIND_SELL", - "nodeType": "MemberAccess", - "referencedDeclaration": 17129, - "src": "6684:19:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "6670:33:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "expression": { - "expression": { - "id": 15930, - "name": "IVault", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17010, - "src": "6757:6:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IVault_$17010_$", - "typeString": "type(contract IVault)" - } - }, - "id": 15931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6764:8:56", - "memberName": "SwapKind", - "nodeType": "MemberAccess", - "referencedDeclaration": 16931, - "src": "6757:15:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_SwapKind_$16931_$", - "typeString": "type(enum IVault.SwapKind)" - } - }, - "id": 15932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6773:9:56", - "memberName": "GIVEN_OUT", - "nodeType": "MemberAccess", - "referencedDeclaration": 16930, - "src": "6757:25:56", - "typeDescriptions": { - "typeIdentifier": "t_enum$_SwapKind_$16931", - "typeString": "enum IVault.SwapKind" - } - }, - "id": 15933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6670:112:56", - "trueExpression": { - "expression": { - "expression": { - "id": 15927, - "name": "IVault", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17010, - "src": "6718:6:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IVault_$17010_$", - "typeString": "type(contract IVault)" - } - }, - "id": 15928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6725:8:56", - "memberName": "SwapKind", - "nodeType": "MemberAccess", - "referencedDeclaration": 16931, - "src": "6718:15:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_SwapKind_$16931_$", - "typeString": "type(enum IVault.SwapKind)" - } - }, - "id": 15929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6734:8:56", - "memberName": "GIVEN_IN", - "nodeType": "MemberAccess", - "referencedDeclaration": 16929, - "src": "6718:24:56", - "typeDescriptions": { - "typeIdentifier": "t_enum$_SwapKind_$16931", - "typeString": "enum IVault.SwapKind" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_enum$_SwapKind_$16931", - "typeString": "enum IVault.SwapKind" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6647:135:56" - }, - { - "assignments": [ - 15939 - ], - "declarations": [ - { - "constant": false, - "id": 15939, - "mutability": "mutable", - "name": "funds", - "nameLocation": "6822:5:56", - "nodeType": "VariableDeclaration", - "scope": 16201, - "src": "6793:34:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FundManagement_$17009_memory_ptr", - "typeString": "struct IVault.FundManagement" - }, - "typeName": { - "id": 15938, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15937, - "name": "IVault.FundManagement", - "nameLocations": [ - "6793:6:56", - "6800:14:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17009, - "src": "6793:21:56" - }, - "referencedDeclaration": 17009, - "src": "6793:21:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FundManagement_$17009_storage_ptr", - "typeString": "struct IVault.FundManagement" - } - }, - "visibility": "internal" - } - ], - "id": 15940, - "nodeType": "VariableDeclarationStatement", - "src": "6793:34:56" - }, - { - "expression": { - "id": 15946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 15941, - "name": "funds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15939, - "src": "6837:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FundManagement_$17009_memory_ptr", - "typeString": "struct IVault.FundManagement memory" - } - }, - "id": 15943, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "6843:6:56", - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 17002, - "src": "6837:12:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 15944, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15899, - "src": "6852:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "id": 15945, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6867:5:56", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 18239, - "src": "6852:20:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6837:35:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 15947, - "nodeType": "ExpressionStatement", - "src": "6837:35:56" - }, - { - "expression": { - "id": 15956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 15948, - "name": "funds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15939, - "src": "6882:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FundManagement_$17009_memory_ptr", - "typeString": "struct IVault.FundManagement memory" - } - }, - "id": 15950, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "6888:19:56", - "memberName": "fromInternalBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 17004, - "src": "6882:25:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 15955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 15951, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "6922:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 15952, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6928:16:56", - "memberName": "sellTokenBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 17118, - "src": "6922:22:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 15953, - "name": "GPv2Order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "6948:9:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", - "typeString": "type(library GPv2Order)" - } - }, - "id": 15954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6958:16:56", - "memberName": "BALANCE_INTERNAL", - "nodeType": "MemberAccess", - "referencedDeclaration": 17145, - "src": "6948:26:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "6922:52:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6882:92:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 15957, - "nodeType": "ExpressionStatement", - "src": "6882:92:56" - }, - { - "expression": { - "id": 15966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 15958, - "name": "funds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15939, - "src": "6984:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FundManagement_$17009_memory_ptr", - "typeString": "struct IVault.FundManagement memory" - } - }, - "id": 15960, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "6990:9:56", - "memberName": "recipient", - "nodeType": "MemberAccess", - "referencedDeclaration": 17006, - "src": "6984:15:56", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 15963, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15899, - "src": "7010:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "id": 15964, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7025:8:56", - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 18241, - "src": "7010:23:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 15962, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7002:8:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 15961, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7002:8:56", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 15965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7002:32:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6984:50:56", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 15967, - "nodeType": "ExpressionStatement", - "src": "6984:50:56" - }, - { - "expression": { - "id": 15976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 15968, - "name": "funds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15939, - "src": "7044:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FundManagement_$17009_memory_ptr", - "typeString": "struct IVault.FundManagement memory" - } - }, - "id": 15970, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "7050:17:56", - "memberName": "toInternalBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 17008, - "src": "7044:23:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 15975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 15971, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "7082:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 15972, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7088:15:56", - "memberName": "buyTokenBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 17120, - "src": "7082:21:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 15973, - "name": "GPv2Order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "7107:9:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", - "typeString": "type(library GPv2Order)" - } - }, - "id": 15974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7117:16:56", - "memberName": "BALANCE_INTERNAL", - "nodeType": "MemberAccess", - "referencedDeclaration": 17145, - "src": "7107:26:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "7082:51:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7044:89:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 15977, - "nodeType": "ExpressionStatement", - "src": "7044:89:56" - }, - { - "assignments": [ - 15982 - ], - "declarations": [ - { - "constant": false, - "id": 15982, - "mutability": "mutable", - "name": "limits", - "nameLocation": "7160:6:56", - "nodeType": "VariableDeclaration", - "scope": 16201, - "src": "7144:22:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[]" - }, - "typeName": { - "baseType": { - "id": 15980, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "7144:6:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 15981, - "nodeType": "ArrayTypeName", - "src": "7144:8:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", - "typeString": "int256[]" - } - }, - "visibility": "internal" - } - ], - "id": 15989, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 15986, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15887, - "src": "7182:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[] calldata" - } - }, - "id": 15987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7189:6:56", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "7182:13:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 15985, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "7169:12:56", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (int256[] memory)" - }, - "typeName": { - "baseType": { - "id": 15983, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "7173:6:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 15984, - "nodeType": "ArrayTypeName", - "src": "7173:8:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", - "typeString": "int256[]" - } - } - }, - "id": 15988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7169:27:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7144:52:56" - }, - { - "assignments": [ - 15991 - ], - "declarations": [ - { - "constant": false, - "id": 15991, - "mutability": "mutable", - "name": "limitAmount", - "nameLocation": "7214:11:56", - "nodeType": "VariableDeclaration", - "scope": 16201, - "src": "7206:19:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7206:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 15994, - "initialValue": { - "expression": { - "id": 15992, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15890, - "src": "7228:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - }, - "id": 15993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7234:14:56", - "memberName": "executedAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17349, - "src": "7228:20:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7206:42:56" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 15999, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 15995, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "7459:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 15996, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7465:4:56", - "memberName": "kind", - "nodeType": "MemberAccess", - "referencedDeclaration": 17114, - "src": "7459:10:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 15997, - "name": "GPv2Order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "7473:9:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", - "typeString": "type(library GPv2Order)" - } - }, - "id": 15998, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7483:9:56", - "memberName": "KIND_SELL", - "nodeType": "MemberAccess", - "referencedDeclaration": 17129, - "src": "7473:19:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "7459:33:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 16057, - "nodeType": "Block", - "src": "7726:227:56", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 16030, - "name": "limitAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15991, - "src": "7748:11:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "expression": { - "id": 16031, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "7763:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16032, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7769:10:56", - "memberName": "sellAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17104, - "src": "7763:16:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7748:31:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a206c696d697420746f6f2068696768", - "id": 16034, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7781:22:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7e7327b040a67aa39c391f7ae9a9b73301c25abdd205407243f64345cd00e5be", - "typeString": "literal_string \"GPv2: limit too high\"" - }, - "value": "GPv2: limit too high" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7e7327b040a67aa39c391f7ae9a9b73301c25abdd205407243f64345cd00e5be", - "typeString": "literal_string \"GPv2: limit too high\"" - } - ], - "id": 16029, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7740:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7740:64:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16036, - "nodeType": "ExpressionStatement", - "src": "7740:64:56" - }, - { - "expression": { - "id": 16044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 16037, - "name": "limits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15982, - "src": "7818:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[] memory" - } - }, - "id": 16040, - "indexExpression": { - "expression": { - "id": 16038, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15890, - "src": "7825:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - }, - "id": 16039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7831:14:56", - "memberName": "sellTokenIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 17331, - "src": "7825:20:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7818:28:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 16041, - "name": "limitAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15991, - "src": "7849:11:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7861:8:56", - "memberName": "toInt256", - "nodeType": "MemberAccess", - "referencedDeclaration": 18078, - "src": "7849:20:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$attached_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (int256)" - } - }, - "id": 16043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7849:22:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "7818:53:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 16045, - "nodeType": "ExpressionStatement", - "src": "7818:53:56" - }, - { - "expression": { - "id": 16055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 16046, - "name": "limits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15982, - "src": "7885:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[] memory" - } - }, - "id": 16049, - "indexExpression": { - "expression": { - "id": 16047, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15890, - "src": "7892:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - }, - "id": 16048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7898:13:56", - "memberName": "buyTokenIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 17333, - "src": "7892:19:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7885:27:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 16054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7915:27:56", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 16050, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "7916:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16051, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7922:9:56", - "memberName": "buyAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17106, - "src": "7916:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7932:8:56", - "memberName": "toInt256", - "nodeType": "MemberAccess", - "referencedDeclaration": 18078, - "src": "7916:24:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$attached_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (int256)" - } - }, - "id": 16053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7916:26:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "7885:57:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 16056, - "nodeType": "ExpressionStatement", - "src": "7885:57:56" - } - ] - }, - "id": 16058, - "nodeType": "IfStatement", - "src": "7455:498:56", - "trueBody": { - "id": 16028, - "nodeType": "Block", - "src": "7494:226:56", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 16001, - "name": "limitAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15991, - "src": "7516:11:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "expression": { - "id": 16002, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "7531:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16003, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7537:9:56", - "memberName": "buyAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17106, - "src": "7531:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7516:30:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a206c696d697420746f6f206c6f77", - "id": 16005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7548:21:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9f09a0ef59bb95e07e5628ac91b4ef700b55d2bd4fb8704447ac0fa02d5a13dd", - "typeString": "literal_string \"GPv2: limit too low\"" - }, - "value": "GPv2: limit too low" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9f09a0ef59bb95e07e5628ac91b4ef700b55d2bd4fb8704447ac0fa02d5a13dd", - "typeString": "literal_string \"GPv2: limit too low\"" - } - ], - "id": 16000, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7508:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7508:62:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16007, - "nodeType": "ExpressionStatement", - "src": "7508:62:56" - }, - { - "expression": { - "id": 16016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 16008, - "name": "limits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15982, - "src": "7584:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[] memory" - } - }, - "id": 16011, - "indexExpression": { - "expression": { - "id": 16009, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15890, - "src": "7591:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - }, - "id": 16010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7597:14:56", - "memberName": "sellTokenIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 17331, - "src": "7591:20:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7584:28:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "expression": { - "id": 16012, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "7615:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16013, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7621:10:56", - "memberName": "sellAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17104, - "src": "7615:16:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7632:8:56", - "memberName": "toInt256", - "nodeType": "MemberAccess", - "referencedDeclaration": 18078, - "src": "7615:25:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$attached_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (int256)" - } - }, - "id": 16015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7615:27:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "7584:58:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 16017, - "nodeType": "ExpressionStatement", - "src": "7584:58:56" - }, - { - "expression": { - "id": 16026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 16018, - "name": "limits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15982, - "src": "7656:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[] memory" - } - }, - "id": 16021, - "indexExpression": { - "expression": { - "id": 16019, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15890, - "src": "7663:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - }, - "id": 16020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7669:13:56", - "memberName": "buyTokenIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 17333, - "src": "7663:19:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7656:27:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 16025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "7686:23:56", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 16022, - "name": "limitAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15991, - "src": "7687:11:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7699:8:56", - "memberName": "toInt256", - "nodeType": "MemberAccess", - "referencedDeclaration": 18078, - "src": "7687:20:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$attached_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (int256)" - } - }, - "id": 16024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7687:22:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "7656:53:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 16027, - "nodeType": "ExpressionStatement", - "src": "7656:53:56" - } - ] - } - }, - { - "assignments": [ - 16063 - ], - "declarations": [ - { - "constant": false, - "id": 16063, - "mutability": "mutable", - "name": "feeTransfer", - "nameLocation": "7988:11:56", - "nodeType": "VariableDeclaration", - "scope": 16201, - "src": "7963:36:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data" - }, - "typeName": { - "id": 16062, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16061, - "name": "GPv2Transfer.Data", - "nameLocations": [ - "7963:12:56", - "7976:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17570, - "src": "7963:17:56" - }, - "referencedDeclaration": 17570, - "src": "7963:17:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_storage_ptr", - "typeString": "struct GPv2Transfer.Data" - } - }, - "visibility": "internal" - } - ], - "id": 16064, - "nodeType": "VariableDeclarationStatement", - "src": "7963:36:56" - }, - { - "expression": { - "id": 16070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16065, - "name": "feeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16063, - "src": "8009:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16067, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "8021:7:56", - "memberName": "account", - "nodeType": "MemberAccess", - "referencedDeclaration": 17562, - "src": "8009:19:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16068, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15899, - "src": "8031:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "id": 16069, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8046:5:56", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 18239, - "src": "8031:20:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8009:42:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 16071, - "nodeType": "ExpressionStatement", - "src": "8009:42:56" - }, - { - "expression": { - "id": 16077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16072, - "name": "feeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16063, - "src": "8061:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16074, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "8073:5:56", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 17565, - "src": "8061:17:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16075, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "8081:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16076, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8087:9:56", - "memberName": "sellToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 17097, - "src": "8081:15:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "src": "8061:35:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "id": 16078, - "nodeType": "ExpressionStatement", - "src": "8061:35:56" - }, - { - "expression": { - "id": 16084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16079, - "name": "feeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16063, - "src": "8106:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16081, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "8118:6:56", - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17567, - "src": "8106:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16082, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "8127:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16083, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8133:9:56", - "memberName": "feeAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17112, - "src": "8127:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8106:36:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16085, - "nodeType": "ExpressionStatement", - "src": "8106:36:56" - }, - { - "expression": { - "id": 16091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16086, - "name": "feeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16063, - "src": "8152:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16088, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "8164:7:56", - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 17569, - "src": "8152:19:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16089, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "8174:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16090, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8180:16:56", - "memberName": "sellTokenBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 17118, - "src": "8174:22:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "8152:44:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 16092, - "nodeType": "ExpressionStatement", - "src": "8152:44:56" - }, - { - "assignments": [ - 16097 - ], - "declarations": [ - { - "constant": false, - "id": 16097, - "mutability": "mutable", - "name": "tokenDeltas", - "nameLocation": "8223:11:56", - "nodeType": "VariableDeclaration", - "scope": 16201, - "src": "8207:27:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[]" - }, - "typeName": { - "baseType": { - "id": 16095, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "8207:6:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 16096, - "nodeType": "ArrayTypeName", - "src": "8207:8:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", - "typeString": "int256[]" - } - }, - "visibility": "internal" - } - ], - "id": 16109, - "initialValue": { - "arguments": [ - { - "id": 16100, - "name": "kind", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15921, - "src": "8280:4:56", - "typeDescriptions": { - "typeIdentifier": "t_enum$_SwapKind_$16931", - "typeString": "enum IVault.SwapKind" - } - }, - { - "id": 16101, - "name": "swaps", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15883, - "src": "8298:5:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_BatchSwapStep_$17000_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IVault.BatchSwapStep calldata[] calldata" - } - }, - { - "id": 16102, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15887, - "src": "8317:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[] calldata" - } - }, - { - "id": 16103, - "name": "funds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15939, - "src": "8337:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_FundManagement_$17009_memory_ptr", - "typeString": "struct IVault.FundManagement memory" - } - }, - { - "id": 16104, - "name": "limits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15982, - "src": "8356:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[] memory" - } - }, - { - "expression": { - "id": 16105, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "8487:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16106, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8493:7:56", - "memberName": "validTo", - "nodeType": "MemberAccess", - "referencedDeclaration": 17108, - "src": "8487:13:56", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 16107, - "name": "feeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16063, - "src": "8514:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_SwapKind_$16931", - "typeString": "enum IVault.SwapKind" - }, - { - "typeIdentifier": "t_array$_t_struct$_BatchSwapStep_$17000_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IVault.BatchSwapStep calldata[] calldata" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[] calldata" - }, - { - "typeIdentifier": "t_struct$_FundManagement_$17009_memory_ptr", - "typeString": "struct IVault.FundManagement memory" - }, - { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[] memory" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - ], - "expression": { - "id": 16098, - "name": "vaultRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15696, - "src": "8237:12:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2VaultRelayer_$16867", - "typeString": "contract GPv2VaultRelayer" - } - }, - "id": 16099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8250:16:56", - "memberName": "batchSwapWithFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 16866, - "src": "8237:29:56", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_enum$_SwapKind_$16931_$_t_array$_t_struct$_BatchSwapStep_$17000_memory_ptr_$dyn_memory_ptr_$_t_array$_t_contract$_IERC20_$670_$dyn_memory_ptr_$_t_struct$_FundManagement_$17009_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$_t_uint256_$_t_struct$_Data_$17570_memory_ptr_$returns$_t_array$_t_int256_$dyn_memory_ptr_$", - "typeString": "function (enum IVault.SwapKind,struct IVault.BatchSwapStep memory[] memory,contract IERC20[] memory,struct IVault.FundManagement memory,int256[] memory,uint256,struct GPv2Transfer.Data memory) external returns (int256[] memory)" - } - }, - "id": 16108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8237:298:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8207:328:56" - }, - { - "assignments": [ - 16111 - ], - "declarations": [ - { - "constant": false, - "id": 16111, - "mutability": "mutable", - "name": "orderUid", - "nameLocation": "8559:8:56", - "nodeType": "VariableDeclaration", - "scope": 16201, - "src": "8546:21:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 16110, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8546:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 16114, - "initialValue": { - "expression": { - "id": 16112, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15899, - "src": "8570:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "id": 16113, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8585:3:56", - "memberName": "uid", - "nodeType": "MemberAccess", - "referencedDeclaration": 18237, - "src": "8570:18:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8546:42:56" - }, - { - "assignments": [ - 16116 - ], - "declarations": [ - { - "constant": false, - "id": 16116, - "mutability": "mutable", - "name": "executedSellAmount", - "nameLocation": "8606:18:56", - "nodeType": "VariableDeclaration", - "scope": 16201, - "src": "8598:26:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16115, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8598:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 16123, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "baseExpression": { - "id": 16117, - "name": "tokenDeltas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16097, - "src": "8627:11:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[] memory" - } - }, - "id": 16120, - "indexExpression": { - "expression": { - "id": 16118, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15890, - "src": "8639:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - }, - "id": 16119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8645:14:56", - "memberName": "sellTokenIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 17331, - "src": "8639:20:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8627:33:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 16121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8674:9:56", - "memberName": "toUint256", - "nodeType": "MemberAccess", - "referencedDeclaration": 18050, - "src": "8627:56:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$attached_to$_t_int256_$", - "typeString": "function (int256) pure returns (uint256)" - } - }, - "id": 16122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8627:58:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8598:87:56" - }, - { - "assignments": [ - 16125 - ], - "declarations": [ - { - "constant": false, - "id": 16125, - "mutability": "mutable", - "name": "executedBuyAmount", - "nameLocation": "8703:17:56", - "nodeType": "VariableDeclaration", - "scope": 16201, - "src": "8695:25:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16124, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8695:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 16134, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "components": [ - { - "id": 16130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "8724:33:56", - "subExpression": { - "baseExpression": { - "id": 16126, - "name": "tokenDeltas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16097, - "src": "8725:11:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", - "typeString": "int256[] memory" - } - }, - "id": 16129, - "indexExpression": { - "expression": { - "id": 16127, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15890, - "src": "8737:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - }, - "id": 16128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8743:13:56", - "memberName": "buyTokenIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 17333, - "src": "8737:19:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8725:32:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "id": 16131, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8723:35:56", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 16132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8772:9:56", - "memberName": "toUint256", - "nodeType": "MemberAccess", - "referencedDeclaration": 18050, - "src": "8723:58:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$attached_to$_t_int256_$", - "typeString": "function (int256) pure returns (uint256)" - } - }, - "id": 16133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8723:60:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8695:88:56" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 16136, - "name": "filledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15701, - "src": "9087:12:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - } - }, - "id": 16138, - "indexExpression": { - "id": 16137, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16111, - "src": "9100:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9087:22:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 16139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9113:1:56", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9087:27:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a206f726465722066696c6c6564", - "id": 16141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9116:20:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_822aeaf080e48a01ee26697bc2ddeb4648272e8849b1d52f224cc71ee66fee7c", - "typeString": "literal_string \"GPv2: order filled\"" - }, - "value": "GPv2: order filled" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_822aeaf080e48a01ee26697bc2ddeb4648272e8849b1d52f224cc71ee66fee7c", - "typeString": "literal_string \"GPv2: order filled\"" - } - ], - "id": 16135, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9079:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9079:58:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16143, - "nodeType": "ExpressionStatement", - "src": "9079:58:56" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 16148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 16144, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "9151:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16145, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9157:4:56", - "memberName": "kind", - "nodeType": "MemberAccess", - "referencedDeclaration": 17114, - "src": "9151:10:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 16146, - "name": "GPv2Order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "9165:9:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", - "typeString": "type(library GPv2Order)" - } - }, - "id": 16147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9175:9:56", - "memberName": "KIND_SELL", - "nodeType": "MemberAccess", - "referencedDeclaration": 17129, - "src": "9165:19:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9151:33:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 16180, - "nodeType": "Block", - "src": "9400:204:56", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 16166, - "name": "executedBuyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16125, - "src": "9439:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 16167, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "9460:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16168, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9466:9:56", - "memberName": "buyAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17106, - "src": "9460:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9439:36:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a2062757920616d6f756e74206e6f7420726573706563746564", - "id": 16170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9493:32:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4a220cd03c4b71f8c857288e3de8c3ec6a1c1dba13bee4c2a772d47d00982f49", - "typeString": "literal_string \"GPv2: buy amount not respected\"" - }, - "value": "GPv2: buy amount not respected" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4a220cd03c4b71f8c857288e3de8c3ec6a1c1dba13bee4c2a772d47d00982f49", - "typeString": "literal_string \"GPv2: buy amount not respected\"" - } - ], - "id": 16165, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9414:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9414:125:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16172, - "nodeType": "ExpressionStatement", - "src": "9414:125:56" - }, - { - "expression": { - "id": 16178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 16173, - "name": "filledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15701, - "src": "9553:12:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - } - }, - "id": 16175, - "indexExpression": { - "id": 16174, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16111, - "src": "9566:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9553:22:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16176, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "9578:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16177, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9584:9:56", - "memberName": "buyAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17106, - "src": "9578:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9553:40:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16179, - "nodeType": "ExpressionStatement", - "src": "9553:40:56" - } - ] - }, - "id": 16181, - "nodeType": "IfStatement", - "src": "9147:457:56", - "trueBody": { - "id": 16164, - "nodeType": "Block", - "src": "9186:208:56", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 16150, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16116, - "src": "9225:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 16151, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "9247:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16152, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9253:10:56", - "memberName": "sellAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17104, - "src": "9247:16:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9225:38:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a2073656c6c20616d6f756e74206e6f7420726573706563746564", - "id": 16154, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9281:33:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4a12478c62dd60441999deb028ee2bff3af076c1472b9dbb0931f8f19e55ee2e", - "typeString": "literal_string \"GPv2: sell amount not respected\"" - }, - "value": "GPv2: sell amount not respected" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4a12478c62dd60441999deb028ee2bff3af076c1472b9dbb0931f8f19e55ee2e", - "typeString": "literal_string \"GPv2: sell amount not respected\"" - } - ], - "id": 16149, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9200:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9200:128:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16156, - "nodeType": "ExpressionStatement", - "src": "9200:128:56" - }, - { - "expression": { - "id": 16162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 16157, - "name": "filledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15701, - "src": "9342:12:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - } - }, - "id": 16159, - "indexExpression": { - "id": 16158, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16111, - "src": "9355:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9342:22:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16160, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "9367:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16161, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9373:10:56", - "memberName": "sellAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17104, - "src": "9367:16:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9342:41:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16163, - "nodeType": "ExpressionStatement", - "src": "9342:41:56" - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 16183, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15899, - "src": "9638:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "id": 16184, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9653:5:56", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 18239, - "src": "9638:20:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 16185, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "9672:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16186, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9678:9:56", - "memberName": "sellToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 17097, - "src": "9672:15:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - { - "expression": { - "id": 16187, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "9701:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16188, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9707:8:56", - "memberName": "buyToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 17100, - "src": "9701:14:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - { - "id": 16189, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16116, - "src": "9729:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 16190, - "name": "executedBuyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16125, - "src": "9761:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 16191, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15907, - "src": "9792:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16192, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9798:9:56", - "memberName": "feeAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17112, - "src": "9792:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 16193, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16111, - "src": "9821:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 16182, - "name": "Trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15720, - "src": "9619:5:56", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_contract$_IERC20_$670_$_t_contract$_IERC20_$670_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,contract IERC20,contract IERC20,uint256,uint256,uint256,bytes memory)" - } - }, - "id": 16194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9619:220:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16195, - "nodeType": "EmitStatement", - "src": "9614:225:56" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 16197, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9865:3:56", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 16198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9869:6:56", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "9865:10:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 16196, - "name": "Settlement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15734, - "src": "9854:10:56", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 16199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9854:22:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16200, - "nodeType": "EmitStatement", - "src": "9849:27:56" - } - ] - }, - "documentation": { - "id": 15879, - "nodeType": "StructuredDocumentation", - "src": "5765:499:56", - "text": "@dev Settle an order directly against Balancer V2 pools.\n @param swaps The Balancer V2 swap steps to use for trading.\n @param tokens An array of ERC20 tokens to be traded in the settlement.\n Swaps and the trade encode tokens as indices into this array.\n @param trade The trade to match directly against Balancer liquidity. The\n order will always be fully executed, so the trade's `executedAmount`\n field is used to represent a swap limit amount." - }, - "functionSelector": "845a101f", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 15893, - "kind": "modifierInvocation", - "modifierName": { - "id": 15892, - "name": "nonReentrant", - "nameLocations": [ - "6418:12:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18802, - "src": "6418:12:56" - }, - "nodeType": "ModifierInvocation", - "src": "6418:12:56" - }, - { - "id": 15895, - "kind": "modifierInvocation", - "modifierName": { - "id": 15894, - "name": "onlySolver", - "nameLocations": [ - "6431:10:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 15785, - "src": "6431:10:56" - }, - "nodeType": "ModifierInvocation", - "src": "6431:10:56" - } - ], - "name": "swap", - "nameLocation": "6278:4:56", - "parameters": { - "id": 15891, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 15883, - "mutability": "mutable", - "name": "swaps", - "nameLocation": "6324:5:56", - "nodeType": "VariableDeclaration", - "scope": 16202, - "src": "6292:37:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_BatchSwapStep_$17000_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IVault.BatchSwapStep[]" - }, - "typeName": { - "baseType": { - "id": 15881, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15880, - "name": "IVault.BatchSwapStep", - "nameLocations": [ - "6292:6:56", - "6299:13:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17000, - "src": "6292:20:56" - }, - "referencedDeclaration": 17000, - "src": "6292:20:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BatchSwapStep_$17000_storage_ptr", - "typeString": "struct IVault.BatchSwapStep" - } - }, - "id": 15882, - "nodeType": "ArrayTypeName", - "src": "6292:22:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_BatchSwapStep_$17000_storage_$dyn_storage_ptr", - "typeString": "struct IVault.BatchSwapStep[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15887, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "6357:6:56", - "nodeType": "VariableDeclaration", - "scope": 16202, - "src": "6339:24:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "id": 15885, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15884, - "name": "IERC20", - "nameLocations": [ - "6339:6:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "6339:6:56" - }, - "referencedDeclaration": 670, - "src": "6339:6:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "id": 15886, - "nodeType": "ArrayTypeName", - "src": "6339:8:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15890, - "mutability": "mutable", - "name": "trade", - "nameLocation": "6397:5:56", - "nodeType": "VariableDeclaration", - "scope": 16202, - "src": "6373:29:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data" - }, - "typeName": { - "id": 15889, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 15888, - "name": "GPv2Trade.Data", - "nameLocations": [ - "6373:9:56", - "6383:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17352, - "src": "6373:14:56" - }, - "referencedDeclaration": 17352, - "src": "6373:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_storage_ptr", - "typeString": "struct GPv2Trade.Data" - } - }, - "visibility": "internal" - } - ], - "src": "6282:126:56" - }, - "returnParameters": { - "id": 15896, - "nodeType": "ParameterList", - "parameters": [], - "src": "6442:0:56" - }, - "scope": 16749, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 16238, - "nodeType": "FunctionDefinition", - "src": "10234:303:56", - "nodes": [], - "body": { - "id": 16237, - "nodeType": "Block", - "src": "10293:244:56", - "nodes": [], - "statements": [ - { - "assignments": [ - null, - 16209, - null - ], - "declarations": [ - null, - { - "constant": false, - "id": 16209, - "mutability": "mutable", - "name": "owner", - "nameLocation": "10314:5:56", - "nodeType": "VariableDeclaration", - "scope": 16237, - "src": "10306:13:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 16208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - null - ], - "id": 16213, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 16210, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16205, - "src": "10325:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 16211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10334:21:56", - "memberName": "extractOrderUidParams", - "nodeType": "MemberAccess", - "referencedDeclaration": 17245, - "src": "10325:30:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bytes32_$_t_address_$_t_uint32_$attached_to$_t_bytes_calldata_ptr_$", - "typeString": "function (bytes calldata) pure returns (bytes32,address,uint32)" - } - }, - "id": 16212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10325:32:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bytes32_$_t_address_$_t_uint32_$", - "typeString": "tuple(bytes32,address,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10303:54:56" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 16218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 16215, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16209, - "src": "10375:5:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 16216, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "10384:3:56", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 16217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10388:6:56", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "10384:10:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10375:19:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a2063616c6c657220646f6573206e6f74206f776e206f72646572", - "id": 16219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10396:33:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_042b623cff00f6f3aeae2a0c14567f047ca00cbce1cfa7a10bfaa6c6b4ca6f86", - "typeString": "literal_string \"GPv2: caller does not own order\"" - }, - "value": "GPv2: caller does not own order" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_042b623cff00f6f3aeae2a0c14567f047ca00cbce1cfa7a10bfaa6c6b4ca6f86", - "typeString": "literal_string \"GPv2: caller does not own order\"" - } - ], - "id": 16214, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10367:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10367:63:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16221, - "nodeType": "ExpressionStatement", - "src": "10367:63:56" - }, - { - "expression": { - "id": 16230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 16222, - "name": "filledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15701, - "src": "10440:12:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - } - }, - "id": 16224, - "indexExpression": { - "id": 16223, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16205, - "src": "10453:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10440:22:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "arguments": [ - { - "id": 16227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10470:7:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 16226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10470:7:56", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - ], - "id": 16225, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "10465:4:56", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 16228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10465:13:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint256", - "typeString": "type(uint256)" - } - }, - "id": 16229, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "10479:3:56", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "10465:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10440:42:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16231, - "nodeType": "ExpressionStatement", - "src": "10440:42:56" - }, - { - "eventCall": { - "arguments": [ - { - "id": 16233, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16209, - "src": "10514:5:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 16234, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16205, - "src": "10521:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 16232, - "name": "OrderInvalidated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15741, - "src": "10497:16:56", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 16235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10497:33:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16236, - "nodeType": "EmitStatement", - "src": "10492:38:56" - } - ] - }, - "documentation": { - "id": 16203, - "nodeType": "StructuredDocumentation", - "src": "9889:340:56", - "text": "@dev Invalidate onchain an order that has been signed offline.\n @param orderUid The unique identifier of the order that is to be made\n invalid after calling this function. The user that created the order\n must be the the sender of this message. See [`extractOrderUidParams`]\n for details on orderUid." - }, - "functionSelector": "15337bc0", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invalidateOrder", - "nameLocation": "10243:15:56", - "parameters": { - "id": 16206, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16205, - "mutability": "mutable", - "name": "orderUid", - "nameLocation": "10274:8:56", - "nodeType": "VariableDeclaration", - "scope": 16238, - "src": "10259:23:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 16204, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10259:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "10258:25:56" - }, - "returnParameters": { - "id": 16207, - "nodeType": "ParameterList", - "parameters": [], - "src": "10293:0:56" - }, - "scope": 16749, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 16253, - "nodeType": "FunctionDefinition", - "src": "10802:164:56", - "nodes": [], - "body": { - "id": 16252, - "nodeType": "Block", - "src": "10908:58:56", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 16248, - "name": "filledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15701, - "src": "10935:12:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - } - }, - { - "id": 16249, - "name": "orderUids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16242, - "src": "10949:9:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - }, - { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - ], - "id": 16247, - "name": "freeOrderStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16748, - "src": "10918:16:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_bytes_memory_ptr_$_t_uint256_$_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$", - "typeString": "function (mapping(bytes memory => uint256),bytes calldata[] calldata)" - } - }, - "id": 16250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10918:41:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16251, - "nodeType": "ExpressionStatement", - "src": "10918:41:56" - } - ] - }, - "documentation": { - "id": 16239, - "nodeType": "StructuredDocumentation", - "src": "10543:254:56", - "text": "@dev Free storage from the filled amounts of **expired** orders to claim\n a gas refund. This method can only be called as an interaction.\n @param orderUids The unique identifiers of the expired order to free\n storage for." - }, - "functionSelector": "ed9f35ce", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 16245, - "kind": "modifierInvocation", - "modifierName": { - "id": 16244, - "name": "onlyInteraction", - "nameLocations": [ - "10888:15:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 15801, - "src": "10888:15:56" - }, - "nodeType": "ModifierInvocation", - "src": "10888:15:56" - } - ], - "name": "freeFilledAmountStorage", - "nameLocation": "10811:23:56", - "parameters": { - "id": 16243, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16242, - "mutability": "mutable", - "name": "orderUids", - "nameLocation": "10852:9:56", - "nodeType": "VariableDeclaration", - "scope": 16253, - "src": "10835:26:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 16240, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10835:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 16241, - "nodeType": "ArrayTypeName", - "src": "10835:7:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - } - ], - "src": "10834:28:56" - }, - "returnParameters": { - "id": 16246, - "nodeType": "ParameterList", - "parameters": [], - "src": "10908:0:56" - }, - "scope": 16749, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 16268, - "nodeType": "FunctionDefinition", - "src": "11231:164:56", - "nodes": [], - "body": { - "id": 16267, - "nodeType": "Block", - "src": "11337:58:56", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 16263, - "name": "preSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18282, - "src": "11364:12:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - } - }, - { - "id": 16264, - "name": "orderUids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16257, - "src": "11378:9:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - }, - { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - ], - "id": 16262, - "name": "freeOrderStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16748, - "src": "11347:16:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_bytes_memory_ptr_$_t_uint256_$_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$", - "typeString": "function (mapping(bytes memory => uint256),bytes calldata[] calldata)" - } - }, - "id": 16265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11347:41:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16266, - "nodeType": "ExpressionStatement", - "src": "11347:41:56" - } - ] - }, - "documentation": { - "id": 16254, - "nodeType": "StructuredDocumentation", - "src": "10972:254:56", - "text": "@dev Free storage from the pre signatures of **expired** orders to claim\n a gas refund. This method can only be called as an interaction.\n @param orderUids The unique identifiers of the expired order to free\n storage for." - }, - "functionSelector": "a2a7d51b", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 16260, - "kind": "modifierInvocation", - "modifierName": { - "id": 16259, - "name": "onlyInteraction", - "nameLocations": [ - "11317:15:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 15801, - "src": "11317:15:56" - }, - "nodeType": "ModifierInvocation", - "src": "11317:15:56" - } - ], - "name": "freePreSignatureStorage", - "nameLocation": "11240:23:56", - "parameters": { - "id": 16258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16257, - "mutability": "mutable", - "name": "orderUids", - "nameLocation": "11281:9:56", - "nodeType": "VariableDeclaration", - "scope": 16268, - "src": "11264:26:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 16255, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11264:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 16256, - "nodeType": "ArrayTypeName", - "src": "11264:7:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - } - ], - "src": "11263:28:56" - }, - "returnParameters": { - "id": 16261, - "nodeType": "ParameterList", - "parameters": [], - "src": "11337:0:56" - }, - "scope": 16749, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 16366, - "nodeType": "FunctionDefinition", - "src": "12005:994:56", - "nodes": [], - "body": { - "id": 16365, - "nodeType": "Block", - "src": "12315:684:56", - "nodes": [], - "statements": [ - { - "assignments": [ - 16293 - ], - "declarations": [ - { - "constant": false, - "id": 16293, - "mutability": "mutable", - "name": "recoveredOrder", - "nameLocation": "12347:14:56", - "nodeType": "VariableDeclaration", - "scope": 16365, - "src": "12325:36:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder" - }, - "typeName": { - "id": 16292, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16291, - "name": "RecoveredOrder", - "nameLocations": [ - "12325:14:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18242, - "src": "12325:14:56" - }, - "referencedDeclaration": 18242, - "src": "12325:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_storage_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder" - } - }, - "visibility": "internal" - } - ], - "id": 16296, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 16294, - "name": "allocateRecoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18378, - "src": "12364:22:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_RecoveredOrder_$18242_memory_ptr_$", - "typeString": "function () pure returns (struct GPv2Signing.RecoveredOrder memory)" - } - }, - "id": 16295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12364:24:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12325:63:56" - }, - { - "expression": { - "id": 16305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16297, - "name": "inTransfers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16285, - "src": "12399:11:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 16302, - "name": "trades", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16280, - "src": "12437:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17352_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata[] calldata" - } - }, - "id": 16303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12444:6:56", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "12437:13:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 16301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "12413:23:56", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct GPv2Transfer.Data memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 16299, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16298, - "name": "GPv2Transfer.Data", - "nameLocations": [ - "12417:12:56", - "12430:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17570, - "src": "12417:17:56" - }, - "referencedDeclaration": 17570, - "src": "12417:17:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_storage_ptr", - "typeString": "struct GPv2Transfer.Data" - } - }, - "id": 16300, - "nodeType": "ArrayTypeName", - "src": "12417:19:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_storage_$dyn_storage_ptr", - "typeString": "struct GPv2Transfer.Data[]" - } - } - }, - "id": 16304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12413:38:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - }, - "src": "12399:52:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - }, - "id": 16306, - "nodeType": "ExpressionStatement", - "src": "12399:52:56" - }, - { - "expression": { - "id": 16315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16307, - "name": "outTransfers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16289, - "src": "12461:12:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 16312, - "name": "trades", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16280, - "src": "12500:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17352_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata[] calldata" - } - }, - "id": 16313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12507:6:56", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "12500:13:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 16311, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "12476:23:56", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct GPv2Transfer.Data memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 16309, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16308, - "name": "GPv2Transfer.Data", - "nameLocations": [ - "12480:12:56", - "12493:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17570, - "src": "12480:17:56" - }, - "referencedDeclaration": 17570, - "src": "12480:17:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_storage_ptr", - "typeString": "struct GPv2Transfer.Data" - } - }, - "id": 16310, - "nodeType": "ArrayTypeName", - "src": "12480:19:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_storage_$dyn_storage_ptr", - "typeString": "struct GPv2Transfer.Data[]" - } - } - }, - "id": 16314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12476:38:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - }, - "src": "12461:53:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - }, - "id": 16316, - "nodeType": "ExpressionStatement", - "src": "12461:53:56" - }, - { - "body": { - "id": 16363, - "nodeType": "Block", - "src": "12569:424:56", - "statements": [ - { - "assignments": [ - 16332 - ], - "declarations": [ - { - "constant": false, - "id": 16332, - "mutability": "mutable", - "name": "trade", - "nameLocation": "12607:5:56", - "nodeType": "VariableDeclaration", - "scope": 16363, - "src": "12583:29:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data" - }, - "typeName": { - "id": 16331, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16330, - "name": "GPv2Trade.Data", - "nameLocations": [ - "12583:9:56", - "12593:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17352, - "src": "12583:14:56" - }, - "referencedDeclaration": 17352, - "src": "12583:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_storage_ptr", - "typeString": "struct GPv2Trade.Data" - } - }, - "visibility": "internal" - } - ], - "id": 16336, - "initialValue": { - "baseExpression": { - "id": 16333, - "name": "trades", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16280, - "src": "12615:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17352_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata[] calldata" - } - }, - "id": 16335, - "indexExpression": { - "id": 16334, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16318, - "src": "12622:1:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12615:9:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12583:41:56" - }, - { - "expression": { - "arguments": [ - { - "id": 16338, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16293, - "src": "12661:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - { - "id": 16339, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16273, - "src": "12677:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[] calldata" - } - }, - { - "id": 16340, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16332, - "src": "12685:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[] calldata" - }, - { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - ], - "id": 16337, - "name": "recoverOrderFromTrade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18448, - "src": "12639:21:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_RecoveredOrder_$18242_memory_ptr_$_t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr_$_t_struct$_Data_$17352_calldata_ptr_$returns$__$", - "typeString": "function (struct GPv2Signing.RecoveredOrder memory,contract IERC20[] calldata,struct GPv2Trade.Data calldata) view" - } - }, - "id": 16341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12639:52:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16342, - "nodeType": "ExpressionStatement", - "src": "12639:52:56" - }, - { - "expression": { - "arguments": [ - { - "id": 16344, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16293, - "src": "12744:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - { - "baseExpression": { - "id": 16345, - "name": "clearingPrices", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16276, - "src": "12776:14:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 16348, - "indexExpression": { - "expression": { - "id": 16346, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16332, - "src": "12791:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - }, - "id": 16347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12797:14:56", - "memberName": "sellTokenIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 17331, - "src": "12791:20:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12776:36:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 16349, - "name": "clearingPrices", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16276, - "src": "12830:14:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 16352, - "indexExpression": { - "expression": { - "id": 16350, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16332, - "src": "12845:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - }, - "id": 16351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12851:13:56", - "memberName": "buyTokenIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 17333, - "src": "12845:19:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12830:35:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 16353, - "name": "trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16332, - "src": "12883:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata" - } - }, - "id": 16354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12889:14:56", - "memberName": "executedAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17349, - "src": "12883:20:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "id": 16355, - "name": "inTransfers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16285, - "src": "12921:11:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - }, - "id": 16357, - "indexExpression": { - "id": 16356, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16318, - "src": "12933:1:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12921:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - { - "baseExpression": { - "id": 16358, - "name": "outTransfers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16289, - "src": "12953:12:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory[] memory" - } - }, - "id": 16360, - "indexExpression": { - "id": 16359, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16318, - "src": "12966:1:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12953:15:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - }, - { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - ], - "id": 16343, - "name": "computeTradeExecution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16639, - "src": "12705:21:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RecoveredOrder_$18242_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_Data_$17570_memory_ptr_$_t_struct$_Data_$17570_memory_ptr_$returns$__$", - "typeString": "function (struct GPv2Signing.RecoveredOrder memory,uint256,uint256,uint256,struct GPv2Transfer.Data memory,struct GPv2Transfer.Data memory)" - } - }, - "id": 16361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12705:277:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16362, - "nodeType": "ExpressionStatement", - "src": "12705:277:56" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 16321, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16318, - "src": "12545:1:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 16322, - "name": "trades", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16280, - "src": "12549:6:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17352_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Trade.Data calldata[] calldata" - } - }, - "id": 16323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12556:6:56", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "12549:13:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12545:17:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 16364, - "initializationExpression": { - "assignments": [ - 16318 - ], - "declarations": [ - { - "constant": false, - "id": 16318, - "mutability": "mutable", - "name": "i", - "nameLocation": "12538:1:56", - "nodeType": "VariableDeclaration", - "scope": 16364, - "src": "12530:9:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16317, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12530:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 16320, - "initialValue": { - "hexValue": "30", - "id": 16319, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12542:1:56", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12530:13:56" - }, - "loopExpression": { - "expression": { - "id": 16326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12564:3:56", - "subExpression": { - "id": 16325, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16318, - "src": "12564:1:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16327, - "nodeType": "ExpressionStatement", - "src": "12564:3:56" - }, - "nodeType": "ForStatement", - "src": "12525:468:56" - } - ] - }, - "documentation": { - "id": 16269, - "nodeType": "StructuredDocumentation", - "src": "11401:599:56", - "text": "@dev Process all trades one at a time returning the computed net in and\n out transfers for the trades.\n This method reverts if processing of any single trade fails. See\n [`computeTradeExecution`] for more details.\n @param tokens An array of ERC20 tokens to be traded in the settlement.\n @param clearingPrices An array of token clearing prices.\n @param trades Trades for signed orders.\n @return inTransfers Array of in transfers of executed sell amounts.\n @return outTransfers Array of out transfers of executed buy amounts." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "computeTradeExecutions", - "nameLocation": "12014:22:56", - "parameters": { - "id": 16281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16273, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "12064:6:56", - "nodeType": "VariableDeclaration", - "scope": 16366, - "src": "12046:24:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_calldata_ptr", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "id": 16271, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16270, - "name": "IERC20", - "nameLocations": [ - "12046:6:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "12046:6:56" - }, - "referencedDeclaration": 670, - "src": "12046:6:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "id": 16272, - "nodeType": "ArrayTypeName", - "src": "12046:8:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$670_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 16276, - "mutability": "mutable", - "name": "clearingPrices", - "nameLocation": "12099:14:56", - "nodeType": "VariableDeclaration", - "scope": 16366, - "src": "12080:33:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 16274, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12080:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16275, - "nodeType": "ArrayTypeName", - "src": "12080:9:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 16280, - "mutability": "mutable", - "name": "trades", - "nameLocation": "12149:6:56", - "nodeType": "VariableDeclaration", - "scope": 16366, - "src": "12123:32:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17352_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Trade.Data[]" - }, - "typeName": { - "baseType": { - "id": 16278, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16277, - "name": "GPv2Trade.Data", - "nameLocations": [ - "12123:9:56", - "12133:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17352, - "src": "12123:14:56" - }, - "referencedDeclaration": 17352, - "src": "12123:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17352_storage_ptr", - "typeString": "struct GPv2Trade.Data" - } - }, - "id": 16279, - "nodeType": "ArrayTypeName", - "src": "12123:16:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17352_storage_$dyn_storage_ptr", - "typeString": "struct GPv2Trade.Data[]" - } - }, - "visibility": "internal" - } - ], - "src": "12036:125:56" - }, - "returnParameters": { - "id": 16290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16285, - "mutability": "mutable", - "name": "inTransfers", - "nameLocation": "12236:11:56", - "nodeType": "VariableDeclaration", - "scope": 16366, - "src": "12209:38:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data[]" - }, - "typeName": { - "baseType": { - "id": 16283, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16282, - "name": "GPv2Transfer.Data", - "nameLocations": [ - "12209:12:56", - "12222:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17570, - "src": "12209:17:56" - }, - "referencedDeclaration": 17570, - "src": "12209:17:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_storage_ptr", - "typeString": "struct GPv2Transfer.Data" - } - }, - "id": 16284, - "nodeType": "ArrayTypeName", - "src": "12209:19:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_storage_$dyn_storage_ptr", - "typeString": "struct GPv2Transfer.Data[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 16289, - "mutability": "mutable", - "name": "outTransfers", - "nameLocation": "12288:12:56", - "nodeType": "VariableDeclaration", - "scope": 16366, - "src": "12261:39:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_memory_ptr_$dyn_memory_ptr", - "typeString": "struct GPv2Transfer.Data[]" - }, - "typeName": { - "baseType": { - "id": 16287, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16286, - "name": "GPv2Transfer.Data", - "nameLocations": [ - "12261:12:56", - "12274:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17570, - "src": "12261:17:56" - }, - "referencedDeclaration": 17570, - "src": "12261:17:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_storage_ptr", - "typeString": "struct GPv2Transfer.Data" - } - }, - "id": 16288, - "nodeType": "ArrayTypeName", - "src": "12261:19:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17570_storage_$dyn_storage_ptr", - "typeString": "struct GPv2Transfer.Data[]" - } - }, - "visibility": "internal" - } - ], - "src": "12195:115:56" - }, - "scope": 16749, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 16639, - "nodeType": "FunctionDefinition", - "src": "13792:3753:56", - "nodes": [], - "body": { - "id": 16638, - "nodeType": "Block", - "src": "14060:3485:56", - "nodes": [], - "statements": [ - { - "assignments": [ - 16389 - ], - "declarations": [ - { - "constant": false, - "id": 16389, - "mutability": "mutable", - "name": "order", - "nameLocation": "14092:5:56", - "nodeType": "VariableDeclaration", - "scope": 16638, - "src": "14070:27:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data" - }, - "typeName": { - "id": 16388, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16387, - "name": "GPv2Order.Data", - "nameLocations": [ - "14070:9:56", - "14080:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "14070:14:56" - }, - "referencedDeclaration": 17121, - "src": "14070:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", - "typeString": "struct GPv2Order.Data" - } - }, - "visibility": "internal" - } - ], - "id": 16392, - "initialValue": { - "expression": { - "id": 16390, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16370, - "src": "14100:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "id": 16391, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14115:4:56", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 18235, - "src": "14100:19:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14070:49:56" - }, - { - "assignments": [ - 16394 - ], - "declarations": [ - { - "constant": false, - "id": 16394, - "mutability": "mutable", - "name": "orderUid", - "nameLocation": "14142:8:56", - "nodeType": "VariableDeclaration", - "scope": 16638, - "src": "14129:21:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 16393, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14129:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 16397, - "initialValue": { - "expression": { - "id": 16395, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16370, - "src": "14153:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "id": 16396, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14168:3:56", - "memberName": "uid", - "nodeType": "MemberAccess", - "referencedDeclaration": 18237, - "src": "14153:18:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14129:42:56" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 16399, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "14244:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16400, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14250:7:56", - "memberName": "validTo", - "nodeType": "MemberAccess", - "referencedDeclaration": 17108, - "src": "14244:13:56", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "expression": { - "id": 16401, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "14261:5:56", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 16402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14267:9:56", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "14261:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14244:32:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a206f726465722065787069726564", - "id": 16404, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14278:21:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1711634c4619060a8948bc0245ebeea022be42b3ae89ed8d6f8ce6e2bc1d595b", - "typeString": "literal_string \"GPv2: order expired\"" - }, - "value": "GPv2: order expired" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1711634c4619060a8948bc0245ebeea022be42b3ae89ed8d6f8ce6e2bc1d595b", - "typeString": "literal_string \"GPv2: order expired\"" - } - ], - "id": 16398, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14236:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14236:64:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16406, - "nodeType": "ExpressionStatement", - "src": "14236:64:56" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 16411, - "name": "sellPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16372, - "src": "15047:9:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "expression": { - "id": 16408, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "15026:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16409, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15032:10:56", - "memberName": "sellAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17104, - "src": "15026:16:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15043:3:56", - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 18164, - "src": "15026:20:56", - "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": 16412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15026:31:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "arguments": [ - { - "id": 16416, - "name": "buyPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16374, - "src": "15081:8:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "expression": { - "id": 16413, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "15061:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16414, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15067:9:56", - "memberName": "buyAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17106, - "src": "15061:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15077:3:56", - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 18164, - "src": "15061:19:56", - "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": 16417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15061:29:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15026:64:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a206c696d6974207072696365206e6f7420726573706563746564", - "id": 16419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15104:33:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2fc8bb0dab4309d208e91651f56446cf22857ec5f7894ca9d37a7e33e45befcc", - "typeString": "literal_string \"GPv2: limit price not respected\"" - }, - "value": "GPv2: limit price not respected" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2fc8bb0dab4309d208e91651f56446cf22857ec5f7894ca9d37a7e33e45befcc", - "typeString": "literal_string \"GPv2: limit price not respected\"" - } - ], - "id": 16407, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "15005:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15005:142:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16421, - "nodeType": "ExpressionStatement", - "src": "15005:142:56" - }, - { - "assignments": [ - 16423 - ], - "declarations": [ - { - "constant": false, - "id": 16423, - "mutability": "mutable", - "name": "executedSellAmount", - "nameLocation": "15166:18:56", - "nodeType": "VariableDeclaration", - "scope": 16638, - "src": "15158:26:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16422, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15158:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 16424, - "nodeType": "VariableDeclarationStatement", - "src": "15158:26:56" - }, - { - "assignments": [ - 16426 - ], - "declarations": [ - { - "constant": false, - "id": 16426, - "mutability": "mutable", - "name": "executedBuyAmount", - "nameLocation": "15202:17:56", - "nodeType": "VariableDeclaration", - "scope": 16638, - "src": "15194:25:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16425, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15194:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 16427, - "nodeType": "VariableDeclarationStatement", - "src": "15194:25:56" - }, - { - "assignments": [ - 16429 - ], - "declarations": [ - { - "constant": false, - "id": 16429, - "mutability": "mutable", - "name": "executedFeeAmount", - "nameLocation": "15237:17:56", - "nodeType": "VariableDeclaration", - "scope": 16638, - "src": "15229:25:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16428, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15229:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 16430, - "nodeType": "VariableDeclarationStatement", - "src": "15229:25:56" - }, - { - "assignments": [ - 16432 - ], - "declarations": [ - { - "constant": false, - "id": 16432, - "mutability": "mutable", - "name": "currentFilledAmount", - "nameLocation": "15272:19:56", - "nodeType": "VariableDeclaration", - "scope": 16638, - "src": "15264:27:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16431, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15264:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 16433, - "nodeType": "VariableDeclarationStatement", - "src": "15264:27:56" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 16438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 16434, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "15306:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16435, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15312:4:56", - "memberName": "kind", - "nodeType": "MemberAccess", - "referencedDeclaration": 17114, - "src": "15306:10:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 16436, - "name": "GPv2Order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "15320:9:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", - "typeString": "type(library GPv2Order)" - } - }, - "id": 16437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "15330:9:56", - "memberName": "KIND_SELL", - "nodeType": "MemberAccess", - "referencedDeclaration": 17129, - "src": "15320:19:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "15306:33:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 16556, - "nodeType": "Block", - "src": "16101:675:56", - "statements": [ - { - "condition": { - "expression": { - "id": 16498, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "16119:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16499, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16125:17:56", - "memberName": "partiallyFillable", - "nodeType": "MemberAccess", - "referencedDeclaration": 17116, - "src": "16119:23:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 16527, - "nodeType": "Block", - "src": "16352:121:56", - "statements": [ - { - "expression": { - "id": 16520, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16517, - "name": "executedBuyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16426, - "src": "16370:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16518, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "16390:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16519, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16396:9:56", - "memberName": "buyAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17106, - "src": "16390:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16370:35:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16521, - "nodeType": "ExpressionStatement", - "src": "16370:35:56" - }, - { - "expression": { - "id": 16525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16522, - "name": "executedFeeAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16429, - "src": "16423:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16523, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "16443:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16449:9:56", - "memberName": "feeAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17112, - "src": "16443:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16423:35:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16526, - "nodeType": "ExpressionStatement", - "src": "16423:35:56" - } - ] - }, - "id": 16528, - "nodeType": "IfStatement", - "src": "16115:358:56", - "trueBody": { - "id": 16516, - "nodeType": "Block", - "src": "16144:202:56", - "statements": [ - { - "expression": { - "id": 16502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16500, - "name": "executedBuyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16426, - "src": "16162:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 16501, - "name": "executedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16376, - "src": "16182:14:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16162:34:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16503, - "nodeType": "ExpressionStatement", - "src": "16162:34:56" - }, - { - "expression": { - "id": 16514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16504, - "name": "executedFeeAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16429, - "src": "16214:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 16511, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "16298:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16512, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16304:9:56", - "memberName": "buyAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17106, - "src": "16298:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 16508, - "name": "executedBuyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16426, - "src": "16254:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "expression": { - "id": 16505, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "16234:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16506, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16240:9:56", - "memberName": "feeAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17112, - "src": "16234:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16250:3:56", - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 18164, - "src": "16234:19:56", - "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": 16509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16234:38:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16273:3:56", - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 18186, - "src": "16234:42:56", - "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": 16513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16234:97:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16214:117:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16515, - "nodeType": "ExpressionStatement", - "src": "16214:117:56" - } - ] - } - }, - { - "expression": { - "id": 16537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16529, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16423, - "src": "16487:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 16535, - "name": "sellPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16372, - "src": "16544:9:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 16532, - "name": "buyPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16374, - "src": "16530:8:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 16530, - "name": "executedBuyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16426, - "src": "16508:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16526:3:56", - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 18164, - "src": "16508:21:56", - "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": 16533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16508:31:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16540:3:56", - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 18186, - "src": "16508:35:56", - "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": 16536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16508:46:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16487:67:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16538, - "nodeType": "ExpressionStatement", - "src": "16487:67:56" - }, - { - "expression": { - "id": 16546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16539, - "name": "currentFilledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16432, - "src": "16569:19:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 16544, - "name": "executedBuyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16426, - "src": "16618:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "baseExpression": { - "id": 16540, - "name": "filledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15701, - "src": "16591:12:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - } - }, - "id": 16542, - "indexExpression": { - "id": 16541, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16394, - "src": "16604:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16591:22:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16614:3:56", - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 18108, - "src": "16591:26:56", - "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": 16545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16591:45:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16569:67:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16547, - "nodeType": "ExpressionStatement", - "src": "16569:67:56" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 16549, - "name": "currentFilledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16432, - "src": "16675:19:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "expression": { - "id": 16550, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "16698:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16551, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16704:9:56", - "memberName": "buyAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17106, - "src": "16698:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16675:38:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a206f726465722066696c6c6564", - "id": 16553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16731:20:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_822aeaf080e48a01ee26697bc2ddeb4648272e8849b1d52f224cc71ee66fee7c", - "typeString": "literal_string \"GPv2: order filled\"" - }, - "value": "GPv2: order filled" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_822aeaf080e48a01ee26697bc2ddeb4648272e8849b1d52f224cc71ee66fee7c", - "typeString": "literal_string \"GPv2: order filled\"" - } - ], - "id": 16548, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "16650:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16650:115:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16555, - "nodeType": "ExpressionStatement", - "src": "16650:115:56" - } - ] - }, - "id": 16557, - "nodeType": "IfStatement", - "src": "15302:1474:56", - "trueBody": { - "id": 16497, - "nodeType": "Block", - "src": "15341:754:56", - "statements": [ - { - "condition": { - "expression": { - "id": 16439, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "15359:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16440, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15365:17:56", - "memberName": "partiallyFillable", - "nodeType": "MemberAccess", - "referencedDeclaration": 17116, - "src": "15359:23:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 16468, - "nodeType": "Block", - "src": "15603:123:56", - "statements": [ - { - "expression": { - "id": 16461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16458, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16423, - "src": "15621:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16459, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "15642:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16460, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15648:10:56", - "memberName": "sellAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17104, - "src": "15642:16:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15621:37:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16462, - "nodeType": "ExpressionStatement", - "src": "15621:37:56" - }, - { - "expression": { - "id": 16466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16463, - "name": "executedFeeAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16429, - "src": "15676:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16464, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "15696:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16465, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15702:9:56", - "memberName": "feeAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17112, - "src": "15696:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15676:35:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16467, - "nodeType": "ExpressionStatement", - "src": "15676:35:56" - } - ] - }, - "id": 16469, - "nodeType": "IfStatement", - "src": "15355:371:56", - "trueBody": { - "id": 16457, - "nodeType": "Block", - "src": "15384:213:56", - "statements": [ - { - "expression": { - "id": 16443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16441, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16423, - "src": "15402:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 16442, - "name": "executedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16376, - "src": "15423:14:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15402:35:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16444, - "nodeType": "ExpressionStatement", - "src": "15402:35:56" - }, - { - "expression": { - "id": 16455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16445, - "name": "executedFeeAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16429, - "src": "15455:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 16452, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "15544:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16453, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15550:10:56", - "memberName": "sellAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17104, - "src": "15544:16:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 16449, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16423, - "src": "15495:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "expression": { - "id": 16446, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "15475:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16447, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15481:9:56", - "memberName": "feeAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17112, - "src": "15475:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15491:3:56", - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 18164, - "src": "15475:19:56", - "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": 16450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15475:39:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15515:3:56", - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 18186, - "src": "15475:43:56", - "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": 16454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15475:107:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15455:127:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16456, - "nodeType": "ExpressionStatement", - "src": "15455:127:56" - } - ] - } - }, - { - "expression": { - "id": 16478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16470, - "name": "executedBuyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16426, - "src": "15740:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 16476, - "name": "buyPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16374, - "src": "15819:8:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 16473, - "name": "sellPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16372, - "src": "15783:9:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 16471, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16423, - "src": "15760:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15779:3:56", - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 18164, - "src": "15760:22:56", - "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": 16474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15760:33:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15794:7:56", - "memberName": "ceilDiv", - "nodeType": "MemberAccess", - "referencedDeclaration": 18218, - "src": "15760:41:56", - "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": 16477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15760:81:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15740:101:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16479, - "nodeType": "ExpressionStatement", - "src": "15740:101:56" - }, - { - "expression": { - "id": 16487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16480, - "name": "currentFilledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16432, - "src": "15856:19:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 16485, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16423, - "src": "15922:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "baseExpression": { - "id": 16481, - "name": "filledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15701, - "src": "15878:12:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - } - }, - "id": 16483, - "indexExpression": { - "id": 16482, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16394, - "src": "15891:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15878:22:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15901:3:56", - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 18108, - "src": "15878:26:56", - "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": 16486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15878:76:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15856:98:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16488, - "nodeType": "ExpressionStatement", - "src": "15856:98:56" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 16490, - "name": "currentFilledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16432, - "src": "15993:19:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "expression": { - "id": 16491, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "16016:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16492, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16022:10:56", - "memberName": "sellAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17104, - "src": "16016:16:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15993:39:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a206f726465722066696c6c6564", - "id": 16494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16050:20:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_822aeaf080e48a01ee26697bc2ddeb4648272e8849b1d52f224cc71ee66fee7c", - "typeString": "literal_string \"GPv2: order filled\"" - }, - "value": "GPv2: order filled" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_822aeaf080e48a01ee26697bc2ddeb4648272e8849b1d52f224cc71ee66fee7c", - "typeString": "literal_string \"GPv2: order filled\"" - } - ], - "id": 16489, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "15968:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15968:116:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16496, - "nodeType": "ExpressionStatement", - "src": "15968:116:56" - } - ] - } - }, - { - "expression": { - "id": 16563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 16558, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16423, - "src": "16786:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 16561, - "name": "executedFeeAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16429, - "src": "16830:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 16559, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16423, - "src": "16807:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16826:3:56", - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 18108, - "src": "16807:22:56", - "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": 16562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16807:41:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16786:62:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16564, - "nodeType": "ExpressionStatement", - "src": "16786:62:56" - }, - { - "expression": { - "id": 16569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 16565, - "name": "filledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15701, - "src": "16858:12:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - } - }, - "id": 16567, - "indexExpression": { - "id": 16566, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16394, - "src": "16871:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16858:22:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 16568, - "name": "currentFilledAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16432, - "src": "16883:19:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16858:44:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16570, - "nodeType": "ExpressionStatement", - "src": "16858:44:56" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 16572, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16370, - "src": "16937:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "id": 16573, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16952:5:56", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 18239, - "src": "16937:20:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 16574, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "16971:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16575, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16977:9:56", - "memberName": "sellToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 17097, - "src": "16971:15:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - { - "expression": { - "id": 16576, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "17000:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16577, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17006:8:56", - "memberName": "buyToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 17100, - "src": "17000:14:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - { - "id": 16578, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16423, - "src": "17028:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 16579, - "name": "executedBuyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16426, - "src": "17060:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 16580, - "name": "executedFeeAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16429, - "src": "17091:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 16581, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16394, - "src": "17122:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 16571, - "name": "Trade", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15720, - "src": "16918:5:56", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_contract$_IERC20_$670_$_t_contract$_IERC20_$670_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,contract IERC20,contract IERC20,uint256,uint256,uint256,bytes memory)" - } - }, - "id": 16582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16918:222:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16583, - "nodeType": "EmitStatement", - "src": "16913:227:56" - }, - { - "expression": { - "id": 16589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16584, - "name": "inTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16379, - "src": "17151:10:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16586, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "17162:7:56", - "memberName": "account", - "nodeType": "MemberAccess", - "referencedDeclaration": 17562, - "src": "17151:18:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16587, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16370, - "src": "17172:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "id": 16588, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17187:5:56", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 18239, - "src": "17172:20:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17151:41:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 16590, - "nodeType": "ExpressionStatement", - "src": "17151:41:56" - }, - { - "expression": { - "id": 16596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16591, - "name": "inTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16379, - "src": "17202:10:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16593, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "17213:5:56", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 17565, - "src": "17202:16:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16594, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "17221:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16595, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17227:9:56", - "memberName": "sellToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 17097, - "src": "17221:15:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "src": "17202:34:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "id": 16597, - "nodeType": "ExpressionStatement", - "src": "17202:34:56" - }, - { - "expression": { - "id": 16602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16598, - "name": "inTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16379, - "src": "17246:10:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16600, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "17257:6:56", - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17567, - "src": "17246:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 16601, - "name": "executedSellAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16423, - "src": "17266:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17246:38:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16603, - "nodeType": "ExpressionStatement", - "src": "17246:38:56" - }, - { - "expression": { - "id": 16609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16604, - "name": "inTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16379, - "src": "17294:10:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16606, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "17305:7:56", - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 17569, - "src": "17294:18:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16607, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "17315:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16608, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17321:16:56", - "memberName": "sellTokenBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 17118, - "src": "17315:22:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "17294:43:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 16610, - "nodeType": "ExpressionStatement", - "src": "17294:43:56" - }, - { - "expression": { - "id": 16616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16611, - "name": "outTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16382, - "src": "17348:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16613, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "17360:7:56", - "memberName": "account", - "nodeType": "MemberAccess", - "referencedDeclaration": 17562, - "src": "17348:19:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16614, - "name": "recoveredOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16370, - "src": "17370:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder memory" - } - }, - "id": 16615, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17385:8:56", - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 18241, - "src": "17370:23:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17348:45:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 16617, - "nodeType": "ExpressionStatement", - "src": "17348:45:56" - }, - { - "expression": { - "id": 16623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16618, - "name": "outTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16382, - "src": "17403:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16620, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "17415:5:56", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 17565, - "src": "17403:17:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16621, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "17423:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16622, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17429:8:56", - "memberName": "buyToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 17100, - "src": "17423:14:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "src": "17403:34:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", - "typeString": "contract IERC20" - } - }, - "id": 16624, - "nodeType": "ExpressionStatement", - "src": "17403:34:56" - }, - { - "expression": { - "id": 16629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16625, - "name": "outTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16382, - "src": "17447:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16627, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "17459:6:56", - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 17567, - "src": "17447:18:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 16628, - "name": "executedBuyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16426, - "src": "17468:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17447:38:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16630, - "nodeType": "ExpressionStatement", - "src": "17447:38:56" - }, - { - "expression": { - "id": 16636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 16631, - "name": "outTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16382, - "src": "17495:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data memory" - } - }, - "id": 16633, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "17507:7:56", - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 17569, - "src": "17495:19:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 16634, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16389, - "src": "17517:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", - "typeString": "struct GPv2Order.Data memory" - } - }, - "id": 16635, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17523:15:56", - "memberName": "buyTokenBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 17120, - "src": "17517:21:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "17495:43:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 16637, - "nodeType": "ExpressionStatement", - "src": "17495:43:56" - } - ] - }, - "documentation": { - "id": 16367, - "nodeType": "StructuredDocumentation", - "src": "13005:782:56", - "text": "@dev Compute the in and out transfer amounts for a single trade.\n This function reverts if:\n - The order has expired\n - The order's limit price is not respected\n - The order gets over-filled\n - The fee discount is larger than the executed fee\n @param recoveredOrder The recovered order to process.\n @param sellPrice The price of the order's sell token.\n @param buyPrice The price of the order's buy token.\n @param executedAmount The portion of the order to execute. This will be\n ignored for fill-or-kill orders.\n @param inTransfer Memory location for computed executed sell amount\n transfer.\n @param outTransfer Memory location for computed executed buy amount\n transfer." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "computeTradeExecution", - "nameLocation": "13801:21:56", - "parameters": { - "id": 16383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16370, - "mutability": "mutable", - "name": "recoveredOrder", - "nameLocation": "13854:14:56", - "nodeType": "VariableDeclaration", - "scope": 16639, - "src": "13832:36:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_memory_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder" - }, - "typeName": { - "id": 16369, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16368, - "name": "RecoveredOrder", - "nameLocations": [ - "13832:14:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18242, - "src": "13832:14:56" - }, - "referencedDeclaration": 18242, - "src": "13832:14:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RecoveredOrder_$18242_storage_ptr", - "typeString": "struct GPv2Signing.RecoveredOrder" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 16372, - "mutability": "mutable", - "name": "sellPrice", - "nameLocation": "13886:9:56", - "nodeType": "VariableDeclaration", - "scope": 16639, - "src": "13878:17:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16371, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13878:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 16374, - "mutability": "mutable", - "name": "buyPrice", - "nameLocation": "13913:8:56", - "nodeType": "VariableDeclaration", - "scope": 16639, - "src": "13905:16:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16373, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13905:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 16376, - "mutability": "mutable", - "name": "executedAmount", - "nameLocation": "13939:14:56", - "nodeType": "VariableDeclaration", - "scope": 16639, - "src": "13931:22:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16375, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13931:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 16379, - "mutability": "mutable", - "name": "inTransfer", - "nameLocation": "13988:10:56", - "nodeType": "VariableDeclaration", - "scope": 16639, - "src": "13963:35:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data" - }, - "typeName": { - "id": 16378, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16377, - "name": "GPv2Transfer.Data", - "nameLocations": [ - "13963:12:56", - "13976:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17570, - "src": "13963:17:56" - }, - "referencedDeclaration": 17570, - "src": "13963:17:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_storage_ptr", - "typeString": "struct GPv2Transfer.Data" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 16382, - "mutability": "mutable", - "name": "outTransfer", - "nameLocation": "14033:11:56", - "nodeType": "VariableDeclaration", - "scope": 16639, - "src": "14008:36:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_memory_ptr", - "typeString": "struct GPv2Transfer.Data" - }, - "typeName": { - "id": 16381, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16380, - "name": "GPv2Transfer.Data", - "nameLocations": [ - "14008:12:56", - "14021:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17570, - "src": "14008:17:56" - }, - "referencedDeclaration": 17570, - "src": "14008:17:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17570_storage_ptr", - "typeString": "struct GPv2Transfer.Data" - } - }, - "visibility": "internal" - } - ], - "src": "13822:228:56" - }, - "returnParameters": { - "id": 16384, - "nodeType": "ParameterList", - "parameters": [], - "src": "14060:0:56" - }, - "scope": 16749, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 16697, - "nodeType": "FunctionDefinition", - "src": "17692:751:56", - "nodes": [], - "body": { - "id": 16696, - "nodeType": "Block", - "src": "17788:655:56", - "nodes": [], - "statements": [ - { - "body": { - "id": 16694, - "nodeType": "Block", - "src": "17844:593:56", - "statements": [ - { - "assignments": [ - 16661 - ], - "declarations": [ - { - "constant": false, - "id": 16661, - "mutability": "mutable", - "name": "interaction", - "nameLocation": "17888:11:56", - "nodeType": "VariableDeclaration", - "scope": 16694, - "src": "17858:41:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17043_calldata_ptr", - "typeString": "struct GPv2Interaction.Data" - }, - "typeName": { - "id": 16660, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16659, - "name": "GPv2Interaction.Data", - "nameLocations": [ - "17858:15:56", - "17874:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17043, - "src": "17858:20:56" - }, - "referencedDeclaration": 17043, - "src": "17858:20:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17043_storage_ptr", - "typeString": "struct GPv2Interaction.Data" - } - }, - "visibility": "internal" - } - ], - "id": 16665, - "initialValue": { - "baseExpression": { - "id": 16662, - "name": "interactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16644, - "src": "17902:12:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata[] calldata" - } - }, - "id": 16664, - "indexExpression": { - "id": 16663, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16648, - "src": "17915:1:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17902:15:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17043_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17858:59:56" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 16673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 16667, - "name": "interaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16661, - "src": "18101:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17043_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata" - } - }, - "id": 16668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18113:6:56", - "memberName": "target", - "nodeType": "MemberAccess", - "referencedDeclaration": 17038, - "src": "18101:18:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "id": 16671, - "name": "vaultRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15696, - "src": "18131:12:56", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GPv2VaultRelayer_$16867", - "typeString": "contract GPv2VaultRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_GPv2VaultRelayer_$16867", - "typeString": "contract GPv2VaultRelayer" - } - ], - "id": 16670, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18123:7:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 16669, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18123:7:56", - "typeDescriptions": {} - } - }, - "id": 16672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18123:21:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18101:43:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a20666f7262696464656e20696e746572616374696f6e", - "id": 16674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18162:29:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f4e2d7ac4eb3bf4ca9bafea291cae87b981f50ee93cb7e3ce2ff8ae7a34f1236", - "typeString": "literal_string \"GPv2: forbidden interaction\"" - }, - "value": "GPv2: forbidden interaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f4e2d7ac4eb3bf4ca9bafea291cae87b981f50ee93cb7e3ce2ff8ae7a34f1236", - "typeString": "literal_string \"GPv2: forbidden interaction\"" - } - ], - "id": 16666, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "18076:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18076:129:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16676, - "nodeType": "ExpressionStatement", - "src": "18076:129:56" - }, - { - "expression": { - "arguments": [ - { - "id": 16680, - "name": "interaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16661, - "src": "18243:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17043_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$17043_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata" - } - ], - "expression": { - "id": 16677, - "name": "GPv2Interaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17090, - "src": "18219:15:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Interaction_$17090_$", - "typeString": "type(library GPv2Interaction)" - } - }, - "id": 16679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18235:7:56", - "memberName": "execute", - "nodeType": "MemberAccess", - "referencedDeclaration": 17067, - "src": "18219:23:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$17043_calldata_ptr_$returns$__$", - "typeString": "function (struct GPv2Interaction.Data calldata)" - } - }, - "id": 16681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18219:36:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16682, - "nodeType": "ExpressionStatement", - "src": "18219:36:56" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 16684, - "name": "interaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16661, - "src": "18304:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17043_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata" - } - }, - "id": 16685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18316:6:56", - "memberName": "target", - "nodeType": "MemberAccess", - "referencedDeclaration": 17038, - "src": "18304:18:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 16686, - "name": "interaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16661, - "src": "18340:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17043_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata" - } - }, - "id": 16687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18352:5:56", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 17040, - "src": "18340:17:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 16690, - "name": "interaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16661, - "src": "18400:11:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17043_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$17043_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata" - } - ], - "expression": { - "id": 16688, - "name": "GPv2Interaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17090, - "src": "18375:15:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Interaction_$17090_$", - "typeString": "type(library GPv2Interaction)" - } - }, - "id": 16689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18391:8:56", - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": 17089, - "src": "18375:24:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_Data_$17043_calldata_ptr_$returns$_t_bytes4_$", - "typeString": "function (struct GPv2Interaction.Data calldata) pure returns (bytes4)" - } - }, - "id": 16691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18375:37:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 16683, - "name": "Interaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 15729, - "src": "18275:11:56", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes4_$returns$__$", - "typeString": "function (address,uint256,bytes4)" - } - }, - "id": 16692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18275:151:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16693, - "nodeType": "EmitStatement", - "src": "18270:156:56" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 16650, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16648, - "src": "17814:1:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 16651, - "name": "interactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16644, - "src": "17818:12:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Interaction.Data calldata[] calldata" - } - }, - "id": 16652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17831:6:56", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "17818:19:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17814:23:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 16695, - "initializationExpression": { - "assignments": [ - 16648 - ], - "declarations": [ - { - "constant": false, - "id": 16648, - "mutability": "mutable", - "name": "i", - "nameLocation": "17811:1:56", - "nodeType": "VariableDeclaration", - "scope": 16695, - "src": "17803:9:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16647, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17803:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 16649, - "nodeType": "VariableDeclarationStatement", - "src": "17803:9:56" - }, - "loopExpression": { - "expression": { - "id": 16655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "17839:3:56", - "subExpression": { - "id": 16654, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16648, - "src": "17839:1:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16656, - "nodeType": "ExpressionStatement", - "src": "17839:3:56" - }, - "nodeType": "ForStatement", - "src": "17798:639:56" - } - ] - }, - "documentation": { - "id": 16640, - "nodeType": "StructuredDocumentation", - "src": "17551:136:56", - "text": "@dev Execute a list of arbitrary contract calls from this contract.\n @param interactions The list of interactions to execute." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeInteractions", - "nameLocation": "17701:19:56", - "parameters": { - "id": 16645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16644, - "mutability": "mutable", - "name": "interactions", - "nameLocation": "17753:12:56", - "nodeType": "VariableDeclaration", - "scope": 16697, - "src": "17721:44:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17043_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct GPv2Interaction.Data[]" - }, - "typeName": { - "baseType": { - "id": 16642, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 16641, - "name": "GPv2Interaction.Data", - "nameLocations": [ - "17721:15:56", - "17737:4:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 17043, - "src": "17721:20:56" - }, - "referencedDeclaration": 17043, - "src": "17721:20:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17043_storage_ptr", - "typeString": "struct GPv2Interaction.Data" - } - }, - "id": 16643, - "nodeType": "ArrayTypeName", - "src": "17721:22:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Data_$17043_storage_$dyn_storage_ptr", - "typeString": "struct GPv2Interaction.Data[]" - } - }, - "visibility": "internal" - } - ], - "src": "17720:46:56" - }, - "returnParameters": { - "id": 16646, - "nodeType": "ParameterList", - "parameters": [], - "src": "17788:0:56" - }, - "scope": 16749, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 16748, - "nodeType": "FunctionDefinition", - "src": "18723:503:56", - "nodes": [], - "body": { - "id": 16747, - "nodeType": "Block", - "src": "18856:370:56", - "nodes": [], - "statements": [ - { - "body": { - "id": 16745, - "nodeType": "Block", - "src": "18913:307:56", - "statements": [ - { - "assignments": [ - 16720 - ], - "declarations": [ - { - "constant": false, - "id": 16720, - "mutability": "mutable", - "name": "orderUid", - "nameLocation": "18942:8:56", - "nodeType": "VariableDeclaration", - "scope": 16745, - "src": "18927:23:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 16719, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18927:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 16724, - "initialValue": { - "baseExpression": { - "id": 16721, - "name": "orderUids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16705, - "src": "18953:9:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - "id": 16723, - "indexExpression": { - "id": 16722, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16709, - "src": "18963:1:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18953:12:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18927:38:56" - }, - { - "assignments": [ - null, - null, - 16726 - ], - "declarations": [ - null, - null, - { - "constant": false, - "id": 16726, - "mutability": "mutable", - "name": "validTo", - "nameLocation": "18992:7:56", - "nodeType": "VariableDeclaration", - "scope": 16745, - "src": "18985:14:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 16725, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "18985:6:56", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 16730, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 16727, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16720, - "src": "19003:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 16728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19012:21:56", - "memberName": "extractOrderUidParams", - "nodeType": "MemberAccess", - "referencedDeclaration": 17245, - "src": "19003:30:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bytes32_$_t_address_$_t_uint32_$attached_to$_t_bytes_calldata_ptr_$", - "typeString": "function (bytes calldata) pure returns (bytes32,address,uint32)" - } - }, - "id": 16729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19003:32:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bytes32_$_t_address_$_t_uint32_$", - "typeString": "tuple(bytes32,address,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18980:55:56" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 16732, - "name": "validTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16726, - "src": "19115:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 16733, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "19125:5:56", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 16734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19131:9:56", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "19125:15:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19115:25:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "475076323a206f72646572207374696c6c2076616c6964", - "id": 16736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19142:25:56", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_85a6cf3aa740fc4f556406b53b20ffc0745072758418de6b7134e41e0edfe05f", - "typeString": "literal_string \"GPv2: order still valid\"" - }, - "value": "GPv2: order still valid" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_85a6cf3aa740fc4f556406b53b20ffc0745072758418de6b7134e41e0edfe05f", - "typeString": "literal_string \"GPv2: order still valid\"" - } - ], - "id": 16731, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "19107:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 16737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19107:61:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 16738, - "nodeType": "ExpressionStatement", - "src": "19107:61:56" - }, - { - "expression": { - "id": 16743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 16739, - "name": "orderStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16702, - "src": "19183:12:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes memory => uint256)" - } - }, - "id": 16741, - "indexExpression": { - "id": 16740, - "name": "orderUid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16720, - "src": "19196:8:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19183:22:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 16742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19208:1:56", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19183:26:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16744, - "nodeType": "ExpressionStatement", - "src": "19183:26:56" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 16712, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16709, - "src": "18886:1:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 16713, - "name": "orderUids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16705, - "src": "18890:9:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - "id": 16714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18900:6:56", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "18890:16:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18886:20:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 16746, - "initializationExpression": { - "assignments": [ - 16709 - ], - "declarations": [ - { - "constant": false, - "id": 16709, - "mutability": "mutable", - "name": "i", - "nameLocation": "18879:1:56", - "nodeType": "VariableDeclaration", - "scope": 16746, - "src": "18871:9:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16708, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18871:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 16711, - "initialValue": { - "hexValue": "30", - "id": 16710, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18883:1:56", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "18871:13:56" - }, - "loopExpression": { - "expression": { - "id": 16717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "18908:3:56", - "subExpression": { - "id": 16716, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16709, - "src": "18908:1:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 16718, - "nodeType": "ExpressionStatement", - "src": "18908:3:56" - }, - "nodeType": "ForStatement", - "src": "18866:354:56" - } - ] - }, - "documentation": { - "id": 16698, - "nodeType": "StructuredDocumentation", - "src": "18449:269:56", - "text": "@dev Claims refund for the specified storage and order UIDs.\n This method reverts if any of the orders are still valid.\n @param orderUids Order refund data for freeing storage.\n @param orderStorage Order storage mapped on a UID." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "freeOrderStorage", - "nameLocation": "18732:16:56", - "parameters": { - "id": 16706, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16702, - "mutability": "mutable", - "name": "orderStorage", - "nameLocation": "18792:12:56", - "nodeType": "VariableDeclaration", - "scope": 16748, - "src": "18758:46:56", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes => uint256)" - }, - "typeName": { - "id": 16701, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 16699, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18766:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "18758:25:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_ptr_$_t_uint256_$", - "typeString": "mapping(bytes => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 16700, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18775:7:56", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 16705, - "mutability": "mutable", - "name": "orderUids", - "nameLocation": "18831:9:56", - "nodeType": "VariableDeclaration", - "scope": 16748, - "src": "18814:26:56", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 16703, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18814:5:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 16704, - "nodeType": "ArrayTypeName", - "src": "18814:7:56", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - } - ], - "src": "18748:98:56" - }, - "returnParameters": { - "id": 16707, - "nodeType": "ParameterList", - "parameters": [], - "src": "18856:0:56" - }, - "scope": 16749, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 15663, - "name": "GPv2Signing", - "nameLocations": [ - "694:11:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18699, - "src": "694:11:56" - }, - "id": 15664, - "nodeType": "InheritanceSpecifier", - "src": "694:11:56" - }, - { - "baseName": { - "id": 15665, - "name": "ReentrancyGuard", - "nameLocations": [ - "707:15:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18803, - "src": "707:15:56" - }, - "id": 15666, - "nodeType": "InheritanceSpecifier", - "src": "707:15:56" - }, - { - "baseName": { - "id": 15667, - "name": "StorageAccessible", - "nameLocations": [ - "724:17:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 18973, - "src": "724:17:56" - }, - "id": 15668, - "nodeType": "InheritanceSpecifier", - "src": "724:17:56" - } - ], - "canonicalName": "GPv2Settlement", - "contractDependencies": [ - 16867 - ], - "contractKind": "contract", - "documentation": { - "id": 15662, - "nodeType": "StructuredDocumentation", - "src": "587:80:56", - "text": "@title Gnosis Protocol v2 Settlement Contract\n @author Gnosis Developers" - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 16749, - 18973, - 18803, - 18699 - ], - "name": "GPv2Settlement", - "nameLocation": "676:14:56", - "scope": 16750, - "usedErrors": [] - } - ], - "license": "LGPL-3.0-or-later" - }, - "id": 56 -} \ No newline at end of file diff --git a/actions/package.json b/actions/package.json index c4a66d3..f3036ce 100644 --- a/actions/package.json +++ b/actions/package.json @@ -2,8 +2,8 @@ "name": "actions", "license": "MIT", "scripts": { - "typechain": "typechain --target ethers-v5 --out-dir types/ \"artifacts/*.json\"", - "prepare": "npm run typechain", + "typechain": "typechain --target ethers-v5 --out-dir types/ \"abi/*.json\"", + "prepare": "npx ts-node prepublish.ts && npm run typechain", "build": "tsc" }, "devDependencies": { diff --git a/actions/prepublish.ts b/actions/prepublish.ts new file mode 100644 index 0000000..e6125c0 --- /dev/null +++ b/actions/prepublish.ts @@ -0,0 +1,23 @@ +import * as fs from 'fs'; +import * as https from 'https'; +import * as path from 'path'; + +const url = 'https://raw.githubusercontent.com/cowprotocol/composable-cow/8c762559c98b707801f52dd070dd39ab9478b876/out/ComposableCoW.sol/ComposableCoW.json'; +const abiDir = path.join(__dirname, 'abi'); +const targetFile = path.join(abiDir, 'ComposableCoW.json'); + +if (!fs.existsSync(abiDir)) { + fs.mkdirSync(abiDir); +} + +const fileStream = fs.createWriteStream(targetFile); + +https.get(url, (response) => { + response.pipe(fileStream); + fileStream.on('finish', () => { + fileStream.close(); + console.log('File downloaded and saved successfully.'); + }); +}).on('error', (error) => { + console.error('Error downloading the file:', error); +}); diff --git a/package-lock.json b/package-lock.json index 5b4c737..2511f34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,3274 +1,3305 @@ { - "name": "composable-cow", - "version": "0.0.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "composable-cow", - "version": "0.0.1", - "license": "MIT", - "dependencies": { - "ts-node": "^10.9.1" - }, - "devDependencies": { - "eslint": "8.39.0", - "prettier": "^2.8.8", - "prettier-plugin-solidity": "^1.1.3", - "solhint": "^3.4.1", - "solhint-plugin-prettier": "^0.0.5" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.1", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@solidity-parser/parser": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.0.tgz", - "integrity": "sha512-ESipEcHyRHg4Np4SqBCfcXwyxxna1DgFVz69bgpLV8vzl/NP1DtcKsJ4dJZXWQhY/Z4J2LeKBiOkOVZn9ct33Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "license": "MIT" - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/antlr4": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.12.0.tgz", - "integrity": "sha512-23iB5IzXJZRZeK9TigzUyrNc9pSmNqAerJRBcNq1ETrmttMWRgaYZzC561IgEO3ygKsDJTYDTozABXa4b/fTQQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=16" - } - }, - "node_modules/antlr4ts": { - "version": "0.5.0-alpha.4", - "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/ast-parents": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", - "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", - "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/prettier-plugin-solidity": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz", - "integrity": "sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solidity-parser/parser": "^0.16.0", - "semver": "^7.3.8", - "solidity-comments-extractor": "^0.0.7" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "prettier": ">=2.3.0 || >=3.0.0-alpha.0" - } - }, - "node_modules/prettier-plugin-solidity/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/solhint": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.4.1.tgz", - "integrity": "sha512-pzZn2RlZhws1XwvLPVSsxfHrwsteFf5eySOhpAytzXwKQYbTCJV6z8EevYDiSVKMpWrvbKpEtJ055CuEmzp4Xg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solidity-parser/parser": "^0.16.0", - "ajv": "^6.12.6", - "antlr4": "^4.11.0", - "ast-parents": "^0.0.1", - "chalk": "^4.1.2", - "commander": "^10.0.0", - "cosmiconfig": "^8.0.0", - "fast-diff": "^1.2.0", - "glob": "^8.0.3", - "ignore": "^5.2.4", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "semver": "^6.3.0", - "strip-ansi": "^6.0.1", - "table": "^6.8.1", - "text-table": "^0.2.0" - }, - "bin": { - "solhint": "solhint.js" - }, - "optionalDependencies": { - "prettier": "^2.8.3" - } - }, - "node_modules/solhint-plugin-prettier": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz", - "integrity": "sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "peerDependencies": { - "prettier": "^1.15.0 || ^2.0.0", - "prettier-plugin-solidity": "^1.0.0-alpha.14" - } - }, - "node_modules/solidity-comments-extractor": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz", - "integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "license": "MIT", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "license": "MIT" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "name": "tenderly-watch-tower", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "tenderly-watch-tower", + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "ts-node": "^10.9.1" + }, + "devDependencies": { + "eslint": "8.39.0", + "prettier": "^2.8.8", + "prettier-plugin-solidity": "^1.1.3", + "solhint": "^3.4.1", + "solhint-plugin-prettier": "^0.0.5" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.1", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@solidity-parser/parser": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.0.tgz", + "integrity": "sha512-ESipEcHyRHg4Np4SqBCfcXwyxxna1DgFVz69bgpLV8vzl/NP1DtcKsJ4dJZXWQhY/Z4J2LeKBiOkOVZn9ct33Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", + "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==", + "peer": true + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/antlr4": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.12.0.tgz", + "integrity": "sha512-23iB5IzXJZRZeK9TigzUyrNc9pSmNqAerJRBcNq1ETrmttMWRgaYZzC561IgEO3ygKsDJTYDTozABXa4b/fTQQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=16" + } + }, + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/ast-parents": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", + "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } + } }, - "dependencies": { - "@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.1", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@solidity-parser/parser": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.0.tgz", - "integrity": "sha512-ESipEcHyRHg4Np4SqBCfcXwyxxna1DgFVz69bgpLV8vzl/NP1DtcKsJ4dJZXWQhY/Z4J2LeKBiOkOVZn9ct33Q==", - "dev": true, - "requires": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" - }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.39.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/prettier-plugin-solidity": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz", + "integrity": "sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@solidity-parser/parser": "^0.16.0", + "semver": "^7.3.8", + "solidity-comments-extractor": "^0.0.7" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "prettier": ">=2.3.0 || >=3.0.0-alpha.0" + } + }, + "node_modules/prettier-plugin-solidity/node_modules/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/solhint": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.4.1.tgz", + "integrity": "sha512-pzZn2RlZhws1XwvLPVSsxfHrwsteFf5eySOhpAytzXwKQYbTCJV6z8EevYDiSVKMpWrvbKpEtJ055CuEmzp4Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@solidity-parser/parser": "^0.16.0", + "ajv": "^6.12.6", + "antlr4": "^4.11.0", + "ast-parents": "^0.0.1", + "chalk": "^4.1.2", + "commander": "^10.0.0", + "cosmiconfig": "^8.0.0", + "fast-diff": "^1.2.0", + "glob": "^8.0.3", + "ignore": "^5.2.4", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "semver": "^6.3.0", + "strip-ansi": "^6.0.1", + "table": "^6.8.1", + "text-table": "^0.2.0" + }, + "bin": { + "solhint": "solhint.js" + }, + "optionalDependencies": { + "prettier": "^2.8.3" + } + }, + "node_modules/solhint-plugin-prettier": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz", + "integrity": "sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "peerDependencies": { + "prettier": "^1.15.0 || ^2.0.0", + "prettier-plugin-solidity": "^1.0.0-alpha.14" + } + }, + "node_modules/solidity-comments-extractor": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz", + "integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "antlr4": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.12.0.tgz", - "integrity": "sha512-23iB5IzXJZRZeK9TigzUyrNc9pSmNqAerJRBcNq1ETrmttMWRgaYZzC561IgEO3ygKsDJTYDTozABXa4b/fTQQ==", - "dev": true - }, - "antlr4ts": { - "version": "0.5.0-alpha.4", - "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "ast-parents": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", - "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "cosmiconfig": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", - "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", - "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - } - }, - "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true - }, - "espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" - } - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.1", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@eslint/js": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@solidity-parser/parser": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.0.tgz", + "integrity": "sha512-ESipEcHyRHg4Np4SqBCfcXwyxxna1DgFVz69bgpLV8vzl/NP1DtcKsJ4dJZXWQhY/Z4J2LeKBiOkOVZn9ct33Q==", + "dev": true, + "requires": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + }, + "@types/node": { + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", + "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==", + "peer": true + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "antlr4": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.12.0.tgz", + "integrity": "sha512-23iB5IzXJZRZeK9TigzUyrNc9pSmNqAerJRBcNq1ETrmttMWRgaYZzC561IgEO3ygKsDJTYDTozABXa4b/fTQQ==", + "dev": true + }, + "antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "dev": true + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "ast-parents": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", + "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cosmiconfig": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.39.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + } + }, + "eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true + }, + "espree": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.0" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } }, "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "requires": { - "fast-diff": "^1.1.2" - } - }, - "prettier-plugin-solidity": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz", - "integrity": "sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg==", - "dev": true, - "requires": { - "@solidity-parser/parser": "^0.16.0", - "semver": "^7.3.8", - "solidity-comments-extractor": "^0.0.7" - }, - "dependencies": { - "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "prettier-plugin-solidity": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz", + "integrity": "sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg==", + "dev": true, + "requires": { + "@solidity-parser/parser": "^0.16.0", + "semver": "^7.3.8", + "solidity-comments-extractor": "^0.0.7" + }, + "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "solhint": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.4.1.tgz", - "integrity": "sha512-pzZn2RlZhws1XwvLPVSsxfHrwsteFf5eySOhpAytzXwKQYbTCJV6z8EevYDiSVKMpWrvbKpEtJ055CuEmzp4Xg==", - "dev": true, - "requires": { - "@solidity-parser/parser": "^0.16.0", - "ajv": "^6.12.6", - "antlr4": "^4.11.0", - "ast-parents": "^0.0.1", - "chalk": "^4.1.2", - "commander": "^10.0.0", - "cosmiconfig": "^8.0.0", - "fast-diff": "^1.2.0", - "glob": "^8.0.3", - "ignore": "^5.2.4", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "prettier": "^2.8.3", - "semver": "^6.3.0", - "strip-ansi": "^6.0.1", - "table": "^6.8.1", - "text-table": "^0.2.0" - } - }, - "solhint-plugin-prettier": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz", - "integrity": "sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - }, - "solidity-comments-extractor": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz", - "integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "solhint": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.4.1.tgz", + "integrity": "sha512-pzZn2RlZhws1XwvLPVSsxfHrwsteFf5eySOhpAytzXwKQYbTCJV6z8EevYDiSVKMpWrvbKpEtJ055CuEmzp4Xg==", + "dev": true, + "requires": { + "@solidity-parser/parser": "^0.16.0", + "ajv": "^6.12.6", + "antlr4": "^4.11.0", + "ast-parents": "^0.0.1", + "chalk": "^4.1.2", + "commander": "^10.0.0", + "cosmiconfig": "^8.0.0", + "fast-diff": "^1.2.0", + "glob": "^8.0.3", + "ignore": "^5.2.4", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "prettier": "^2.8.3", + "semver": "^6.3.0", + "strip-ansi": "^6.0.1", + "table": "^6.8.1", + "text-table": "^0.2.0" + } + }, + "solhint-plugin-prettier": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz", + "integrity": "sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "solidity-comments-extractor": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz", + "integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "peer": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } + } }