diff --git a/out/ComposableCoW.sol/ComposableCoW.json b/out/ComposableCoW.sol/ComposableCoW.json index c9a7609..a96323c 100644 --- a/out/ComposableCoW.sol/ComposableCoW.json +++ b/out/ComposableCoW.sol/ComposableCoW.json @@ -613,16 +613,16 @@ } ], "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;;;;;;;;;;;;;;;;;", + "object": "0x60a06040523480156200001157600080fd5b5060405162002230380380620022308339810160408190526200003491620000a3565b806001600160a01b031663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000073573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000999190620000d5565b60805250620000ef565b600060208284031215620000b657600080fd5b81516001600160a01b0381168114620000ce57600080fd5b9392505050565b600060208284031215620000e857600080fd5b5051919050565b60805161211e6200011260003960008181610328015261092a015261211e6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063595001b21161008c5780638f7984ed116100665780638f7984ed1461028c57806395bc26731461029f578063a454687614610303578063f698da251461032357600080fd5b8063595001b2146101e05780636108c5321461023b5780636bfae1ca1461027957600080fd5b806326e0a196116100c857806326e0a1961461015557806353f00b14146101765780635500079d146101ba57806357f1d41a146101cd57600080fd5b80630d0d9800146100ef5780631ab0dd9d146101045780631c7662c814610117575b600080fd5b6101026100fd366004611216565b61034a565b005b6101026101123660046112bb565b61041d565b61014261012536600461130d565b600360209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b610168610163366004611339565b61046d565b60405161014c929190611556565b610189610184366004611578565b610afd565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161014c565b6101426101c83660046117ea565b610c3f565b6101026101db366004611827565b610c6f565b6102166101ee3660046118b0565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014c565b61026961024936600461130d565b600160209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161014c565b6101026102873660046118cd565b610d30565b61010261029a3660046118b0565b610e38565b6101026102ad36600461191f565b336000818152600160209081526040808320858452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690559282526003815282822093825292909252812055565b6101426103113660046118b0565b60006020819052908152604090205481565b6101427f000000000000000000000000000000000000000000000000000000000000000081565b6103548582610d30565b6040517fb6576bdf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063b6576bdf906103a89086908690600401611981565b602060405180830381865afa1580156103c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e99190611995565b336000908152600360205260408120906104056101c8896119ae565b81526020810191909152604001600020555050505050565b3360008181526020819052604090819020849055517f58662f46b4a87d0f96d929b24c37fe25c55d52c0025d0b2bec3936534cc31e57906104619085908590611a1e565b60405180910390a25050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915260606000610518896104df8a6119ae565b878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610ebf92505050565b905061052760208901896118b0565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fb8296fc400000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff91909116906301ffc9a790602401602060405180830381865afa9250505080156105ed575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526105ea91810190611a68565b60015b610623576040517f2c7ca6d700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061065a576040517f2c7ca6d700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5061066860208901896118b0565b73ffffffffffffffffffffffffffffffffffffffff1663b8296fc48a338461069360408e018e611a85565b8d8d6040518863ffffffff1660e01b81526004016106b79796959493929190611aea565b61018060405180830381865afa1580156106d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f99190611b73565b925061074789826107098b6119ae565b8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611001915050565b61077d576040517f03fc2a7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f62af8dc200000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8a16906301ffc9a790602401602060405180830381865afa925050508015610841575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261083e91810190611a68565b60015b6108f15760408051608060208702808301820190935260608201878152869383928a918a9182919086019084908082843760009201919091525050509082525060200161088d8b6119ae565b815260200189898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040516108db929190602001611ce0565b6040516020818303038152906040529150610af1565b80610928576040517f79ac63cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000007fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e4898560405160200161097b9190611d02565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152608060208b028085018201909352606084018b81529193928392918d918d918291908601908490808284376000920191909152505050908252506020016109ec8e6119ae565b81526020018c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050915250604051610a399190602001611d11565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610a7794939291602401611d24565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5fd7e97d000000000000000000000000000000000000000000000000000000001790529250505b50965096945050505050565b600080610b0c83850185611d60565b90506000610b238c83602001518460000151610ebf565b90506000610b3387890189611e82565b9050610b4a8d838560200151866040015185611001565b610b80576040517f03fc2a7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82602001516000015173ffffffffffffffffffffffffffffffffffffffff166314a2a7848e8e8e8e878960200151604001518a60400151896040518963ffffffff1660e01b8152600401610bdb989796959493929190611f40565b60006040518083038186803b158015610bf357600080fd5b505afa158015610c07573d6000803e3d6000fd5b507f1626ba7e0000000000000000000000000000000000000000000000000000000096505050505050505b9998505050505050505050565b600081604051602001610c529190611fb0565b604051602081830303815290604052805190602001209050919050565b610c79858561041d565b6040517fb6576bdf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063b6576bdf90610ccd9085908590600401611981565b602060405180830381865afa158015610cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0e9190611995565b3360009081526003602090815260408083208380529091529020555050505050565b6000610d3f60208401846118b0565b73ffffffffffffffffffffffffffffffffffffffff1603610d8c576040517fd8f59fa500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260016020819052604082209091610dab6101c8866119ae565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558015610e34573373ffffffffffffffffffffffffffffffffffffffff167f2cceac5555b0ca45a3744ced542f54b56ad2eb45e521962372eef212a2cbf361836040516104619190611fc3565b5050565b3360008181526002602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f41f583e2d25b3921afe66987b63b0b5e4cf2acbbbed4a477fd19a22180f3f859910160405180910390a250565b60008151600014610f84576000610ed584610c3f565b604051602001610ee791815260200190565b604051602081830303815290604052805190602001209050610f48836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110e1565b610f7e576040517f4a82146400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50610ffa565b610f8d83610c3f565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260016020908152604080832084845290915290205490915060ff16610ffa576040517f7a93323400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526002602052604081205490911680156110d2576040517ff9ae35a200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f9ae35a2906110899086908a908a908a9060040161201c565b602060405180830381865afa1580156110a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ca9190611a68565b9150506110d8565b60019150505b95945050505050565b6000826110ee85846110f7565b14949350505050565b600081815b845181101561113c576111288286838151811061111b5761111b61205a565b6020026020010151611146565b91508061113481612089565b9150506110fc565b5090505b92915050565b6000818310611162576000828152602084905260409020610ffa565b5060009182526020526040902090565b60006060828403121561118457600080fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff811681146111ac57600080fd5b50565b60008083601f8401126111c157600080fd5b50813567ffffffffffffffff8111156111d957600080fd5b6020830191508360208285010111156111f157600080fd5b9250929050565b80151581146111ac57600080fd5b8035611211816111f8565b919050565b60008060008060006080868803121561122e57600080fd5b853567ffffffffffffffff8082111561124657600080fd5b61125289838a01611172565b9650602088013591506112648261118a565b9094506040870135908082111561127a57600080fd5b50611287888289016111af565b909450925050606086013561129b816111f8565b809150509295509295909350565b60006040828403121561118457600080fd5b600080604083850312156112ce57600080fd5b82359150602083013567ffffffffffffffff8111156112ec57600080fd5b6112f8858286016112a9565b9150509250929050565b80356112118161118a565b6000806040838503121561132057600080fd5b823561132b8161118a565b946020939093013593505050565b6000806000806000806080878903121561135257600080fd5b863561135d8161118a565b9550602087013567ffffffffffffffff8082111561137a57600080fd5b6113868a838b01611172565b9650604089013591508082111561139c57600080fd5b6113a88a838b016111af565b909650945060608901359150808211156113c157600080fd5b818901915089601f8301126113d557600080fd5b8135818111156113e457600080fd5b8a60208260051b85010111156113f957600080fd5b6020830194508093505050509295509295509295565b805173ffffffffffffffffffffffffffffffffffffffff1682526020810151611450602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040810151611478604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606081015160608301526080810151608083015260a08101516114a460a084018263ffffffff169052565b5060c081015160c083015260e081015160e0830152610100808201518184015250610120808201516114d98285018215159052565b5050610140818101519083015261016090810151910152565b6000815180845260005b81811015611518576020818501810151868301820152016114fc565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60006101a0611565838661140f565b806101808401526110d8818401856114f2565b600080600080600080600080600060e08a8c03121561159657600080fd5b89356115a18161118a565b985060208a01356115b18161118a565b975060408a0135965060608a0135955060808a0135945060a08a013567ffffffffffffffff808211156115e357600080fd5b6115ef8d838e016111af565b909650945060c08c013591508082111561160857600080fd5b506116158c828d016111af565b915080935050809150509295985092959850929598565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561167e5761167e61162c565b60405290565b604051610180810167ffffffffffffffff8111828210171561167e5761167e61162c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156116ef576116ef61162c565b604052919050565b600082601f83011261170857600080fd5b813567ffffffffffffffff8111156117225761172261162c565b61175360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016116a8565b81815284602083860101111561176857600080fd5b816020850160208301376000918101602001919091529392505050565b60006060828403121561179757600080fd5b61179f61165b565b905081356117ac8161118a565b815260208281013590820152604082013567ffffffffffffffff8111156117d257600080fd5b6117de848285016116f7565b60408301525092915050565b6000602082840312156117fc57600080fd5b813567ffffffffffffffff81111561181357600080fd5b61181f84828501611785565b949350505050565b60008060008060006080868803121561183f57600080fd5b85359450602086013567ffffffffffffffff8082111561185e57600080fd5b61186a89838a016112a9565b95506040880135915061187c8261118a565b9093506060870135908082111561189257600080fd5b5061189f888289016111af565b969995985093965092949392505050565b6000602082840312156118c257600080fd5b8135610ffa8161118a565b600080604083850312156118e057600080fd5b823567ffffffffffffffff8111156118f757600080fd5b61190385828601611172565b9250506020830135611914816111f8565b809150509250929050565b60006020828403121561193157600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208152600061181f602083018486611938565b6000602082840312156119a757600080fd5b5051919050565b60006111403683611785565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126119ef57600080fd5b830160208101925035905067ffffffffffffffff811115611a0f57600080fd5b8036038213156111f157600080fd5b82815260406020820152813560408201526000611a3e60208401846119ba565b60406060850152611a53608085018284611938565b9695505050505050565b8051611211816111f8565b600060208284031215611a7a57600080fd5b8151610ffa816111f8565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611aba57600080fd5b83018035915067ffffffffffffffff821115611ad557600080fd5b6020019150368190038213156111f157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff808a16835280891660208401525086604083015260a06060830152611b2a60a083018688611938565b8281036080840152611b3d818587611938565b9a9950505050505050505050565b80516112118161118a565b63ffffffff811681146111ac57600080fd5b805161121181611b56565b60006101808284031215611b8657600080fd5b611b8e611684565b611b9783611b4b565b8152611ba560208401611b4b565b6020820152611bb660408401611b4b565b60408201526060830151606082015260808301516080820152611bdb60a08401611b68565b60a082015260c083015160c082015260e083015160e0820152610100808401518183015250610120611c0e818501611a5d565b908201526101408381015190820152610160928301519281019290925250919050565b73ffffffffffffffffffffffffffffffffffffffff815116825260208101516020830152600060408201516060604085015261181f60608501826114f2565b805160608084528151908401819052600091602091908201906080860190845b81811015611cac57835183529284019291840191600101611c90565b505082850151915085810383870152611cc58183611c31565b92505050604083015184820360408601526110d882826114f2565b60006101a0611cef838661140f565b806101808401526110d881840185611c70565b6101808101611140828461140f565b602081526000610ffa6020830184611c70565b848152836020820152608060408201526000611d4360808301856114f2565b8281036060840152611d5581856114f2565b979650505050505050565b60006020808385031215611d7357600080fd5b823567ffffffffffffffff80821115611d8b57600080fd5b9084019060608287031215611d9f57600080fd5b611da761165b565b823582811115611db657600080fd5b8301601f81018813611dc757600080fd5b803583811115611dd957611dd961162c565b8060051b611de88782016116a8565b918252828101870191878101908b841115611e0257600080fd5b938801935b83851015611e2057843582529388019390880190611e07565b8552505050508284013582811115611e3757600080fd5b611e4388828601611785565b85830152506040830135935081841115611e5c57600080fd5b611e68878585016116f7565b60408201529695505050505050565b803561121181611b56565b60006101808284031215611e9557600080fd5b611e9d611684565b611ea683611302565b8152611eb460208401611302565b6020820152611ec560408401611302565b60408201526060830135606082015260808301356080820152611eea60a08401611e77565b60a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120611f1d818501611206565b908201526101408381013590820152610160928301359281019290925250919050565b600061026073ffffffffffffffffffffffffffffffffffffffff808c168452808b166020850152508860408401528760608401528660808401528060a0840152611f8c818401876114f2565b905082810360c0840152611fa081866114f2565b915050610c3260e083018461140f565b602081526000610ffa6020830184611c31565b6020815260008235611fd48161118a565b73ffffffffffffffffffffffffffffffffffffffff81166020840152506020830135604083015261200860408401846119ba565b6060808501526110d8608085018284611938565b60006101e061202b838861140f565b85610180840152806101a084015261204581840186611c31565b90508281036101c0840152611d5581856114f2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036120e1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220eaff201b4b30247d14425b23b74d47acb3f8445dd5c0b23656f9949f8b67544f64736f6c63430008130033", + "sourceMap": "579:11686:136:-:0;;;2178:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2253:11;-1:-1:-1;;;;;2239:42:136;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2221:62;;-1:-1:-1;579:11686:136;;14:290:170;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:170;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:170: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:170;;309:184;-1:-1:-1;309:184:170:o;:::-;579:11686:136;;;;;;;;;;;;;;;;;", "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", + "object": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063595001b21161008c5780638f7984ed116100665780638f7984ed1461028c57806395bc26731461029f578063a454687614610303578063f698da251461032357600080fd5b8063595001b2146101e05780636108c5321461023b5780636bfae1ca1461027957600080fd5b806326e0a196116100c857806326e0a1961461015557806353f00b14146101765780635500079d146101ba57806357f1d41a146101cd57600080fd5b80630d0d9800146100ef5780631ab0dd9d146101045780631c7662c814610117575b600080fd5b6101026100fd366004611216565b61034a565b005b6101026101123660046112bb565b61041d565b61014261012536600461130d565b600360209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b610168610163366004611339565b61046d565b60405161014c929190611556565b610189610184366004611578565b610afd565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161014c565b6101426101c83660046117ea565b610c3f565b6101026101db366004611827565b610c6f565b6102166101ee3660046118b0565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014c565b61026961024936600461130d565b600160209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161014c565b6101026102873660046118cd565b610d30565b61010261029a3660046118b0565b610e38565b6101026102ad36600461191f565b336000818152600160209081526040808320858452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690559282526003815282822093825292909252812055565b6101426103113660046118b0565b60006020819052908152604090205481565b6101427f000000000000000000000000000000000000000000000000000000000000000081565b6103548582610d30565b6040517fb6576bdf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063b6576bdf906103a89086908690600401611981565b602060405180830381865afa1580156103c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e99190611995565b336000908152600360205260408120906104056101c8896119ae565b81526020810191909152604001600020555050505050565b3360008181526020819052604090819020849055517f58662f46b4a87d0f96d929b24c37fe25c55d52c0025d0b2bec3936534cc31e57906104619085908590611a1e565b60405180910390a25050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915260606000610518896104df8a6119ae565b878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610ebf92505050565b905061052760208901896118b0565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fb8296fc400000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff91909116906301ffc9a790602401602060405180830381865afa9250505080156105ed575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526105ea91810190611a68565b60015b610623576040517f2c7ca6d700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061065a576040517f2c7ca6d700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5061066860208901896118b0565b73ffffffffffffffffffffffffffffffffffffffff1663b8296fc48a338461069360408e018e611a85565b8d8d6040518863ffffffff1660e01b81526004016106b79796959493929190611aea565b61018060405180830381865afa1580156106d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f99190611b73565b925061074789826107098b6119ae565b8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611001915050565b61077d576040517f03fc2a7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f62af8dc200000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8a16906301ffc9a790602401602060405180830381865afa925050508015610841575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261083e91810190611a68565b60015b6108f15760408051608060208702808301820190935260608201878152869383928a918a9182919086019084908082843760009201919091525050509082525060200161088d8b6119ae565b815260200189898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040516108db929190602001611ce0565b6040516020818303038152906040529150610af1565b80610928576040517f79ac63cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000007fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e4898560405160200161097b9190611d02565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152608060208b028085018201909352606084018b81529193928392918d918d918291908601908490808284376000920191909152505050908252506020016109ec8e6119ae565b81526020018c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050915250604051610a399190602001611d11565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610a7794939291602401611d24565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5fd7e97d000000000000000000000000000000000000000000000000000000001790529250505b50965096945050505050565b600080610b0c83850185611d60565b90506000610b238c83602001518460000151610ebf565b90506000610b3387890189611e82565b9050610b4a8d838560200151866040015185611001565b610b80576040517f03fc2a7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82602001516000015173ffffffffffffffffffffffffffffffffffffffff166314a2a7848e8e8e8e878960200151604001518a60400151896040518963ffffffff1660e01b8152600401610bdb989796959493929190611f40565b60006040518083038186803b158015610bf357600080fd5b505afa158015610c07573d6000803e3d6000fd5b507f1626ba7e0000000000000000000000000000000000000000000000000000000096505050505050505b9998505050505050505050565b600081604051602001610c529190611fb0565b604051602081830303815290604052805190602001209050919050565b610c79858561041d565b6040517fb6576bdf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063b6576bdf90610ccd9085908590600401611981565b602060405180830381865afa158015610cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0e9190611995565b3360009081526003602090815260408083208380529091529020555050505050565b6000610d3f60208401846118b0565b73ffffffffffffffffffffffffffffffffffffffff1603610d8c576040517fd8f59fa500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260016020819052604082209091610dab6101c8866119ae565b8152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558015610e34573373ffffffffffffffffffffffffffffffffffffffff167f2cceac5555b0ca45a3744ced542f54b56ad2eb45e521962372eef212a2cbf361836040516104619190611fc3565b5050565b3360008181526002602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915591519182527f41f583e2d25b3921afe66987b63b0b5e4cf2acbbbed4a477fd19a22180f3f859910160405180910390a250565b60008151600014610f84576000610ed584610c3f565b604051602001610ee791815260200190565b604051602081830303815290604052805190602001209050610f48836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836110e1565b610f7e576040517f4a82146400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50610ffa565b610f8d83610c3f565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260016020908152604080832084845290915290205490915060ff16610ffa576040517f7a93323400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526002602052604081205490911680156110d2576040517ff9ae35a200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f9ae35a2906110899086908a908a908a9060040161201c565b602060405180830381865afa1580156110a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ca9190611a68565b9150506110d8565b60019150505b95945050505050565b6000826110ee85846110f7565b14949350505050565b600081815b845181101561113c576111288286838151811061111b5761111b61205a565b6020026020010151611146565b91508061113481612089565b9150506110fc565b5090505b92915050565b6000818310611162576000828152602084905260409020610ffa565b5060009182526020526040902090565b60006060828403121561118457600080fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff811681146111ac57600080fd5b50565b60008083601f8401126111c157600080fd5b50813567ffffffffffffffff8111156111d957600080fd5b6020830191508360208285010111156111f157600080fd5b9250929050565b80151581146111ac57600080fd5b8035611211816111f8565b919050565b60008060008060006080868803121561122e57600080fd5b853567ffffffffffffffff8082111561124657600080fd5b61125289838a01611172565b9650602088013591506112648261118a565b9094506040870135908082111561127a57600080fd5b50611287888289016111af565b909450925050606086013561129b816111f8565b809150509295509295909350565b60006040828403121561118457600080fd5b600080604083850312156112ce57600080fd5b82359150602083013567ffffffffffffffff8111156112ec57600080fd5b6112f8858286016112a9565b9150509250929050565b80356112118161118a565b6000806040838503121561132057600080fd5b823561132b8161118a565b946020939093013593505050565b6000806000806000806080878903121561135257600080fd5b863561135d8161118a565b9550602087013567ffffffffffffffff8082111561137a57600080fd5b6113868a838b01611172565b9650604089013591508082111561139c57600080fd5b6113a88a838b016111af565b909650945060608901359150808211156113c157600080fd5b818901915089601f8301126113d557600080fd5b8135818111156113e457600080fd5b8a60208260051b85010111156113f957600080fd5b6020830194508093505050509295509295509295565b805173ffffffffffffffffffffffffffffffffffffffff1682526020810151611450602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040810151611478604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606081015160608301526080810151608083015260a08101516114a460a084018263ffffffff169052565b5060c081015160c083015260e081015160e0830152610100808201518184015250610120808201516114d98285018215159052565b5050610140818101519083015261016090810151910152565b6000815180845260005b81811015611518576020818501810151868301820152016114fc565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60006101a0611565838661140f565b806101808401526110d8818401856114f2565b600080600080600080600080600060e08a8c03121561159657600080fd5b89356115a18161118a565b985060208a01356115b18161118a565b975060408a0135965060608a0135955060808a0135945060a08a013567ffffffffffffffff808211156115e357600080fd5b6115ef8d838e016111af565b909650945060c08c013591508082111561160857600080fd5b506116158c828d016111af565b915080935050809150509295985092959850929598565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561167e5761167e61162c565b60405290565b604051610180810167ffffffffffffffff8111828210171561167e5761167e61162c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156116ef576116ef61162c565b604052919050565b600082601f83011261170857600080fd5b813567ffffffffffffffff8111156117225761172261162c565b61175360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016116a8565b81815284602083860101111561176857600080fd5b816020850160208301376000918101602001919091529392505050565b60006060828403121561179757600080fd5b61179f61165b565b905081356117ac8161118a565b815260208281013590820152604082013567ffffffffffffffff8111156117d257600080fd5b6117de848285016116f7565b60408301525092915050565b6000602082840312156117fc57600080fd5b813567ffffffffffffffff81111561181357600080fd5b61181f84828501611785565b949350505050565b60008060008060006080868803121561183f57600080fd5b85359450602086013567ffffffffffffffff8082111561185e57600080fd5b61186a89838a016112a9565b95506040880135915061187c8261118a565b9093506060870135908082111561189257600080fd5b5061189f888289016111af565b969995985093965092949392505050565b6000602082840312156118c257600080fd5b8135610ffa8161118a565b600080604083850312156118e057600080fd5b823567ffffffffffffffff8111156118f757600080fd5b61190385828601611172565b9250506020830135611914816111f8565b809150509250929050565b60006020828403121561193157600080fd5b5035919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208152600061181f602083018486611938565b6000602082840312156119a757600080fd5b5051919050565b60006111403683611785565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126119ef57600080fd5b830160208101925035905067ffffffffffffffff811115611a0f57600080fd5b8036038213156111f157600080fd5b82815260406020820152813560408201526000611a3e60208401846119ba565b60406060850152611a53608085018284611938565b9695505050505050565b8051611211816111f8565b600060208284031215611a7a57600080fd5b8151610ffa816111f8565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611aba57600080fd5b83018035915067ffffffffffffffff821115611ad557600080fd5b6020019150368190038213156111f157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff808a16835280891660208401525086604083015260a06060830152611b2a60a083018688611938565b8281036080840152611b3d818587611938565b9a9950505050505050505050565b80516112118161118a565b63ffffffff811681146111ac57600080fd5b805161121181611b56565b60006101808284031215611b8657600080fd5b611b8e611684565b611b9783611b4b565b8152611ba560208401611b4b565b6020820152611bb660408401611b4b565b60408201526060830151606082015260808301516080820152611bdb60a08401611b68565b60a082015260c083015160c082015260e083015160e0820152610100808401518183015250610120611c0e818501611a5d565b908201526101408381015190820152610160928301519281019290925250919050565b73ffffffffffffffffffffffffffffffffffffffff815116825260208101516020830152600060408201516060604085015261181f60608501826114f2565b805160608084528151908401819052600091602091908201906080860190845b81811015611cac57835183529284019291840191600101611c90565b505082850151915085810383870152611cc58183611c31565b92505050604083015184820360408601526110d882826114f2565b60006101a0611cef838661140f565b806101808401526110d881840185611c70565b6101808101611140828461140f565b602081526000610ffa6020830184611c70565b848152836020820152608060408201526000611d4360808301856114f2565b8281036060840152611d5581856114f2565b979650505050505050565b60006020808385031215611d7357600080fd5b823567ffffffffffffffff80821115611d8b57600080fd5b9084019060608287031215611d9f57600080fd5b611da761165b565b823582811115611db657600080fd5b8301601f81018813611dc757600080fd5b803583811115611dd957611dd961162c565b8060051b611de88782016116a8565b918252828101870191878101908b841115611e0257600080fd5b938801935b83851015611e2057843582529388019390880190611e07565b8552505050508284013582811115611e3757600080fd5b611e4388828601611785565b85830152506040830135935081841115611e5c57600080fd5b611e68878585016116f7565b60408201529695505050505050565b803561121181611b56565b60006101808284031215611e9557600080fd5b611e9d611684565b611ea683611302565b8152611eb460208401611302565b6020820152611ec560408401611302565b60408201526060830135606082015260808301356080820152611eea60a08401611e77565b60a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120611f1d818501611206565b908201526101408381013590820152610160928301359281019290925250919050565b600061026073ffffffffffffffffffffffffffffffffffffffff808c168452808b166020850152508860408401528760608401528660808401528060a0840152611f8c818401876114f2565b905082810360c0840152611fa081866114f2565b915050610c3260e083018461140f565b602081526000610ffa6020830184611c31565b6020815260008235611fd48161118a565b73ffffffffffffffffffffffffffffffffffffffff81166020840152506020830135604083015261200860408401846119ba565b6060808501526110d8608085018284611938565b60006101e061202b838861140f565b85610180840152806101a084015261204581840186611c31565b90508281036101c0840152611d5581856114f2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036120e1577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220eaff201b4b30247d14425b23b74d47acb3f8445dd5c0b23656f9949f8b67544f64736f6c63430008130033", + "sourceMap": "579:11686:136:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4518:524;;;;;;:::i;:::-;;:::i;:::-;;2573:154;;;;;;:::i;:::-;;:::i;2014:62::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3199:25:170;;;3187:2;3172:18;2014:62:136;;;;;;;;7821:2111;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;6022:1259::-;;;;;;:::i;:::-;;:::i;:::-;;;8231:66:170;8219:79;;;8201:98;;8189:2;8174:18;6022:1259:136;8057:248:170;10165:153:136;;;;;;:::i;:::-;;:::i;3136:425::-;;;;;;:::i;:::-;;:::i;1906:48::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12281:42:170;12269:55;;;12251:74;;12239:2;12224:18;1906:48:136;12085:246:170;1794:64:136;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12501:14:170;;12494:22;12476:41;;12464:2;12449:18;1794:64:136;12336:187:170;3767:358:136;;;;;;:::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:136;:58;-1:-1:-1;;;;;4518:524:136: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:136;8191:11;8205:27;8211:5;8205:27;8218:6;8205:27;:::i;:::-;8226:5;;8205:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8205:5:136;;-1:-1:-1;;;8205:27:136:i;:::-;8191:41;-1:-1:-1;8353:14:136;;;;:6;:14;:::i;:::-;8318:137;;;;;8401:44;8318:137;;;8201:98:170;8318:69:136;;;;;;;;8174:18:170;;8318:137:136;;;;;;;;;;;;;;;;;;-1:-1:-1;8318:137:136;;;;;;;;;;;;;;;;;;;;;:::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:136;8914:5;8921:3;8902:53;8926:6;8902:53;:::i;:::-;8934:13;;8902:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8949:5:136;;-1:-1:-1;8902:11:136;;-1:-1:-1;;8902:53:136:i;:::-;8896:115;;8979:21;;;;;;;;;;;;;;8896:115;9025:93;;;;;9076:41;9025:93;;;8201:98:170;9025:50:136;;;;;;8174:18:170;;9025:93:136;;;;;;;;;;;;;;;;;;-1:-1:-1;9025:93:136;;;;;;;;;;;;;;;;;;;;;:::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:136;;;-1:-1:-1;9839:75:136;;;9862:6;9839:75;:::i;:::-;;;;;9885:13;;9839:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9839:75:136;;-1:-1:-1;9821:94:136;;;;;;;;;:::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:136;;;-1:-1:-1;9504:75:136;;;9527:6;9504:75;:::i;:::-;;;;;9550:13;;9504:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9504:75:136;;-1:-1:-1;9493:87:136;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;9285:309;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9021:905:136;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:136;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:136;;-1:-1:-1;;;;;;;6022:1259:136;;;;;;;;;;;;:::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:136: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:136;: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:170;;;5629:35:136;;12224:18:170;5629:35:136;;;;;;;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:170;;27028:2;27019:12;;26855:182;11011:26:136;;;;;;;;;;;;;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:136;;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:91:-;1247:4;1299;1270:25;1283:5;1290:4;1270:12;:25::i;:::-;:33;;1156:154;-1:-1:-1;;;;1156:154:91: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:91;;;;:::i;:::-;;;;2073:116;;;-1:-1:-1;2205:12:91;-1:-1:-1;1934:290:91;;;;;:::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:91;9517:15;;;9552:4;9545:15;9598:4;9582:21;;;9205:147::o;14:170:170:-;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:170;14:170;-1:-1:-1;14:170:170: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:170;;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:170;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:170;-1:-1:-1;;1900:2:170;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:170: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:170;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:170;-1:-1:-1;4180:2:170;4165:18;;4152:32;;-1:-1:-1;4196:16:170;;;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:170;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:170;7255:18;;7242:32;7283:48;7242:32;7283:48;:::i;:::-;7350:7;-1:-1:-1;7404:2:170;7389:18;;7376:32;;-1:-1:-1;7455:2:170;7440:18;;7427:32;;-1:-1:-1;7506:3:170;7491:19;;7478:33;;-1:-1:-1;7562:3:170;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:170;-1:-1:-1;7847:3:170;7832:19;;7819:33;;-1:-1:-1;7864:16:170;;;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:170: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:170: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:170: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:170;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:170;;-1:-1:-1;11772:8:170;;11667:86;10910:903;-1:-1:-1;;;10910:903:170: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:170;;13336:180;-1:-1:-1;13336:180:170: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:170;;14100:184;-1:-1:-1;14100:184:170: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:170;;-1:-1:-1;14983:18:170;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:170: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:170;16754:30;;16751:50;;;16797:1;16794;16787:12;16751:50;16830:4;16818:17;;-1:-1:-1;16861:14:170;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:170: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:170;18077:1155;-1:-1:-1;18077:1155:170: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:170: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:170;;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:170;;;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:170: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:170;23738:1114;-1:-1:-1;23738:1114:170: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:170;28260:13;;27930:349::o", "linkReferences": {}, "immutableReferences": { - "53564": [ + "53641": [ { "start": 808, "length": 32 @@ -650,7 +650,7 @@ "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}", + "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/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"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\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]},\"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" @@ -1376,20 +1376,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -1404,7 +1403,23 @@ "libraries": {} }, "sources": { - "lib/@openzeppelin/contracts/interfaces/IERC20.sol": { + "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/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", "urls": [ "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", @@ -1412,7 +1427,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", "urls": [ "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", @@ -1420,7 +1435,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol": { + "lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol": { "keccak256": "0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac", "urls": [ "bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04", @@ -1428,22 +1443,6 @@ ], "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": [ @@ -1661,10 +1660,10 @@ "license": "GPL-3.0" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" }, @@ -1697,13 +1696,13 @@ }, "ast": { "absolutePath": "src/ComposableCoW.sol", - "id": 54178, + "id": 54255, "exportedSymbols": { "CoWSettlement": [ - 55972 + 56132 ], "ComposableCoW": [ - 54177 + 54254 ], "EIP712": [ 52037 @@ -1730,19 +1729,19 @@ 51492 ], "GPv2Interaction": [ - 17090 + 14303 ], "GPv2Order": [ - 17246 + 14459 ], "HandlerContext": [ 50638 ], "IConditionalOrder": [ - 54437 + 54540 ], "IConditionalOrderGenerator": [ - 54468 + 54571 ], "IERC165": [ 52197 @@ -1772,16 +1771,16 @@ 50801 ], "ISwapGuard": [ - 54496 + 54599 ], "IValueFactory": [ - 54508 + 54611 ], "MarshalLib": [ 51598 ], "MerkleProof": [ - 1245 + 46395 ], "Safe": [ 48851 @@ -1794,12 +1793,12 @@ ] }, "nodeType": "SourceUnit", - "src": "36:12230:134", + "src": "36:12230:136", "nodes": [ { - "id": 53503, + "id": 53580, "nodeType": "PragmaDirective", - "src": "36:31:134", + "src": "36:31:136", "nodes": [], "literals": [ "solidity", @@ -1812,24 +1811,24 @@ ] }, { - "id": 53505, + "id": 53582, "nodeType": "ImportDirective", - "src": "69:87:134", + "src": "69:87:136", "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol", + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol", "file": "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol", "nameLocation": "-1:-1:-1", - "scope": 54178, - "sourceUnit": 1246, + "scope": 54255, + "sourceUnit": 46396, "symbolAliases": [ { "foreign": { - "id": 53504, + "id": 53581, "name": "MerkleProof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "77:11:134", + "referencedDeclaration": 46395, + "src": "77:11:136", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1838,181 +1837,181 @@ "unitAlias": "" }, { - "id": 53506, + "id": 53583, "nodeType": "ImportDirective", - "src": "157:52:134", + "src": "157:52:136", "nodes": [], "absolutePath": "lib/safe/contracts/handler/ExtensibleFallbackHandler.sol", "file": "safe/handler/ExtensibleFallbackHandler.sol", "nameLocation": "-1:-1:-1", - "scope": 54178, + "scope": 54255, "sourceUnit": 50608, "symbolAliases": [], "unitAlias": "" }, { - "id": 53507, + "id": 53584, "nodeType": "ImportDirective", - "src": "211:44:134", + "src": "211:44:136", "nodes": [], "absolutePath": "src/interfaces/IConditionalOrder.sol", "file": "./interfaces/IConditionalOrder.sol", "nameLocation": "-1:-1:-1", - "scope": 54178, - "sourceUnit": 54469, + "scope": 54255, + "sourceUnit": 54572, "symbolAliases": [], "unitAlias": "" }, { - "id": 53508, + "id": 53585, "nodeType": "ImportDirective", - "src": "256:37:134", + "src": "256:37:136", "nodes": [], "absolutePath": "src/interfaces/ISwapGuard.sol", "file": "./interfaces/ISwapGuard.sol", "nameLocation": "-1:-1:-1", - "scope": 54178, - "sourceUnit": 54497, + "scope": 54255, + "sourceUnit": 54600, "symbolAliases": [], "unitAlias": "" }, { - "id": 53509, + "id": 53586, "nodeType": "ImportDirective", - "src": "294:40:134", + "src": "294:40:136", "nodes": [], "absolutePath": "src/interfaces/IValueFactory.sol", "file": "./interfaces/IValueFactory.sol", "nameLocation": "-1:-1:-1", - "scope": 54178, - "sourceUnit": 54509, + "scope": 54255, + "sourceUnit": 54612, "symbolAliases": [], "unitAlias": "" }, { - "id": 53510, + "id": 53587, "nodeType": "ImportDirective", - "src": "335:38:134", + "src": "335:38:136", "nodes": [], "absolutePath": "src/vendored/CoWSettlement.sol", "file": "./vendored/CoWSettlement.sol", "nameLocation": "-1:-1:-1", - "scope": 54178, - "sourceUnit": 55973, + "scope": 54255, + "sourceUnit": 56133, "symbolAliases": [], "unitAlias": "" }, { - "id": 54177, + "id": 54254, "nodeType": "ContractDefinition", - "src": "579:11686:134", + "src": "579:11686:136", "nodes": [ { - "id": 53515, + "id": 53592, "nodeType": "ErrorDefinition", - "src": "652:23:134", + "src": "652:23:136", "nodes": [], "errorSelector": "4a821464", "name": "ProofNotAuthed", - "nameLocation": "658:14:134", + "nameLocation": "658:14:136", "parameters": { - "id": 53514, + "id": 53591, "nodeType": "ParameterList", "parameters": [], - "src": "672:2:134" + "src": "672:2:136" } }, { - "id": 53517, + "id": 53594, "nodeType": "ErrorDefinition", - "src": "680:29:134", + "src": "680:29:136", "nodes": [], "errorSelector": "7a933234", "name": "SingleOrderNotAuthed", - "nameLocation": "686:20:134", + "nameLocation": "686:20:136", "parameters": { - "id": 53516, + "id": 53593, "nodeType": "ParameterList", "parameters": [], - "src": "706:2:134" + "src": "706:2:136" } }, { - "id": 53519, + "id": 53596, "nodeType": "ErrorDefinition", - "src": "714:28:134", + "src": "714:28:136", "nodes": [], "errorSelector": "03fc2a7e", "name": "SwapGuardRestricted", - "nameLocation": "720:19:134", + "nameLocation": "720:19:136", "parameters": { - "id": 53518, + "id": 53595, "nodeType": "ParameterList", "parameters": [], - "src": "739:2:134" + "src": "739:2:136" } }, { - "id": 53521, + "id": 53598, "nodeType": "ErrorDefinition", - "src": "747:23:134", + "src": "747:23:136", "nodes": [], "errorSelector": "d8f59fa5", "name": "InvalidHandler", - "nameLocation": "753:14:134", + "nameLocation": "753:14:136", "parameters": { - "id": 53520, + "id": 53597, "nodeType": "ParameterList", "parameters": [], - "src": "767:2:134" + "src": "767:2:136" } }, { - "id": 53523, + "id": 53600, "nodeType": "ErrorDefinition", - "src": "775:31:134", + "src": "775:31:136", "nodes": [], "errorSelector": "79ac63cd", "name": "InvalidFallbackHandler", - "nameLocation": "781:22:134", + "nameLocation": "781:22:136", "parameters": { - "id": 53522, + "id": 53599, "nodeType": "ParameterList", "parameters": [], - "src": "803:2:134" + "src": "803:2:136" } }, { - "id": 53525, + "id": 53602, "nodeType": "ErrorDefinition", - "src": "811:30:134", + "src": "811:30:136", "nodes": [], "errorSelector": "2c7ca6d7", "name": "InterfaceNotSupported", - "nameLocation": "817:21:134", + "nameLocation": "817:21:136", "parameters": { - "id": 53524, + "id": 53601, "nodeType": "ParameterList", "parameters": [], - "src": "838:2:134" + "src": "838:2:136" } }, { - "id": 53534, + "id": 53611, "nodeType": "StructDefinition", - "src": "930:139:134", + "src": "930:139:136", "nodes": [], "canonicalName": "ComposableCoW.PayloadStruct", "members": [ { "constant": false, - "id": 53528, + "id": 53605, "mutability": "mutable", "name": "proof", - "nameLocation": "971:5:134", + "nameLocation": "971:5:136", "nodeType": "VariableDeclaration", - "scope": 53534, - "src": "961:15:134", + "scope": 53611, + "src": "961:15:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2021,18 +2020,18 @@ }, "typeName": { "baseType": { - "id": 53526, + "id": 53603, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "961:7:134", + "src": "961:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 53527, + "id": 53604, "nodeType": "ArrayTypeName", - "src": "961:9:134", + "src": "961:9:136", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2042,37 +2041,37 @@ }, { "constant": false, - "id": 53531, + "id": 53608, "mutability": "mutable", "name": "params", - "nameLocation": "1027:6:134", + "nameLocation": "1027:6:136", "nodeType": "VariableDeclaration", - "scope": 53534, - "src": "986:47:134", + "scope": 53611, + "src": "986:47:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 53530, + "id": 53607, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53529, + "id": 53606, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "986:17:134", - "1004:22:134" + "986:17:136", + "1004:22:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "986:40:134" + "referencedDeclaration": 54512, + "src": "986:40:136" }, - "referencedDeclaration": 54415, - "src": "986:40:134", + "referencedDeclaration": 54512, + "src": "986:40:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, @@ -2080,13 +2079,13 @@ }, { "constant": false, - "id": 53533, + "id": 53610, "mutability": "mutable", "name": "offchainInput", - "nameLocation": "1049:13:134", + "nameLocation": "1049:13:136", "nodeType": "VariableDeclaration", - "scope": 53534, - "src": "1043:19:134", + "scope": 53611, + "src": "1043:19:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2094,10 +2093,10 @@ "typeString": "bytes" }, "typeName": { - "id": 53532, + "id": 53609, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1043:5:134", + "src": "1043:5:136", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2107,26 +2106,26 @@ } ], "name": "PayloadStruct", - "nameLocation": "937:13:134", - "scope": 54177, + "nameLocation": "937:13:136", + "scope": 54254, "visibility": "public" }, { - "id": 53539, + "id": 53616, "nodeType": "StructDefinition", - "src": "1129:66:134", + "src": "1129:66:136", "nodes": [], "canonicalName": "ComposableCoW.Proof", "members": [ { "constant": false, - "id": 53536, + "id": 53613, "mutability": "mutable", "name": "location", - "nameLocation": "1160:8:134", + "nameLocation": "1160:8:136", "nodeType": "VariableDeclaration", - "scope": 53539, - "src": "1152:16:134", + "scope": 53616, + "src": "1152:16:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2134,10 +2133,10 @@ "typeString": "uint256" }, "typeName": { - "id": 53535, + "id": 53612, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1152:7:134", + "src": "1152:7:136", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2147,13 +2146,13 @@ }, { "constant": false, - "id": 53538, + "id": 53615, "mutability": "mutable", "name": "data", - "nameLocation": "1184:4:134", + "nameLocation": "1184:4:136", "nodeType": "VariableDeclaration", - "scope": 53539, - "src": "1178:10:134", + "scope": 53616, + "src": "1178:10:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2161,10 +2160,10 @@ "typeString": "bytes" }, "typeName": { - "id": 53537, + "id": 53614, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1178:5:134", + "src": "1178:5:136", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2174,33 +2173,33 @@ } ], "name": "Proof", - "nameLocation": "1136:5:134", - "scope": 54177, + "nameLocation": "1136:5:136", + "scope": 54254, "visibility": "public" }, { - "id": 53548, + "id": 53625, "nodeType": "EventDefinition", - "src": "1279:70:134", + "src": "1279:70:136", "nodes": [], "anonymous": false, "eventSelector": "58662f46b4a87d0f96d929b24c37fe25c55d52c0025d0b2bec3936534cc31e57", "name": "MerkleRootSet", - "nameLocation": "1285:13:134", + "nameLocation": "1285:13:136", "parameters": { - "id": 53547, + "id": 53624, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53541, + "id": 53618, "indexed": true, "mutability": "mutable", "name": "owner", - "nameLocation": "1315:5:134", + "nameLocation": "1315:5:136", "nodeType": "VariableDeclaration", - "scope": 53548, - "src": "1299:21:134", + "scope": 53625, + "src": "1299:21:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2208,10 +2207,10 @@ "typeString": "address" }, "typeName": { - "id": 53540, + "id": 53617, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1299:7:134", + "src": "1299:7:136", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2222,14 +2221,14 @@ }, { "constant": false, - "id": 53543, + "id": 53620, "indexed": false, "mutability": "mutable", "name": "root", - "nameLocation": "1330:4:134", + "nameLocation": "1330:4:136", "nodeType": "VariableDeclaration", - "scope": 53548, - "src": "1322:12:134", + "scope": 53625, + "src": "1322:12:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2237,10 +2236,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 53542, + "id": 53619, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1322:7:134", + "src": "1322:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2250,69 +2249,69 @@ }, { "constant": false, - "id": 53546, + "id": 53623, "indexed": false, "mutability": "mutable", "name": "proof", - "nameLocation": "1342:5:134", + "nameLocation": "1342:5:136", "nodeType": "VariableDeclaration", - "scope": 53548, - "src": "1336:11:134", + "scope": 53625, + "src": "1336:11:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_memory_ptr", + "typeIdentifier": "t_struct$_Proof_$53616_memory_ptr", "typeString": "struct ComposableCoW.Proof" }, "typeName": { - "id": 53545, + "id": 53622, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53544, + "id": 53621, "name": "Proof", "nameLocations": [ - "1336:5:134" + "1336:5:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53539, - "src": "1336:5:134" + "referencedDeclaration": 53616, + "src": "1336:5:136" }, - "referencedDeclaration": 53539, - "src": "1336:5:134", + "referencedDeclaration": 53616, + "src": "1336:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_storage_ptr", + "typeIdentifier": "t_struct$_Proof_$53616_storage_ptr", "typeString": "struct ComposableCoW.Proof" } }, "visibility": "internal" } ], - "src": "1298:50:134" + "src": "1298:50:136" } }, { - "id": 53555, + "id": 53632, "nodeType": "EventDefinition", - "src": "1354:102:134", + "src": "1354:102:136", "nodes": [], "anonymous": false, "eventSelector": "2cceac5555b0ca45a3744ced542f54b56ad2eb45e521962372eef212a2cbf361", "name": "ConditionalOrderCreated", - "nameLocation": "1360:23:134", + "nameLocation": "1360:23:136", "parameters": { - "id": 53554, + "id": 53631, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53550, + "id": 53627, "indexed": true, "mutability": "mutable", "name": "owner", - "nameLocation": "1400:5:134", + "nameLocation": "1400:5:136", "nodeType": "VariableDeclaration", - "scope": 53555, - "src": "1384:21:134", + "scope": 53632, + "src": "1384:21:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2320,10 +2319,10 @@ "typeString": "address" }, "typeName": { - "id": 53549, + "id": 53626, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1384:7:134", + "src": "1384:7:136", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2334,70 +2333,70 @@ }, { "constant": false, - "id": 53553, + "id": 53630, "indexed": false, "mutability": "mutable", "name": "params", - "nameLocation": "1448:6:134", + "nameLocation": "1448:6:136", "nodeType": "VariableDeclaration", - "scope": 53555, - "src": "1407:47:134", + "scope": 53632, + "src": "1407:47:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 53552, + "id": 53629, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53551, + "id": 53628, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "1407:17:134", - "1425:22:134" + "1407:17:136", + "1425:22:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "1407:40:134" + "referencedDeclaration": 54512, + "src": "1407:40:136" }, - "referencedDeclaration": 54415, - "src": "1407:40:134", + "referencedDeclaration": 54512, + "src": "1407:40:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, "visibility": "internal" } ], - "src": "1383:72:134" + "src": "1383:72:136" } }, { - "id": 53562, + "id": 53639, "nodeType": "EventDefinition", - "src": "1461:64:134", + "src": "1461:64:136", "nodes": [], "anonymous": false, "eventSelector": "41f583e2d25b3921afe66987b63b0b5e4cf2acbbbed4a477fd19a22180f3f859", "name": "SwapGuardSet", - "nameLocation": "1467:12:134", + "nameLocation": "1467:12:136", "parameters": { - "id": 53561, + "id": 53638, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53557, + "id": 53634, "indexed": true, "mutability": "mutable", "name": "owner", - "nameLocation": "1496:5:134", + "nameLocation": "1496:5:136", "nodeType": "VariableDeclaration", - "scope": 53562, - "src": "1480:21:134", + "scope": 53639, + "src": "1480:21:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2405,10 +2404,10 @@ "typeString": "address" }, "typeName": { - "id": 53556, + "id": 53633, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1480:7:134", + "src": "1480:7:136", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2419,57 +2418,57 @@ }, { "constant": false, - "id": 53560, + "id": 53637, "indexed": false, "mutability": "mutable", "name": "swapGuard", - "nameLocation": "1514:9:134", + "nameLocation": "1514:9:136", "nodeType": "VariableDeclaration", - "scope": 53562, - "src": "1503:20:134", + "scope": 53639, + "src": "1503:20:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" }, "typeName": { - "id": 53559, + "id": 53636, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53558, + "id": 53635, "name": "ISwapGuard", "nameLocations": [ - "1503:10:134" + "1503:10:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54496, - "src": "1503:10:134" + "referencedDeclaration": 54599, + "src": "1503:10:136" }, - "referencedDeclaration": 54496, - "src": "1503:10:134", + "referencedDeclaration": 54599, + "src": "1503:10:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } }, "visibility": "internal" } ], - "src": "1479:45:134" + "src": "1479:45:136" } }, { - "id": 53564, + "id": 53641, "nodeType": "VariableDeclaration", - "src": "1611:40:134", + "src": "1611:40:136", "nodes": [], "constant": false, "functionSelector": "f698da25", "mutability": "immutable", "name": "domainSeparator", - "nameLocation": "1636:15:134", - "scope": 54177, + "nameLocation": "1636:15:136", + "scope": 54254, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2477,10 +2476,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 53563, + "id": 53640, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1611:7:134", + "src": "1611:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2489,22 +2488,22 @@ "visibility": "public" }, { - "id": 53569, + "id": 53646, "nodeType": "VariableDeclaration", - "src": "1702:40:134", + "src": "1702:40:136", "nodes": [], "constant": false, "documentation": { - "id": 53565, + "id": 53642, "nodeType": "StructuredDocumentation", - "src": "1657:40:134", + "src": "1657:40:136", "text": "@dev Mapping of owner's merkle roots" }, "functionSelector": "a4546876", "mutability": "mutable", "name": "roots", - "nameLocation": "1737:5:134", - "scope": 54177, + "nameLocation": "1737:5:136", + "scope": 54254, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2512,21 +2511,21 @@ "typeString": "mapping(address => bytes32)" }, "typeName": { - "id": 53568, + "id": 53645, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 53566, + "id": 53643, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1710:7:134", + "src": "1710:7:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1702:27:134", + "src": "1702:27:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$", "typeString": "mapping(address => bytes32)" @@ -2534,10 +2533,10 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 53567, + "id": 53644, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1721:7:134", + "src": "1721:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2547,22 +2546,22 @@ "visibility": "public" }, { - "id": 53576, + "id": 53653, "nodeType": "VariableDeclaration", - "src": "1794:64:134", + "src": "1794:64:136", "nodes": [], "constant": false, "documentation": { - "id": 53570, + "id": 53647, "nodeType": "StructuredDocumentation", - "src": "1748:41:134", + "src": "1748:41:136", "text": "@dev Mapping of owner's single orders" }, "functionSelector": "6108c532", "mutability": "mutable", "name": "singleOrders", - "nameLocation": "1846:12:134", - "scope": 54177, + "nameLocation": "1846:12:136", + "scope": 54254, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2570,21 +2569,21 @@ "typeString": "mapping(address => mapping(bytes32 => bool))" }, "typeName": { - "id": 53575, + "id": 53652, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 53571, + "id": 53648, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1802:7:134", + "src": "1802:7:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1794:44:134", + "src": "1794:44:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" @@ -2592,21 +2591,21 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 53574, + "id": 53651, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 53572, + "id": 53649, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1821:7:134", + "src": "1821:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1813:24:134", + "src": "1813:24:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" @@ -2614,10 +2613,10 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 53573, + "id": 53650, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1832:4:134", + "src": "1832:4:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2628,61 +2627,61 @@ "visibility": "public" }, { - "id": 53581, + "id": 53658, "nodeType": "VariableDeclaration", - "src": "1906:48:134", + "src": "1906:48:136", "nodes": [], "constant": false, "functionSelector": "595001b2", "mutability": "mutable", "name": "swapGuards", - "nameLocation": "1944:10:134", - "scope": 54177, + "nameLocation": "1944:10:136", + "scope": 54254, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54496_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54599_$", "typeString": "mapping(address => contract ISwapGuard)" }, "typeName": { - "id": 53580, + "id": 53657, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 53577, + "id": 53654, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1914:7:134", + "src": "1914:7:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1906:30:134", + "src": "1906:30:136", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54496_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54599_$", "typeString": "mapping(address => contract ISwapGuard)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 53579, + "id": 53656, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53578, + "id": 53655, "name": "ISwapGuard", "nameLocations": [ - "1925:10:134" + "1925:10:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54496, - "src": "1925:10:134" + "referencedDeclaration": 54599, + "src": "1925:10:136" }, - "referencedDeclaration": 54496, - "src": "1925:10:134", + "referencedDeclaration": 54599, + "src": "1925:10:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } } @@ -2690,16 +2689,16 @@ "visibility": "public" }, { - "id": 53587, + "id": 53664, "nodeType": "VariableDeclaration", - "src": "2014:62:134", + "src": "2014:62:136", "nodes": [], "constant": false, "functionSelector": "1c7662c8", "mutability": "mutable", "name": "cabinet", - "nameLocation": "2069:7:134", - "scope": 54177, + "nameLocation": "2069:7:136", + "scope": 54254, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2707,21 +2706,21 @@ "typeString": "mapping(address => mapping(bytes32 => bytes32))" }, "typeName": { - "id": 53586, + "id": 53663, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 53582, + "id": 53659, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2022:7:134", + "src": "2022:7:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "2014:47:134", + "src": "2014:47:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes32_$_$", "typeString": "mapping(address => mapping(bytes32 => bytes32))" @@ -2729,21 +2728,21 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 53585, + "id": 53662, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { - "id": 53583, + "id": 53660, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2041:7:134", + "src": "2041:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "2033:27:134", + "src": "2033:27:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" @@ -2751,10 +2750,10 @@ "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { - "id": 53584, + "id": 53661, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2052:7:134", + "src": "2052:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2765,30 +2764,30 @@ "visibility": "public" }, { - "id": 53602, + "id": 53679, "nodeType": "FunctionDefinition", - "src": "2178:112:134", + "src": "2178:112:136", "nodes": [], "body": { - "id": 53601, + "id": 53678, "nodeType": "Block", - "src": "2211:79:134", + "src": "2211:79:136", "nodes": [], "statements": [ { "expression": { - "id": 53599, + "id": 53676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 53593, + "id": 53670, "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53564, - "src": "2221:15:134", + "referencedDeclaration": 53641, + "src": "2221:15:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2803,12 +2802,12 @@ "expression": { "arguments": [ { - "id": 53595, + "id": 53672, "name": "_settlement", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53590, - "src": "2253:11:134", + "referencedDeclaration": 53667, + "src": "2253:11:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2822,18 +2821,18 @@ "typeString": "address" } ], - "id": 53594, + "id": 53671, "name": "CoWSettlement", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55972, - "src": "2239:13:134", + "referencedDeclaration": 56132, + "src": "2239:13:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_CoWSettlement_$55972_$", + "typeIdentifier": "t_type$_t_contract$_CoWSettlement_$56132_$", "typeString": "type(contract CoWSettlement)" } }, - "id": 53596, + "id": 53673, "isConstant": false, "isLValue": false, "isPure": false, @@ -2842,29 +2841,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2239:26:134", + "src": "2239:26:136", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_CoWSettlement_$55972", + "typeIdentifier": "t_contract$_CoWSettlement_$56132", "typeString": "contract CoWSettlement" } }, - "id": 53597, + "id": 53674, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2266:15:134", + "memberLocation": "2266:15:136", "memberName": "domainSeparator", "nodeType": "MemberAccess", - "referencedDeclaration": 55971, - "src": "2239:42:134", + "referencedDeclaration": 56131, + "src": "2239:42:136", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$", "typeString": "function () view external returns (bytes32)" } }, - "id": 53598, + "id": 53675, "isConstant": false, "isLValue": false, "isPure": false, @@ -2873,29 +2872,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2239:44:134", + "src": "2239:44:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2221:62:134", + "src": "2221:62:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 53600, + "id": 53677, "nodeType": "ExpressionStatement", - "src": "2221:62:134" + "src": "2221:62:136" } ] }, "documentation": { - "id": 53588, + "id": 53665, "nodeType": "StructuredDocumentation", - "src": "2107:66:134", + "src": "2107:66:136", "text": " @param _settlement The GPv2 settlement contract" }, "implemented": true, @@ -2904,18 +2903,18 @@ "name": "", "nameLocation": "-1:-1:-1", "parameters": { - "id": 53591, + "id": 53668, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53590, + "id": 53667, "mutability": "mutable", "name": "_settlement", - "nameLocation": "2198:11:134", + "nameLocation": "2198:11:136", "nodeType": "VariableDeclaration", - "scope": 53602, - "src": "2190:19:134", + "scope": 53679, + "src": "2190:19:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2923,10 +2922,10 @@ "typeString": "address" }, "typeName": { - "id": 53589, + "id": 53666, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2190:7:134", + "src": "2190:7:136", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2936,73 +2935,73 @@ "visibility": "internal" } ], - "src": "2189:21:134" + "src": "2189:21:136" }, "returnParameters": { - "id": 53592, + "id": 53669, "nodeType": "ParameterList", "parameters": [], - "src": "2211:0:134" + "src": "2211:0:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 53626, + "id": 53703, "nodeType": "FunctionDefinition", - "src": "2573:154:134", + "src": "2573:154:136", "nodes": [], "body": { - "id": 53625, + "id": 53702, "nodeType": "Block", - "src": "2633:94:134", + "src": "2633:94:136", "nodes": [], "statements": [ { "expression": { - "id": 53616, + "id": 53693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 53611, + "id": 53688, "name": "roots", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53569, - "src": "2643:5:134", + "referencedDeclaration": 53646, + "src": "2643:5:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$", "typeString": "mapping(address => bytes32)" } }, - "id": 53614, + "id": 53691, "indexExpression": { "expression": { - "id": 53612, + "id": 53689, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2649:3:134", + "src": "2649:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 53613, + "id": 53690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2653:6:134", + "memberLocation": "2653:6:136", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2649:10:134", + "src": "2649:10:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3013,7 +3012,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2643:17:134", + "src": "2643:17:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3022,78 +3021,78 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 53615, + "id": 53692, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53605, - "src": "2663:4:134", + "referencedDeclaration": 53682, + "src": "2663:4:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2643:24:134", + "src": "2643:24:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 53617, + "id": 53694, "nodeType": "ExpressionStatement", - "src": "2643:24:134" + "src": "2643:24:136" }, { "eventCall": { "arguments": [ { "expression": { - "id": 53619, + "id": 53696, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "2696:3:134", + "src": "2696:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 53620, + "id": 53697, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2700:6:134", + "memberLocation": "2700:6:136", "memberName": "sender", "nodeType": "MemberAccess", - "src": "2696:10:134", + "src": "2696:10:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 53621, + "id": 53698, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53605, - "src": "2708:4:134", + "referencedDeclaration": 53682, + "src": "2708:4:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 53622, + "id": 53699, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53608, - "src": "2714:5:134", + "referencedDeclaration": 53685, + "src": "2714:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", + "typeIdentifier": "t_struct$_Proof_$53616_calldata_ptr", "typeString": "struct ComposableCoW.Proof calldata" } } @@ -3109,22 +3108,22 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", + "typeIdentifier": "t_struct$_Proof_$53616_calldata_ptr", "typeString": "struct ComposableCoW.Proof calldata" } ], - "id": 53618, + "id": 53695, "name": "MerkleRootSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53548, - "src": "2682:13:134", + "referencedDeclaration": 53625, + "src": "2682:13:136", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_struct$_Proof_$53539_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_struct$_Proof_$53616_memory_ptr_$returns$__$", "typeString": "function (address,bytes32,struct ComposableCoW.Proof memory)" } }, - "id": 53623, + "id": 53700, "isConstant": false, "isLValue": false, "isPure": false, @@ -3133,23 +3132,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2682:38:134", + "src": "2682:38:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53624, + "id": 53701, "nodeType": "EmitStatement", - "src": "2677:43:134" + "src": "2677:43:136" } ] }, "documentation": { - "id": 53603, + "id": 53680, "nodeType": "StructuredDocumentation", - "src": "2316:252:134", + "src": "2316:252:136", "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", @@ -3157,20 +3156,20 @@ "kind": "function", "modifiers": [], "name": "setRoot", - "nameLocation": "2582:7:134", + "nameLocation": "2582:7:136", "parameters": { - "id": 53609, + "id": 53686, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53605, + "id": 53682, "mutability": "mutable", "name": "root", - "nameLocation": "2598:4:134", + "nameLocation": "2598:4:136", "nodeType": "VariableDeclaration", - "scope": 53626, - "src": "2590:12:134", + "scope": 53703, + "src": "2590:12:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3178,10 +3177,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 53604, + "id": 53681, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2590:7:134", + "src": "2590:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3191,90 +3190,90 @@ }, { "constant": false, - "id": 53608, + "id": 53685, "mutability": "mutable", "name": "proof", - "nameLocation": "2619:5:134", + "nameLocation": "2619:5:136", "nodeType": "VariableDeclaration", - "scope": 53626, - "src": "2604:20:134", + "scope": 53703, + "src": "2604:20:136", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", + "typeIdentifier": "t_struct$_Proof_$53616_calldata_ptr", "typeString": "struct ComposableCoW.Proof" }, "typeName": { - "id": 53607, + "id": 53684, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53606, + "id": 53683, "name": "Proof", "nameLocations": [ - "2604:5:134" + "2604:5:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53539, - "src": "2604:5:134" + "referencedDeclaration": 53616, + "src": "2604:5:136" }, - "referencedDeclaration": 53539, - "src": "2604:5:134", + "referencedDeclaration": 53616, + "src": "2604:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_storage_ptr", + "typeIdentifier": "t_struct$_Proof_$53616_storage_ptr", "typeString": "struct ComposableCoW.Proof" } }, "visibility": "internal" } ], - "src": "2589:36:134" + "src": "2589:36:136" }, "returnParameters": { - "id": 53610, + "id": 53687, "nodeType": "ParameterList", "parameters": [], - "src": "2633:0:134" + "src": "2633:0:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 53661, + "id": 53738, "nodeType": "FunctionDefinition", - "src": "3136:425:134", + "src": "3136:425:136", "nodes": [], "body": { - "id": 53660, + "id": 53737, "nodeType": "Block", - "src": "3265:296:134", + "src": "3265:296:136", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 53641, + "id": 53718, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53629, - "src": "3283:4:134", + "referencedDeclaration": 53706, + "src": "3283:4:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 53642, + "id": 53719, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53632, - "src": "3289:5:134", + "referencedDeclaration": 53709, + "src": "3289:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", + "typeIdentifier": "t_struct$_Proof_$53616_calldata_ptr", "typeString": "struct ComposableCoW.Proof calldata" } } @@ -3286,22 +3285,22 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", + "typeIdentifier": "t_struct$_Proof_$53616_calldata_ptr", "typeString": "struct ComposableCoW.Proof calldata" } ], - "id": 53640, + "id": 53717, "name": "setRoot", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53626, - "src": "3275:7:134", + "referencedDeclaration": 53703, + "src": "3275:7:136", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Proof_$53539_calldata_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_struct$_Proof_$53616_calldata_ptr_$returns$__$", "typeString": "function (bytes32,struct ComposableCoW.Proof calldata)" } }, - "id": 53643, + "id": 53720, "isConstant": false, "isLValue": false, "isPure": false, @@ -3310,20 +3309,20 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3275:20:134", + "src": "3275:20:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53644, + "id": 53721, "nodeType": "ExpressionStatement", - "src": "3275:20:134" + "src": "3275:20:136" }, { "expression": { - "id": 53658, + "id": 53735, "isConstant": false, "isLValue": false, "isPure": false, @@ -3331,40 +3330,40 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 53645, + "id": 53722, "name": "cabinet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53587, - "src": "3498:7:134", + "referencedDeclaration": 53664, + "src": "3498:7:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes32_$_$", "typeString": "mapping(address => mapping(bytes32 => bytes32))" } }, - "id": 53652, + "id": 53729, "indexExpression": { "expression": { - "id": 53646, + "id": 53723, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "3506:3:134", + "src": "3506:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 53647, + "id": 53724, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3510:6:134", + "memberLocation": "3510:6:136", "memberName": "sender", "nodeType": "MemberAccess", - "src": "3506:10:134", + "src": "3506:10:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3375,25 +3374,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3498:19:134", + "src": "3498:19:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" } }, - "id": 53653, + "id": 53730, "indexExpression": { "arguments": [ { "hexValue": "30", - "id": 53650, + "id": 53727, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3526:1:134", + "src": "3526:1:136", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3408,26 +3407,26 @@ "typeString": "int_const 0" } ], - "id": 53649, + "id": 53726, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3518:7:134", + "src": "3518:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 53648, + "id": 53725, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3518:7:134", + "src": "3518:7:136", "typeDescriptions": {} } }, - "id": 53651, + "id": 53728, "isConstant": false, "isLValue": false, "isPure": true, @@ -3436,7 +3435,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3518:10:134", + "src": "3518:10:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3448,7 +3447,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3498:31:134", + "src": "3498:31:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3459,12 +3458,12 @@ "rightHandSide": { "arguments": [ { - "id": 53656, + "id": 53733, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53637, - "src": "3549:4:134", + "referencedDeclaration": 53714, + "src": "3549:4:136", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -3479,33 +3478,33 @@ } ], "expression": { - "id": 53654, + "id": 53731, "name": "factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53635, - "src": "3532:7:134", + "referencedDeclaration": 53712, + "src": "3532:7:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", + "typeIdentifier": "t_contract$_IValueFactory_$54611", "typeString": "contract IValueFactory" } }, - "id": 53655, + "id": 53732, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3540:8:134", + "memberLocation": "3540:8:136", "memberName": "getValue", "nodeType": "MemberAccess", - "referencedDeclaration": 54507, - "src": "3532:16:134", + "referencedDeclaration": 54610, + "src": "3532:16:136", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) view external returns (bytes32)" } }, - "id": 53657, + "id": 53734, "isConstant": false, "isLValue": false, "isPure": false, @@ -3514,29 +3513,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3532:22:134", + "src": "3532:22:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "3498:56:134", + "src": "3498:56:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 53659, + "id": 53736, "nodeType": "ExpressionStatement", - "src": "3498:56:134" + "src": "3498:56:136" } ] }, "documentation": { - "id": 53627, + "id": 53704, "nodeType": "StructuredDocumentation", - "src": "2733:398:134", + "src": "2733:398:136", "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", @@ -3544,20 +3543,20 @@ "kind": "function", "modifiers": [], "name": "setRootWithContext", - "nameLocation": "3145:18:134", + "nameLocation": "3145:18:136", "parameters": { - "id": 53638, + "id": 53715, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53629, + "id": 53706, "mutability": "mutable", "name": "root", - "nameLocation": "3172:4:134", + "nameLocation": "3172:4:136", "nodeType": "VariableDeclaration", - "scope": 53661, - "src": "3164:12:134", + "scope": 53738, + "src": "3164:12:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3565,10 +3564,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 53628, + "id": 53705, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3164:7:134", + "src": "3164:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3578,36 +3577,36 @@ }, { "constant": false, - "id": 53632, + "id": 53709, "mutability": "mutable", "name": "proof", - "nameLocation": "3193:5:134", + "nameLocation": "3193:5:136", "nodeType": "VariableDeclaration", - "scope": 53661, - "src": "3178:20:134", + "scope": 53738, + "src": "3178:20:136", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_calldata_ptr", + "typeIdentifier": "t_struct$_Proof_$53616_calldata_ptr", "typeString": "struct ComposableCoW.Proof" }, "typeName": { - "id": 53631, + "id": 53708, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53630, + "id": 53707, "name": "Proof", "nameLocations": [ - "3178:5:134" + "3178:5:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53539, - "src": "3178:5:134" + "referencedDeclaration": 53616, + "src": "3178:5:136" }, - "referencedDeclaration": 53539, - "src": "3178:5:134", + "referencedDeclaration": 53616, + "src": "3178:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Proof_$53539_storage_ptr", + "typeIdentifier": "t_struct$_Proof_$53616_storage_ptr", "typeString": "struct ComposableCoW.Proof" } }, @@ -3615,36 +3614,36 @@ }, { "constant": false, - "id": 53635, + "id": 53712, "mutability": "mutable", "name": "factory", - "nameLocation": "3214:7:134", + "nameLocation": "3214:7:136", "nodeType": "VariableDeclaration", - "scope": 53661, - "src": "3200:21:134", + "scope": 53738, + "src": "3200:21:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", + "typeIdentifier": "t_contract$_IValueFactory_$54611", "typeString": "contract IValueFactory" }, "typeName": { - "id": 53634, + "id": 53711, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53633, + "id": 53710, "name": "IValueFactory", "nameLocations": [ - "3200:13:134" + "3200:13:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54508, - "src": "3200:13:134" + "referencedDeclaration": 54611, + "src": "3200:13:136" }, - "referencedDeclaration": 54508, - "src": "3200:13:134", + "referencedDeclaration": 54611, + "src": "3200:13:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", + "typeIdentifier": "t_contract$_IValueFactory_$54611", "typeString": "contract IValueFactory" } }, @@ -3652,13 +3651,13 @@ }, { "constant": false, - "id": 53637, + "id": 53714, "mutability": "mutable", "name": "data", - "nameLocation": "3238:4:134", + "nameLocation": "3238:4:136", "nodeType": "VariableDeclaration", - "scope": 53661, - "src": "3223:19:134", + "scope": 53738, + "src": "3223:19:136", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -3666,10 +3665,10 @@ "typeString": "bytes" }, "typeName": { - "id": 53636, + "id": 53713, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3223:5:134", + "src": "3223:5:136", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3678,33 +3677,33 @@ "visibility": "internal" } ], - "src": "3163:80:134" + "src": "3163:80:136" }, "returnParameters": { - "id": 53639, + "id": 53716, "nodeType": "ParameterList", "parameters": [], - "src": "3265:0:134" + "src": "3265:0:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 53708, + "id": 53785, "nodeType": "FunctionDefinition", - "src": "3767:358:134", + "src": "3767:358:136", "nodes": [], "body": { - "id": 53707, + "id": 53784, "nodeType": "Block", - "src": "3863:262:134", + "src": "3863:262:136", "nodes": [], "statements": [ { "condition": { - "id": 53681, + "id": 53758, "isConstant": false, "isLValue": false, "isPure": false, @@ -3712,7 +3711,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3877:40:134", + "src": "3877:40:136", "subExpression": { "components": [ { @@ -3720,7 +3719,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 53679, + "id": 53756, "isConstant": false, "isLValue": false, "isPure": false, @@ -3729,29 +3728,29 @@ "arguments": [ { "expression": { - "id": 53672, + "id": 53749, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53665, - "src": "3887:6:134", + "referencedDeclaration": 53742, + "src": "3887:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } }, - "id": 53673, + "id": 53750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3894:7:134", + "memberLocation": "3894:7:136", "memberName": "handler", "nodeType": "MemberAccess", - "referencedDeclaration": 54410, - "src": "3887:14:134", + "referencedDeclaration": 54507, + "src": "3887:14:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", + "typeIdentifier": "t_contract$_IConditionalOrder_$54540", "typeString": "contract IConditionalOrder" } } @@ -3759,30 +3758,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", + "typeIdentifier": "t_contract$_IConditionalOrder_$54540", "typeString": "contract IConditionalOrder" } ], - "id": 53671, + "id": 53748, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3879:7:134", + "src": "3879:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 53670, + "id": 53747, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3879:7:134", + "src": "3879:7:136", "typeDescriptions": {} } }, - "id": 53674, + "id": 53751, "isConstant": false, "isLValue": false, "isPure": false, @@ -3791,7 +3790,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3879:23:134", + "src": "3879:23:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3804,14 +3803,14 @@ "arguments": [ { "hexValue": "30", - "id": 53677, + "id": 53754, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3914:1:134", + "src": "3914:1:136", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3826,26 +3825,26 @@ "typeString": "int_const 0" } ], - "id": 53676, + "id": 53753, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3906:7:134", + "src": "3906:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 53675, + "id": 53752, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3906:7:134", + "src": "3906:7:136", "typeDescriptions": {} } }, - "id": 53678, + "id": 53755, "isConstant": false, "isLValue": false, "isPure": true, @@ -3854,28 +3853,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3906:10:134", + "src": "3906:10:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3879:37:134", + "src": "3879:37:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 53680, + "id": 53757, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3878:39:134", + "src": "3878:39:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3886,31 +3885,31 @@ "typeString": "bool" } }, - "id": 53686, + "id": 53763, "nodeType": "IfStatement", - "src": "3873:94:134", + "src": "3873:94:136", "trueBody": { - "id": 53685, + "id": 53762, "nodeType": "Block", - "src": "3919:48:134", + "src": "3919:48:136", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 53682, + "id": 53759, "name": "InvalidHandler", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53521, - "src": "3940:14:134", + "referencedDeclaration": 53598, + "src": "3940:14:136", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 53683, + "id": 53760, "isConstant": false, "isLValue": false, "isPure": false, @@ -3919,23 +3918,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3940:16:134", + "src": "3940:16:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53684, + "id": 53761, "nodeType": "RevertStatement", - "src": "3933:23:134" + "src": "3933:23:136" } ] } }, { "expression": { - "id": 53696, + "id": 53773, "isConstant": false, "isLValue": false, "isPure": false, @@ -3943,40 +3942,40 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 53687, + "id": 53764, "name": "singleOrders", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53576, - "src": "3977:12:134", + "referencedDeclaration": 53653, + "src": "3977:12:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, - "id": 53693, + "id": 53770, "indexExpression": { "expression": { - "id": 53688, + "id": 53765, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "3990:3:134", + "src": "3990:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 53689, + "id": 53766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3994:6:134", + "memberLocation": "3994:6:136", "memberName": "sender", "nodeType": "MemberAccess", - "src": "3990:10:134", + "src": "3990:10:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3987,24 +3986,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3977:24:134", + "src": "3977:24:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 53694, + "id": 53771, "indexExpression": { "arguments": [ { - "id": 53691, + "id": 53768, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53665, - "src": "4007:6:134", + "referencedDeclaration": 53742, + "src": "4007:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } } @@ -4012,22 +4011,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } ], - "id": 53690, + "id": 53767, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54063, - "src": "4002:4:134", + "referencedDeclaration": 54140, + "src": "4002:4:136", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54512_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (struct IConditionalOrder.ConditionalOrderParams memory) pure returns (bytes32)" } }, - "id": 53692, + "id": 53769, "isConstant": false, "isLValue": false, "isPure": false, @@ -4036,7 +4035,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4002:12:134", + "src": "4002:12:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4048,7 +4047,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3977:38:134", + "src": "3977:38:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4058,90 +4057,90 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 53695, + "id": 53772, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4018:4:134", + "src": "4018:4:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "3977:45:134", + "src": "3977:45:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 53697, + "id": 53774, "nodeType": "ExpressionStatement", - "src": "3977:45:134" + "src": "3977:45:136" }, { "condition": { - "id": 53698, + "id": 53775, "name": "dispatch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53667, - "src": "4036:8:134", + "referencedDeclaration": 53744, + "src": "4036:8:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 53706, + "id": 53783, "nodeType": "IfStatement", - "src": "4032:87:134", + "src": "4032:87:136", "trueBody": { - "id": 53705, + "id": 53782, "nodeType": "Block", - "src": "4046:73:134", + "src": "4046:73:136", "statements": [ { "eventCall": { "arguments": [ { "expression": { - "id": 53700, + "id": 53777, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4089:3:134", + "src": "4089:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 53701, + "id": 53778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4093:6:134", + "memberLocation": "4093:6:136", "memberName": "sender", "nodeType": "MemberAccess", - "src": "4089:10:134", + "src": "4089:10:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 53702, + "id": 53779, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53665, - "src": "4101:6:134", + "referencedDeclaration": 53742, + "src": "4101:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } } @@ -4153,22 +4152,22 @@ "typeString": "address" }, { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } ], - "id": 53699, + "id": 53776, "name": "ConditionalOrderCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53555, - "src": "4065:23:134", + "referencedDeclaration": 53632, + "src": "4065:23:136", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_struct$_ConditionalOrderParams_$54512_memory_ptr_$returns$__$", "typeString": "function (address,struct IConditionalOrder.ConditionalOrderParams memory)" } }, - "id": 53703, + "id": 53780, "isConstant": false, "isLValue": false, "isPure": false, @@ -4177,16 +4176,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4065:43:134", + "src": "4065:43:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53704, + "id": 53781, "nodeType": "EmitStatement", - "src": "4060:48:134" + "src": "4060:48:136" } ] } @@ -4194,9 +4193,9 @@ ] }, "documentation": { - "id": 53662, + "id": 53739, "nodeType": "StructuredDocumentation", - "src": "3567:195:134", + "src": "3567:195:136", "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", @@ -4204,44 +4203,44 @@ "kind": "function", "modifiers": [], "name": "create", - "nameLocation": "3776:6:134", + "nameLocation": "3776:6:136", "parameters": { - "id": 53668, + "id": 53745, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53665, + "id": 53742, "mutability": "mutable", "name": "params", - "nameLocation": "3833:6:134", + "nameLocation": "3833:6:136", "nodeType": "VariableDeclaration", - "scope": 53708, - "src": "3783:56:134", + "scope": 53785, + "src": "3783:56:136", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 53664, + "id": 53741, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53663, + "id": 53740, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "3783:17:134", - "3801:22:134" + "3783:17:136", + "3801:22:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "3783:40:134" + "referencedDeclaration": 54512, + "src": "3783:40:136" }, - "referencedDeclaration": 54415, - "src": "3783:40:134", + "referencedDeclaration": 54512, + "src": "3783:40:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, @@ -4249,13 +4248,13 @@ }, { "constant": false, - "id": 53667, + "id": 53744, "mutability": "mutable", "name": "dispatch", - "nameLocation": "3846:8:134", + "nameLocation": "3846:8:136", "nodeType": "VariableDeclaration", - "scope": 53708, - "src": "3841:13:134", + "scope": 53785, + "src": "3841:13:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4263,10 +4262,10 @@ "typeString": "bool" }, "typeName": { - "id": 53666, + "id": 53743, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3841:4:134", + "src": "3841:4:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4275,52 +4274,52 @@ "visibility": "internal" } ], - "src": "3782:73:134" + "src": "3782:73:136" }, "returnParameters": { - "id": 53669, + "id": 53746, "nodeType": "ParameterList", "parameters": [], - "src": "3863:0:134" + "src": "3863:0:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 53742, + "id": 53819, "nodeType": "FunctionDefinition", - "src": "4518:524:134", + "src": "4518:524:136", "nodes": [], "body": { - "id": 53741, + "id": 53818, "nodeType": "Block", - "src": "4709:333:134", + "src": "4709:333:136", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 53723, + "id": 53800, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53712, - "src": "4726:6:134", + "referencedDeclaration": 53789, + "src": "4726:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } }, { - "id": 53724, + "id": 53801, "name": "dispatch", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53719, - "src": "4734:8:134", + "referencedDeclaration": 53796, + "src": "4734:8:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4330,7 +4329,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" }, { @@ -4338,18 +4337,18 @@ "typeString": "bool" } ], - "id": 53722, + "id": 53799, "name": "create", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53708, - "src": "4719:6:134", + "referencedDeclaration": 53785, + "src": "4719:6:136", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_ConditionalOrderParams_$54415_calldata_ptr_$_t_bool_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_ConditionalOrderParams_$54512_calldata_ptr_$_t_bool_$returns$__$", "typeString": "function (struct IConditionalOrder.ConditionalOrderParams calldata,bool)" } }, - "id": 53725, + "id": 53802, "isConstant": false, "isLValue": false, "isPure": false, @@ -4358,20 +4357,20 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4719:24:134", + "src": "4719:24:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53726, + "id": 53803, "nodeType": "ExpressionStatement", - "src": "4719:24:134" + "src": "4719:24:136" }, { "expression": { - "id": 53739, + "id": 53816, "isConstant": false, "isLValue": false, "isPure": false, @@ -4379,40 +4378,40 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 53727, + "id": 53804, "name": "cabinet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53587, - "src": "4977:7:134", + "referencedDeclaration": 53664, + "src": "4977:7:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes32_$_$", "typeString": "mapping(address => mapping(bytes32 => bytes32))" } }, - "id": 53733, + "id": 53810, "indexExpression": { "expression": { - "id": 53728, + "id": 53805, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "4985:3:134", + "src": "4985:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 53729, + "id": 53806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4989:6:134", + "memberLocation": "4989:6:136", "memberName": "sender", "nodeType": "MemberAccess", - "src": "4985:10:134", + "src": "4985:10:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4423,24 +4422,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4977:19:134", + "src": "4977:19:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" } }, - "id": 53734, + "id": 53811, "indexExpression": { "arguments": [ { - "id": 53731, + "id": 53808, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53712, - "src": "5002:6:134", + "referencedDeclaration": 53789, + "src": "5002:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } } @@ -4448,22 +4447,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } ], - "id": 53730, + "id": 53807, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54063, - "src": "4997:4:134", + "referencedDeclaration": 54140, + "src": "4997:4:136", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54512_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (struct IConditionalOrder.ConditionalOrderParams memory) pure returns (bytes32)" } }, - "id": 53732, + "id": 53809, "isConstant": false, "isLValue": false, "isPure": false, @@ -4472,7 +4471,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4997:12:134", + "src": "4997:12:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -4484,7 +4483,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4977:33:134", + "src": "4977:33:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4495,12 +4494,12 @@ "rightHandSide": { "arguments": [ { - "id": 53737, + "id": 53814, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53717, - "src": "5030:4:134", + "referencedDeclaration": 53794, + "src": "5030:4:136", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -4515,33 +4514,33 @@ } ], "expression": { - "id": 53735, + "id": 53812, "name": "factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53715, - "src": "5013:7:134", + "referencedDeclaration": 53792, + "src": "5013:7:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", + "typeIdentifier": "t_contract$_IValueFactory_$54611", "typeString": "contract IValueFactory" } }, - "id": 53736, + "id": 53813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5021:8:134", + "memberLocation": "5021:8:136", "memberName": "getValue", "nodeType": "MemberAccess", - "referencedDeclaration": 54507, - "src": "5013:16:134", + "referencedDeclaration": 54610, + "src": "5013:16:136", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) view external returns (bytes32)" } }, - "id": 53738, + "id": 53815, "isConstant": false, "isLValue": false, "isPure": false, @@ -4550,29 +4549,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5013:22:134", + "src": "5013:22:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "4977:58:134", + "src": "4977:58:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 53740, + "id": 53817, "nodeType": "ExpressionStatement", - "src": "4977:58:134" + "src": "4977:58:136" } ] }, "documentation": { - "id": 53709, + "id": 53786, "nodeType": "StructuredDocumentation", - "src": "4131:382:134", + "src": "4131:382:136", "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", @@ -4580,44 +4579,44 @@ "kind": "function", "modifiers": [], "name": "createWithContext", - "nameLocation": "4527:17:134", + "nameLocation": "4527:17:136", "parameters": { - "id": 53720, + "id": 53797, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53712, + "id": 53789, "mutability": "mutable", "name": "params", - "nameLocation": "4604:6:134", + "nameLocation": "4604:6:136", "nodeType": "VariableDeclaration", - "scope": 53742, - "src": "4554:56:134", + "scope": 53819, + "src": "4554:56:136", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 53711, + "id": 53788, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53710, + "id": 53787, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "4554:17:134", - "4572:22:134" + "4554:17:136", + "4572:22:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "4554:40:134" + "referencedDeclaration": 54512, + "src": "4554:40:136" }, - "referencedDeclaration": 54415, - "src": "4554:40:134", + "referencedDeclaration": 54512, + "src": "4554:40:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, @@ -4625,36 +4624,36 @@ }, { "constant": false, - "id": 53715, + "id": 53792, "mutability": "mutable", "name": "factory", - "nameLocation": "4634:7:134", + "nameLocation": "4634:7:136", "nodeType": "VariableDeclaration", - "scope": 53742, - "src": "4620:21:134", + "scope": 53819, + "src": "4620:21:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", + "typeIdentifier": "t_contract$_IValueFactory_$54611", "typeString": "contract IValueFactory" }, "typeName": { - "id": 53714, + "id": 53791, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53713, + "id": 53790, "name": "IValueFactory", "nameLocations": [ - "4620:13:134" + "4620:13:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54508, - "src": "4620:13:134" + "referencedDeclaration": 54611, + "src": "4620:13:136" }, - "referencedDeclaration": 54508, - "src": "4620:13:134", + "referencedDeclaration": 54611, + "src": "4620:13:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_IValueFactory_$54508", + "typeIdentifier": "t_contract$_IValueFactory_$54611", "typeString": "contract IValueFactory" } }, @@ -4662,13 +4661,13 @@ }, { "constant": false, - "id": 53717, + "id": 53794, "mutability": "mutable", "name": "data", - "nameLocation": "4666:4:134", + "nameLocation": "4666:4:136", "nodeType": "VariableDeclaration", - "scope": 53742, - "src": "4651:19:134", + "scope": 53819, + "src": "4651:19:136", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -4676,10 +4675,10 @@ "typeString": "bytes" }, "typeName": { - "id": 53716, + "id": 53793, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4651:5:134", + "src": "4651:5:136", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4689,13 +4688,13 @@ }, { "constant": false, - "id": 53719, + "id": 53796, "mutability": "mutable", "name": "dispatch", - "nameLocation": "4685:8:134", + "nameLocation": "4685:8:136", "nodeType": "VariableDeclaration", - "scope": 53742, - "src": "4680:13:134", + "scope": 53819, + "src": "4680:13:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4703,10 +4702,10 @@ "typeString": "bool" }, "typeName": { - "id": 53718, + "id": 53795, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4680:4:134", + "src": "4680:4:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4715,33 +4714,33 @@ "visibility": "internal" } ], - "src": "4544:155:134" + "src": "4544:155:136" }, "returnParameters": { - "id": 53721, + "id": 53798, "nodeType": "ParameterList", "parameters": [], - "src": "4709:0:134" + "src": "4709:0:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 53770, + "id": 53847, "nodeType": "FunctionDefinition", - "src": "5207:175:134", + "src": "5207:175:136", "nodes": [], "body": { - "id": 53769, + "id": 53846, "nodeType": "Block", - "src": "5257:125:134", + "src": "5257:125:136", "nodes": [], "statements": [ { "expression": { - "id": 53755, + "id": 53832, "isConstant": false, "isLValue": false, "isPure": false, @@ -4749,40 +4748,40 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 53748, + "id": 53825, "name": "singleOrders", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53576, - "src": "5267:12:134", + "referencedDeclaration": 53653, + "src": "5267:12:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, - "id": 53752, + "id": 53829, "indexExpression": { "expression": { - "id": 53749, + "id": 53826, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5280:3:134", + "src": "5280:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 53750, + "id": 53827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5284:6:134", + "memberLocation": "5284:6:136", "memberName": "sender", "nodeType": "MemberAccess", - "src": "5280:10:134", + "src": "5280:10:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4793,20 +4792,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5267:24:134", + "src": "5267:24:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 53753, + "id": 53830, "indexExpression": { - "id": 53751, + "id": 53828, "name": "singleOrderHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53745, - "src": "5292:15:134", + "referencedDeclaration": 53822, + "src": "5292:15:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4817,7 +4816,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5267:41:134", + "src": "5267:41:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4827,33 +4826,33 @@ "operator": "=", "rightHandSide": { "hexValue": "66616c7365", - "id": 53754, + "id": 53831, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5311:5:134", + "src": "5311:5:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "5267:49:134", + "src": "5267:49:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 53756, + "id": 53833, "nodeType": "ExpressionStatement", - "src": "5267:49:134" + "src": "5267:49:136" }, { "expression": { - "id": 53767, + "id": 53844, "isConstant": false, "isLValue": false, "isPure": false, @@ -4861,40 +4860,40 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 53757, + "id": 53834, "name": "cabinet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53587, - "src": "5326:7:134", + "referencedDeclaration": 53664, + "src": "5326:7:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bytes32_$_$", "typeString": "mapping(address => mapping(bytes32 => bytes32))" } }, - "id": 53761, + "id": 53838, "indexExpression": { "expression": { - "id": 53758, + "id": 53835, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5334:3:134", + "src": "5334:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 53759, + "id": 53836, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5338:6:134", + "memberLocation": "5338:6:136", "memberName": "sender", "nodeType": "MemberAccess", - "src": "5334:10:134", + "src": "5334:10:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4905,20 +4904,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5326:19:134", + "src": "5326:19:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" } }, - "id": 53762, + "id": 53839, "indexExpression": { - "id": 53760, + "id": 53837, "name": "singleOrderHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53745, - "src": "5346:15:134", + "referencedDeclaration": 53822, + "src": "5346:15:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4929,7 +4928,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5326:36:134", + "src": "5326:36:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4941,14 +4940,14 @@ "arguments": [ { "hexValue": "30", - "id": 53765, + "id": 53842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5373:1:134", + "src": "5373:1:136", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4963,26 +4962,26 @@ "typeString": "int_const 0" } ], - "id": 53764, + "id": 53841, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5365:7:134", + "src": "5365:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 53763, + "id": 53840, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5365:7:134", + "src": "5365:7:136", "typeDescriptions": {} } }, - "id": 53766, + "id": 53843, "isConstant": false, "isLValue": false, "isPure": true, @@ -4991,29 +4990,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5365:10:134", + "src": "5365:10:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "5326:49:134", + "src": "5326:49:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 53768, + "id": 53845, "nodeType": "ExpressionStatement", - "src": "5326:49:134" + "src": "5326:49:136" } ] }, "documentation": { - "id": 53743, + "id": 53820, "nodeType": "StructuredDocumentation", - "src": "5048:154:134", + "src": "5048:154:136", "text": " Remove the authorisation of a single conditional order\n @param singleOrderHash The hash of the single conditional order to remove" }, "functionSelector": "95bc2673", @@ -5021,20 +5020,20 @@ "kind": "function", "modifiers": [], "name": "remove", - "nameLocation": "5216:6:134", + "nameLocation": "5216:6:136", "parameters": { - "id": 53746, + "id": 53823, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53745, + "id": 53822, "mutability": "mutable", "name": "singleOrderHash", - "nameLocation": "5231:15:134", + "nameLocation": "5231:15:136", "nodeType": "VariableDeclaration", - "scope": 53770, - "src": "5223:23:134", + "scope": 53847, + "src": "5223:23:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5042,10 +5041,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 53744, + "id": 53821, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5223:7:134", + "src": "5223:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5054,73 +5053,73 @@ "visibility": "internal" } ], - "src": "5222:25:134" + "src": "5222:25:136" }, "returnParameters": { - "id": 53747, + "id": 53824, "nodeType": "ParameterList", "parameters": [], - "src": "5257:0:134" + "src": "5257:0:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 53791, + "id": 53868, "nodeType": "FunctionDefinition", - "src": "5517:154:134", + "src": "5517:154:136", "nodes": [], "body": { - "id": 53790, + "id": 53867, "nodeType": "Block", - "src": "5570:101:134", + "src": "5570:101:136", "nodes": [], "statements": [ { "expression": { - "id": 53782, + "id": 53859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 53777, + "id": 53854, "name": "swapGuards", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53581, - "src": "5580:10:134", + "referencedDeclaration": 53658, + "src": "5580:10:136", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54496_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54599_$", "typeString": "mapping(address => contract ISwapGuard)" } }, - "id": 53780, + "id": 53857, "indexExpression": { "expression": { - "id": 53778, + "id": 53855, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5591:3:134", + "src": "5591:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 53779, + "id": 53856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5595:6:134", + "memberLocation": "5595:6:136", "memberName": "sender", "nodeType": "MemberAccess", - "src": "5591:10:134", + "src": "5591:10:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5131,75 +5130,75 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5580:22:134", + "src": "5580:22:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 53781, + "id": 53858, "name": "swapGuard", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53774, - "src": "5605:9:134", + "referencedDeclaration": 53851, + "src": "5605:9:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } }, - "src": "5580:34:134", + "src": "5580:34:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } }, - "id": 53783, + "id": 53860, "nodeType": "ExpressionStatement", - "src": "5580:34:134" + "src": "5580:34:136" }, { "eventCall": { "arguments": [ { "expression": { - "id": 53785, + "id": 53862, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "5642:3:134", + "src": "5642:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 53786, + "id": 53863, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5646:6:134", + "memberLocation": "5646:6:136", "memberName": "sender", "nodeType": "MemberAccess", - "src": "5642:10:134", + "src": "5642:10:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 53787, + "id": 53864, "name": "swapGuard", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53774, - "src": "5654:9:134", + "referencedDeclaration": 53851, + "src": "5654:9:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } } @@ -5211,22 +5210,22 @@ "typeString": "address" }, { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } ], - "id": 53784, + "id": 53861, "name": "SwapGuardSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53562, - "src": "5629:12:134", + "referencedDeclaration": 53639, + "src": "5629:12:136", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_contract$_ISwapGuard_$54496_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_contract$_ISwapGuard_$54599_$returns$__$", "typeString": "function (address,contract ISwapGuard)" } }, - "id": 53788, + "id": 53865, "isConstant": false, "isLValue": false, "isPure": false, @@ -5235,23 +5234,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5629:35:134", + "src": "5629:35:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53789, + "id": 53866, "nodeType": "EmitStatement", - "src": "5624:40:134" + "src": "5624:40:136" } ] }, "documentation": { - "id": 53771, + "id": 53848, "nodeType": "StructuredDocumentation", - "src": "5388:124:134", + "src": "5388:124:136", "text": " Set the swap guard of the user's conditional orders\n @param swapGuard The address of the swap guard" }, "functionSelector": "8f7984ed", @@ -5259,126 +5258,126 @@ "kind": "function", "modifiers": [], "name": "setSwapGuard", - "nameLocation": "5526:12:134", + "nameLocation": "5526:12:136", "parameters": { - "id": 53775, + "id": 53852, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53774, + "id": 53851, "mutability": "mutable", "name": "swapGuard", - "nameLocation": "5550:9:134", + "nameLocation": "5550:9:136", "nodeType": "VariableDeclaration", - "scope": 53791, - "src": "5539:20:134", + "scope": 53868, + "src": "5539:20:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" }, "typeName": { - "id": 53773, + "id": 53850, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53772, + "id": 53849, "name": "ISwapGuard", "nameLocations": [ - "5539:10:134" + "5539:10:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54496, - "src": "5539:10:134" + "referencedDeclaration": 54599, + "src": "5539:10:136" }, - "referencedDeclaration": 54496, - "src": "5539:10:134", + "referencedDeclaration": 54599, + "src": "5539:10:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } }, "visibility": "internal" } ], - "src": "5538:22:134" + "src": "5538:22:136" }, "returnParameters": { - "id": 53776, + "id": 53853, "nodeType": "ParameterList", "parameters": [], - "src": "5570:0:134" + "src": "5570:0:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 53896, + "id": 53973, "nodeType": "FunctionDefinition", - "src": "6022:1259:134", + "src": "6022:1259:136", "nodes": [], "body": { - "id": 53895, + "id": 53972, "nodeType": "Block", - "src": "6300:981:134", + "src": "6300:981:136", "nodes": [], "statements": [ { "assignments": [ - 53815 + 53892 ], "declarations": [ { "constant": false, - "id": 53815, + "id": 53892, "mutability": "mutable", "name": "_payload", - "nameLocation": "6367:8:134", + "nameLocation": "6367:8:136", "nodeType": "VariableDeclaration", - "scope": 53895, - "src": "6346:29:134", + "scope": 53972, + "src": "6346:29:136", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct" }, "typeName": { - "id": 53814, + "id": 53891, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53813, + "id": 53890, "name": "PayloadStruct", "nameLocations": [ - "6346:13:134" + "6346:13:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53534, - "src": "6346:13:134" + "referencedDeclaration": 53611, + "src": "6346:13:136" }, - "referencedDeclaration": 53534, - "src": "6346:13:134", + "referencedDeclaration": 53611, + "src": "6346:13:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_storage_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_storage_ptr", "typeString": "struct ComposableCoW.PayloadStruct" } }, "visibility": "internal" } ], - "id": 53822, + "id": 53899, "initialValue": { "arguments": [ { - "id": 53818, + "id": 53895, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53807, - "src": "6389:7:134", + "referencedDeclaration": 53884, + "src": "6389:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -5387,28 +5386,28 @@ { "components": [ { - "id": 53819, + "id": 53896, "name": "PayloadStruct", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53534, - "src": "6399:13:134", + "referencedDeclaration": 53611, + "src": "6399:13:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53534_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53611_storage_ptr_$", "typeString": "type(struct ComposableCoW.PayloadStruct storage pointer)" } } ], - "id": 53820, + "id": 53897, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "6398:15:134", + "src": "6398:15:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53534_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53611_storage_ptr_$", "typeString": "type(struct ComposableCoW.PayloadStruct storage pointer)" } } @@ -5420,37 +5419,37 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53534_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53611_storage_ptr_$", "typeString": "type(struct ComposableCoW.PayloadStruct storage pointer)" } ], "expression": { - "id": 53816, + "id": 53893, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "6378:3:134", + "src": "6378:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 53817, + "id": 53894, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "6382:6:134", + "memberLocation": "6382:6:136", "memberName": "decode", "nodeType": "MemberAccess", - "src": "6378:10:134", + "src": "6378:10:136", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 53821, + "id": 53898, "isConstant": false, "isLValue": false, "isPure": false, @@ -5459,30 +5458,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6378:36:134", + "src": "6378:36:136", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6346:68:134" + "src": "6346:68:136" }, { "assignments": [ - 53824 + 53901 ], "declarations": [ { "constant": false, - "id": 53824, + "id": 53901, "mutability": "mutable", "name": "ctx", - "nameLocation": "6477:3:134", + "nameLocation": "6477:3:136", "nodeType": "VariableDeclaration", - "scope": 53895, - "src": "6469:11:134", + "scope": 53972, + "src": "6469:11:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5490,10 +5489,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 53823, + "id": 53900, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6469:7:134", + "src": "6469:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5502,18 +5501,18 @@ "visibility": "internal" } ], - "id": 53835, + "id": 53912, "initialValue": { "arguments": [ { "arguments": [ { - "id": 53828, + "id": 53905, "name": "safe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53795, - "src": "6497:4:134", + "referencedDeclaration": 53872, + "src": "6497:4:136", "typeDescriptions": { "typeIdentifier": "t_contract$_Safe_$48851", "typeString": "contract Safe" @@ -5527,26 +5526,26 @@ "typeString": "contract Safe" } ], - "id": 53827, + "id": 53904, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6489:7:134", + "src": "6489:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 53826, + "id": 53903, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6489:7:134", + "src": "6489:7:136", "typeDescriptions": {} } }, - "id": 53829, + "id": 53906, "isConstant": false, "isLValue": false, "isPure": false, @@ -5555,7 +5554,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6489:13:134", + "src": "6489:13:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5564,55 +5563,55 @@ }, { "expression": { - "id": 53830, + "id": 53907, "name": "_payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "6504:8:134", + "referencedDeclaration": 53892, + "src": "6504:8:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } }, - "id": 53831, + "id": 53908, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6513:6:134", + "memberLocation": "6513:6:136", "memberName": "params", "nodeType": "MemberAccess", - "referencedDeclaration": 53531, - "src": "6504:15:134", + "referencedDeclaration": 53608, + "src": "6504:15:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" } }, { "expression": { - "id": 53832, + "id": 53909, "name": "_payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "6521:8:134", + "referencedDeclaration": 53892, + "src": "6521:8:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } }, - "id": 53833, + "id": 53910, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6530:5:134", + "memberLocation": "6530:5:136", "memberName": "proof", "nodeType": "MemberAccess", - "referencedDeclaration": 53528, - "src": "6521:14:134", + "referencedDeclaration": 53605, + "src": "6521:14:136", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -5626,7 +5625,7 @@ "typeString": "address" }, { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" }, { @@ -5634,18 +5633,18 @@ "typeString": "bytes32[] memory" } ], - "id": 53825, + "id": 53902, "name": "_auth", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54129, - "src": "6483:5:134", + "referencedDeclaration": 54206, + "src": "6483:5:136", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ConditionalOrderParams_$54512_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, + "id": 53911, "isConstant": false, "isLValue": false, "isPure": false, @@ -5654,7 +5653,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6483:53:134", + "src": "6483:53:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -5662,62 +5661,62 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6469:67:134" + "src": "6469:67:136" }, { "assignments": [ - 53840 + 53917 ], "declarations": [ { "constant": false, - "id": 53840, + "id": 53917, "mutability": "mutable", "name": "order", - "nameLocation": "6619:5:134", + "nameLocation": "6619:5:136", "nodeType": "VariableDeclaration", - "scope": 53895, - "src": "6597:27:134", + "scope": 53972, + "src": "6597:27:136", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 53839, + "id": 53916, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53838, + "id": 53915, "name": "GPv2Order.Data", "nameLocations": [ - "6597:9:134", - "6607:4:134" + "6597:9:136", + "6607:4:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "6597:14:134" + "referencedDeclaration": 14334, + "src": "6597:14:136" }, - "referencedDeclaration": 17121, - "src": "6597:14:134", + "referencedDeclaration": 14334, + "src": "6597:14:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "id": 53848, + "id": 53925, "initialValue": { "arguments": [ { - "id": 53843, + "id": 53920, "name": "encodeData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53805, - "src": "6638:10:134", + "referencedDeclaration": 53882, + "src": "6638:10:136", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -5727,43 +5726,43 @@ "components": [ { "expression": { - "id": 53844, + "id": 53921, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "6651:9:134", + "referencedDeclaration": 14459, + "src": "6651:9:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 53845, + "id": 53922, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6661:4:134", + "memberLocation": "6661:4:136", "memberName": "Data", "nodeType": "MemberAccess", - "referencedDeclaration": 17121, - "src": "6651:14:134", + "referencedDeclaration": 14334, + "src": "6651:14:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$17121_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$14334_storage_ptr_$", "typeString": "type(struct GPv2Order.Data storage pointer)" } } ], - "id": 53846, + "id": 53923, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "6650:16:134", + "src": "6650:16:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$17121_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$14334_storage_ptr_$", "typeString": "type(struct GPv2Order.Data storage pointer)" } } @@ -5775,37 +5774,37 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_type$_t_struct$_Data_$17121_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$14334_storage_ptr_$", "typeString": "type(struct GPv2Order.Data storage pointer)" } ], "expression": { - "id": 53841, + "id": 53918, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "6627:3:134", + "src": "6627:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 53842, + "id": 53919, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "6631:6:134", + "memberLocation": "6631:6:136", "memberName": "decode", "nodeType": "MemberAccess", - "src": "6627:10:134", + "src": "6627:10:136", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 53847, + "id": 53924, "isConstant": false, "isLValue": false, "isPure": false, @@ -5814,19 +5813,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6627:40:134", + "src": "6627:40:136", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "6597:70:134" + "src": "6597:70:136" }, { "condition": { - "id": 53862, + "id": 53939, "isConstant": false, "isLValue": false, "isPure": false, @@ -5834,7 +5833,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "6753:82:134", + "src": "6753:82:136", "subExpression": { "components": [ { @@ -5842,12 +5841,12 @@ { "arguments": [ { - "id": 53852, + "id": 53929, "name": "safe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53795, - "src": "6775:4:134", + "referencedDeclaration": 53872, + "src": "6775:4:136", "typeDescriptions": { "typeIdentifier": "t_contract$_Safe_$48851", "typeString": "contract Safe" @@ -5861,26 +5860,26 @@ "typeString": "contract Safe" } ], - "id": 53851, + "id": 53928, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6767:7:134", + "src": "6767:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 53850, + "id": 53927, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6767:7:134", + "src": "6767:7:136", "typeDescriptions": {} } }, - "id": 53853, + "id": 53930, "isConstant": false, "isLValue": false, "isPure": false, @@ -5889,7 +5888,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6767:13:134", + "src": "6767:13:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5897,12 +5896,12 @@ } }, { - "id": 53854, + "id": 53931, "name": "ctx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53824, - "src": "6782:3:134", + "referencedDeclaration": 53901, + "src": "6782:3:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5910,69 +5909,69 @@ }, { "expression": { - "id": 53855, + "id": 53932, "name": "_payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "6787:8:134", + "referencedDeclaration": 53892, + "src": "6787:8:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } }, - "id": 53856, + "id": 53933, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6796:6:134", + "memberLocation": "6796:6:136", "memberName": "params", "nodeType": "MemberAccess", - "referencedDeclaration": 53531, - "src": "6787:15:134", + "referencedDeclaration": 53608, + "src": "6787:15:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" } }, { "expression": { - "id": 53857, + "id": 53934, "name": "_payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "6804:8:134", + "referencedDeclaration": 53892, + "src": "6804:8:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } }, - "id": 53858, + "id": 53935, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6813:13:134", + "memberLocation": "6813:13:136", "memberName": "offchainInput", "nodeType": "MemberAccess", - "referencedDeclaration": 53533, - "src": "6804:22:134", + "referencedDeclaration": 53610, + "src": "6804:22:136", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 53859, + "id": 53936, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53840, - "src": "6828:5:134", + "referencedDeclaration": 53917, + "src": "6828:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } } @@ -5988,7 +5987,7 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" }, { @@ -5996,22 +5995,22 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } ], - "id": 53849, + "id": 53926, "name": "_guardCheck", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54176, - "src": "6755:11:134", + "referencedDeclaration": 54253, + "src": "6755:11:136", "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_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$_t_struct$_ConditionalOrderParams_$54512_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Data_$14334_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,bytes32,struct IConditionalOrder.ConditionalOrderParams memory,bytes memory,struct GPv2Order.Data memory) view returns (bool)" } }, - "id": 53860, + "id": 53937, "isConstant": false, "isLValue": false, "isPure": false, @@ -6020,7 +6019,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6755:79:134", + "src": "6755:79:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6028,14 +6027,14 @@ } } ], - "id": 53861, + "id": 53938, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "6754:81:134", + "src": "6754:81:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6046,31 +6045,31 @@ "typeString": "bool" } }, - "id": 53867, + "id": 53944, "nodeType": "IfStatement", - "src": "6749:141:134", + "src": "6749:141:136", "trueBody": { - "id": 53866, + "id": 53943, "nodeType": "Block", - "src": "6837:53:134", + "src": "6837:53:136", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 53863, + "id": 53940, "name": "SwapGuardRestricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53519, - "src": "6858:19:134", + "referencedDeclaration": 53596, + "src": "6858:19:136", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 53864, + "id": 53941, "isConstant": false, "isLValue": false, "isPure": false, @@ -6079,16 +6078,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6858:21:134", + "src": "6858:21:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53865, + "id": 53942, "nodeType": "RevertStatement", - "src": "6851:28:134" + "src": "6851:28:136" } ] } @@ -6099,12 +6098,12 @@ { "arguments": [ { - "id": 53877, + "id": 53954, "name": "safe", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53795, - "src": "7026:4:134", + "referencedDeclaration": 53872, + "src": "7026:4:136", "typeDescriptions": { "typeIdentifier": "t_contract$_Safe_$48851", "typeString": "contract Safe" @@ -6118,26 +6117,26 @@ "typeString": "contract Safe" } ], - "id": 53876, + "id": 53953, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7018:7:134", + "src": "7018:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 53875, + "id": 53952, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7018:7:134", + "src": "7018:7:136", "typeDescriptions": {} } }, - "id": 53878, + "id": 53955, "isConstant": false, "isLValue": false, "isPure": false, @@ -6146,7 +6145,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7018:13:134", + "src": "7018:13:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -6154,48 +6153,48 @@ } }, { - "id": 53879, + "id": 53956, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53797, - "src": "7045:6:134", + "referencedDeclaration": 53874, + "src": "7045:6:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 53880, + "id": 53957, "name": "_hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53799, - "src": "7065:5:134", + "referencedDeclaration": 53876, + "src": "7065:5:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 53881, + "id": 53958, "name": "_domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53801, - "src": "7084:16:134", + "referencedDeclaration": 53878, + "src": "7084:16:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 53882, + "id": 53959, "name": "ctx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53824, - "src": "7114:3:134", + "referencedDeclaration": 53901, + "src": "7114:3:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6204,42 +6203,42 @@ { "expression": { "expression": { - "id": 53883, + "id": 53960, "name": "_payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "7131:8:134", + "referencedDeclaration": 53892, + "src": "7131:8:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } }, - "id": 53884, + "id": 53961, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7140:6:134", + "memberLocation": "7140:6:136", "memberName": "params", "nodeType": "MemberAccess", - "referencedDeclaration": 53531, - "src": "7131:15:134", + "referencedDeclaration": 53608, + "src": "7131:15:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" } }, - "id": 53885, + "id": 53962, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7147:11:134", + "memberLocation": "7147:11:136", "memberName": "staticInput", "nodeType": "MemberAccess", - "referencedDeclaration": 54414, - "src": "7131:27:134", + "referencedDeclaration": 54511, + "src": "7131:27:136", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6247,41 +6246,41 @@ }, { "expression": { - "id": 53886, + "id": 53963, "name": "_payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "7172:8:134", + "referencedDeclaration": 53892, + "src": "7172:8:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } }, - "id": 53887, + "id": 53964, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7181:13:134", + "memberLocation": "7181:13:136", "memberName": "offchainInput", "nodeType": "MemberAccess", - "referencedDeclaration": 53533, - "src": "7172:22:134", + "referencedDeclaration": 53610, + "src": "7172:22:136", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { - "id": 53888, + "id": 53965, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53840, - "src": "7208:5:134", + "referencedDeclaration": 53917, + "src": "7208:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } } @@ -6317,70 +6316,70 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } ], "expression": { "expression": { "expression": { - "id": 53868, + "id": 53945, "name": "_payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53815, - "src": "6974:8:134", + "referencedDeclaration": 53892, + "src": "6974:8:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } }, - "id": 53872, + "id": 53949, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6983:6:134", + "memberLocation": "6983:6:136", "memberName": "params", "nodeType": "MemberAccess", - "referencedDeclaration": 53531, - "src": "6974:15:134", + "referencedDeclaration": 53608, + "src": "6974:15:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" } }, - "id": 53873, + "id": 53950, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "6990:7:134", + "memberLocation": "6990:7:136", "memberName": "handler", "nodeType": "MemberAccess", - "referencedDeclaration": 54410, - "src": "6974:23:134", + "referencedDeclaration": 54507, + "src": "6974:23:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", + "typeIdentifier": "t_contract$_IConditionalOrder_$54540", "typeString": "contract IConditionalOrder" } }, - "id": 53874, + "id": 53951, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6998:6:134", + "memberLocation": "6998:6:136", "memberName": "verify", "nodeType": "MemberAccess", - "referencedDeclaration": 54436, - "src": "6974:30:134", + "referencedDeclaration": 54533, + "src": "6974:30:136", "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$__$", + "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_$14334_memory_ptr_$returns$__$", "typeString": "function (address,address,bytes32,bytes32,bytes32,bytes memory,bytes memory,struct GPv2Order.Data memory) view external" } }, - "id": 53889, + "id": 53966, "isConstant": false, "isLValue": false, "isPure": false, @@ -6389,65 +6388,65 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6974:249:134", + "src": "6974:249:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53890, + "id": 53967, "nodeType": "ExpressionStatement", - "src": "6974:249:134" + "src": "6974:249:136" }, { "expression": { "expression": { "expression": { - "id": 53891, + "id": 53968, "name": "ERC1271", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51612, - "src": "7241:7:134", + "src": "7241:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC1271_$51612_$", "typeString": "type(contract ERC1271)" } }, - "id": 53892, + "id": 53969, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "7249:16:134", + "memberLocation": "7249:16:136", "memberName": "isValidSignature", "nodeType": "MemberAccess", "referencedDeclaration": 51611, - "src": "7241:24:134", + "src": "7241:24:136", "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, + "id": 53970, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "7266:8:134", + "memberLocation": "7266:8:136", "memberName": "selector", "nodeType": "MemberAccess", - "src": "7241:33:134", + "src": "7241:33:136", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "functionReturnParameters": 53812, - "id": 53894, + "functionReturnParameters": 53889, + "id": 53971, "nodeType": "Return", - "src": "7234:40:134" + "src": "7234:40:136" } ] }, @@ -6455,9 +6454,9 @@ 51634 ], "documentation": { - "id": 53792, + "id": 53869, "nodeType": "StructuredDocumentation", - "src": "5712:305:134", + "src": "5712:305:136", "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", @@ -6465,26 +6464,26 @@ "kind": "function", "modifiers": [], "name": "isValidSafeSignature", - "nameLocation": "6031:20:134", + "nameLocation": "6031:20:136", "overrides": { - "id": 53809, + "id": 53886, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "6268:8:134" + "src": "6268:8:136" }, "parameters": { - "id": 53808, + "id": 53885, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53795, + "id": 53872, "mutability": "mutable", "name": "safe", - "nameLocation": "6066:4:134", + "nameLocation": "6066:4:136", "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6061:9:134", + "scope": 53973, + "src": "6061:9:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6492,20 +6491,20 @@ "typeString": "contract Safe" }, "typeName": { - "id": 53794, + "id": 53871, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53793, + "id": 53870, "name": "Safe", "nameLocations": [ - "6061:4:134" + "6061:4:136" ], "nodeType": "IdentifierPath", "referencedDeclaration": 48851, - "src": "6061:4:134" + "src": "6061:4:136" }, "referencedDeclaration": 48851, - "src": "6061:4:134", + "src": "6061:4:136", "typeDescriptions": { "typeIdentifier": "t_contract$_Safe_$48851", "typeString": "contract Safe" @@ -6515,13 +6514,13 @@ }, { "constant": false, - "id": 53797, + "id": 53874, "mutability": "mutable", "name": "sender", - "nameLocation": "6088:6:134", + "nameLocation": "6088:6:136", "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6080:14:134", + "scope": 53973, + "src": "6080:14:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6529,10 +6528,10 @@ "typeString": "address" }, "typeName": { - "id": 53796, + "id": 53873, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6080:7:134", + "src": "6080:7:136", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6543,13 +6542,13 @@ }, { "constant": false, - "id": 53799, + "id": 53876, "mutability": "mutable", "name": "_hash", - "nameLocation": "6112:5:134", + "nameLocation": "6112:5:136", "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6104:13:134", + "scope": 53973, + "src": "6104:13:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6557,10 +6556,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 53798, + "id": 53875, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6104:7:134", + "src": "6104:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6570,13 +6569,13 @@ }, { "constant": false, - "id": 53801, + "id": 53878, "mutability": "mutable", "name": "_domainSeparator", - "nameLocation": "6135:16:134", + "nameLocation": "6135:16:136", "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6127:24:134", + "scope": 53973, + "src": "6127:24:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6584,10 +6583,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 53800, + "id": 53877, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6127:7:134", + "src": "6127:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6597,13 +6596,13 @@ }, { "constant": false, - "id": 53803, + "id": 53880, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6161:7:134", + "scope": 53973, + "src": "6161:7:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6611,10 +6610,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 53802, + "id": 53879, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6161:7:134", + "src": "6161:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6624,13 +6623,13 @@ }, { "constant": false, - "id": 53805, + "id": 53882, "mutability": "mutable", "name": "encodeData", - "nameLocation": "6205:10:134", + "nameLocation": "6205:10:136", "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6190:25:134", + "scope": 53973, + "src": "6190:25:136", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -6638,10 +6637,10 @@ "typeString": "bytes" }, "typeName": { - "id": 53804, + "id": 53881, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6190:5:134", + "src": "6190:5:136", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6651,13 +6650,13 @@ }, { "constant": false, - "id": 53807, + "id": 53884, "mutability": "mutable", "name": "payload", - "nameLocation": "6240:7:134", + "nameLocation": "6240:7:136", "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6225:22:134", + "scope": 53973, + "src": "6225:22:136", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -6665,10 +6664,10 @@ "typeString": "bytes" }, "typeName": { - "id": 53806, + "id": 53883, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6225:5:134", + "src": "6225:5:136", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6677,21 +6676,21 @@ "visibility": "internal" } ], - "src": "6051:202:134" + "src": "6051:202:136" }, "returnParameters": { - "id": 53812, + "id": 53889, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53811, + "id": 53888, "mutability": "mutable", "name": "magic", - "nameLocation": "6293:5:134", + "nameLocation": "6293:5:136", "nodeType": "VariableDeclaration", - "scope": 53896, - "src": "6286:12:134", + "scope": 53973, + "src": "6286:12:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6699,10 +6698,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 53810, + "id": 53887, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "6286:6:134", + "src": "6286:6:136", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -6711,38 +6710,38 @@ "visibility": "internal" } ], - "src": "6285:14:134" + "src": "6285:14:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 54046, + "id": 54123, "nodeType": "FunctionDefinition", - "src": "7821:2111:134", + "src": "7821:2111:136", "nodes": [], "body": { - "id": 54045, + "id": 54122, "nodeType": "Block", - "src": "8104:1828:134", + "src": "8104:1828:136", "nodes": [], "statements": [ { "assignments": [ - 53916 + 53993 ], "declarations": [ { "constant": false, - "id": 53916, + "id": 53993, "mutability": "mutable", "name": "ctx", - "nameLocation": "8199:3:134", + "nameLocation": "8199:3:136", "nodeType": "VariableDeclaration", - "scope": 54045, - "src": "8191:11:134", + "scope": 54122, + "src": "8191:11:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6750,10 +6749,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 53915, + "id": 53992, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8191:7:134", + "src": "8191:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6762,40 +6761,40 @@ "visibility": "internal" } ], - "id": 53922, + "id": 53999, "initialValue": { "arguments": [ { - "id": 53918, + "id": 53995, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53899, - "src": "8211:5:134", + "referencedDeclaration": 53976, + "src": "8211:5:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 53919, + "id": 53996, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "8218:6:134", + "referencedDeclaration": 53979, + "src": "8218:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } }, { - "id": 53920, + "id": 53997, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53907, - "src": "8226:5:134", + "referencedDeclaration": 53984, + "src": "8226:5:136", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" @@ -6809,7 +6808,7 @@ "typeString": "address" }, { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" }, { @@ -6817,18 +6816,18 @@ "typeString": "bytes32[] calldata" } ], - "id": 53917, + "id": 53994, "name": "_auth", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54129, - "src": "8205:5:134", + "referencedDeclaration": 54206, + "src": "8205:5:136", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ConditionalOrderParams_$54512_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, + "id": 53998, "isConstant": false, "isLValue": false, "isPure": false, @@ -6837,7 +6836,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8205:27:134", + "src": "8205:27:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6845,19 +6844,19 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8191:41:134" + "src": "8191:41:136" }, { "clauses": [ { "block": { - "id": 53946, + "id": 54023, "nodeType": "Block", - "src": "8481:103:134", + "src": "8481:103:136", "statements": [ { "condition": { - "id": 53940, + "id": 54017, "isConstant": false, "isLValue": false, "isPure": false, @@ -6865,14 +6864,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "8499:10:134", + "src": "8499:10:136", "subExpression": { - "id": 53939, + "id": 54016, "name": "supported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53937, - "src": "8500:9:134", + "referencedDeclaration": 54014, + "src": "8500:9:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6883,31 +6882,31 @@ "typeString": "bool" } }, - "id": 53945, + "id": 54022, "nodeType": "IfStatement", - "src": "8495:79:134", + "src": "8495:79:136", "trueBody": { - "id": 53944, + "id": 54021, "nodeType": "Block", - "src": "8511:63:134", + "src": "8511:63:136", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 53941, + "id": 54018, "name": "InterfaceNotSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53525, - "src": "8536:21:134", + "referencedDeclaration": 53602, + "src": "8536:21:136", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 53942, + "id": 54019, "isConstant": false, "isLValue": false, "isPure": false, @@ -6916,16 +6915,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8536:23:134", + "src": "8536:23:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53943, + "id": 54020, "nodeType": "RevertStatement", - "src": "8529:30:134" + "src": "8529:30:136" } ] } @@ -6933,21 +6932,21 @@ ] }, "errorName": "", - "id": 53947, + "id": 54024, "nodeType": "TryCatchClause", "parameters": { - "id": 53938, + "id": 54015, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53937, + "id": 54014, "mutability": "mutable", "name": "supported", - "nameLocation": "8470:9:134", + "nameLocation": "8470:9:136", "nodeType": "VariableDeclaration", - "scope": 53947, - "src": "8465:14:134", + "scope": 54024, + "src": "8465:14:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6955,10 +6954,10 @@ "typeString": "bool" }, "typeName": { - "id": 53936, + "id": 54013, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8465:4:134", + "src": "8465:4:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6967,33 +6966,33 @@ "visibility": "internal" } ], - "src": "8464:16:134" + "src": "8464:16:136" }, - "src": "8456:128:134" + "src": "8456:128:136" }, { "block": { - "id": 53951, + "id": 54028, "nodeType": "Block", - "src": "8591:55:134", + "src": "8591:55:136", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 53948, + "id": 54025, "name": "InterfaceNotSupported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53525, - "src": "8612:21:134", + "referencedDeclaration": 53602, + "src": "8612:21:136", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 53949, + "id": 54026, "isConstant": false, "isLValue": false, "isPure": false, @@ -7002,23 +7001,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8612:23:134", + "src": "8612:23:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53950, + "id": 54027, "nodeType": "RevertStatement", - "src": "8605:30:134" + "src": "8605:30:136" } ] }, "errorName": "", - "id": 53952, + "id": 54029, "nodeType": "TryCatchClause", - "src": "8585:61:134" + "src": "8585:61:136" } ], "externalCall": { @@ -7027,14 +7026,14 @@ "expression": { "arguments": [ { - "id": 53932, + "id": 54009, "name": "IConditionalOrderGenerator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54468, - "src": "8406:26:134", + "referencedDeclaration": 54571, + "src": "8406:26:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54468_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54571_$", "typeString": "type(contract IConditionalOrderGenerator)" } } @@ -7042,22 +7041,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54468_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54571_$", "typeString": "type(contract IConditionalOrderGenerator)" } ], - "id": 53931, + "id": 54008, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "8401:4:134", + "src": "8401:4:136", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 53933, + "id": 54010, "isConstant": false, "isLValue": false, "isPure": true, @@ -7066,22 +7065,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8401:32:134", + "src": "8401:32:136", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_IConditionalOrderGenerator_$54468", + "typeIdentifier": "t_magic_meta_type_t_contract$_IConditionalOrderGenerator_$54571", "typeString": "type(contract IConditionalOrderGenerator)" } }, - "id": 53934, + "id": 54011, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "8434:11:134", + "memberLocation": "8434:11:136", "memberName": "interfaceId", "nodeType": "MemberAccess", - "src": "8401:44:134", + "src": "8401:44:136", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -7101,29 +7100,29 @@ "arguments": [ { "expression": { - "id": 53926, + "id": 54003, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "8353:6:134", + "referencedDeclaration": 53979, + "src": "8353:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } }, - "id": 53927, + "id": 54004, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8360:7:134", + "memberLocation": "8360:7:136", "memberName": "handler", "nodeType": "MemberAccess", - "referencedDeclaration": 54410, - "src": "8353:14:134", + "referencedDeclaration": 54507, + "src": "8353:14:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", + "typeIdentifier": "t_contract$_IConditionalOrder_$54540", "typeString": "contract IConditionalOrder" } } @@ -7131,30 +7130,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", + "typeIdentifier": "t_contract$_IConditionalOrder_$54540", "typeString": "contract IConditionalOrder" } ], - "id": 53925, + "id": 54002, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8345:7:134", + "src": "8345:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 53924, + "id": 54001, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8345:7:134", + "src": "8345:7:136", "typeDescriptions": {} } }, - "id": 53928, + "id": 54005, "isConstant": false, "isLValue": false, "isPure": false, @@ -7163,7 +7162,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8345:23:134", + "src": "8345:23:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7178,18 +7177,18 @@ "typeString": "address" } ], - "id": 53923, + "id": 54000, "name": "IConditionalOrderGenerator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54468, - "src": "8318:26:134", + "referencedDeclaration": 54571, + "src": "8318:26:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54468_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54571_$", "typeString": "type(contract IConditionalOrderGenerator)" } }, - "id": 53929, + "id": 54006, "isConstant": false, "isLValue": false, "isPure": false, @@ -7198,29 +7197,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8318:51:134", + "src": "8318:51:136", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrderGenerator_$54468", + "typeIdentifier": "t_contract$_IConditionalOrderGenerator_$54571", "typeString": "contract IConditionalOrderGenerator" } }, - "id": 53930, + "id": 54007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8370:17:134", + "memberLocation": "8370:17:136", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 52196, - "src": "8318:69:134", + "src": "8318:69:136", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes4_$returns$_t_bool_$", "typeString": "function (bytes4) view external returns (bool)" } }, - "id": 53935, + "id": 54012, "isConstant": false, "isLValue": false, "isPure": false, @@ -7229,33 +7228,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8318:137:134", + "src": "8318:137:136", "tryCall": true, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 53953, + "id": 54030, "nodeType": "TryStatement", - "src": "8314:332:134" + "src": "8314:332:136" }, { "expression": { - "id": 53971, + "id": 54048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 53954, + "id": 54031, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53911, - "src": "8656:5:134", + "referencedDeclaration": 53988, + "src": "8656:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, @@ -7264,12 +7263,12 @@ "rightHandSide": { "arguments": [ { - "id": 53963, + "id": 54040, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53899, - "src": "8747:5:134", + "referencedDeclaration": 53976, + "src": "8747:5:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7277,38 +7276,38 @@ }, { "expression": { - "id": 53964, + "id": 54041, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8754:3:134", + "src": "8754:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 53965, + "id": 54042, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8758:6:134", + "memberLocation": "8758:6:136", "memberName": "sender", "nodeType": "MemberAccess", - "src": "8754:10:134", + "src": "8754:10:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 53966, + "id": 54043, "name": "ctx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53916, - "src": "8766:3:134", + "referencedDeclaration": 53993, + "src": "8766:3:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7316,39 +7315,39 @@ }, { "expression": { - "id": 53967, + "id": 54044, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "8771:6:134", + "referencedDeclaration": 53979, + "src": "8771:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } }, - "id": 53968, + "id": 54045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8778:11:134", + "memberLocation": "8778:11:136", "memberName": "staticInput", "nodeType": "MemberAccess", - "referencedDeclaration": 54414, - "src": "8771:18:134", + "referencedDeclaration": 54511, + "src": "8771:18:136", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { - "id": 53969, + "id": 54046, "name": "offchainInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53904, - "src": "8791:13:134", + "referencedDeclaration": 53981, + "src": "8791:13:136", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -7384,29 +7383,29 @@ "arguments": [ { "expression": { - "id": 53958, + "id": 54035, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "8699:6:134", + "referencedDeclaration": 53979, + "src": "8699:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } }, - "id": 53959, + "id": 54036, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8706:7:134", + "memberLocation": "8706:7:136", "memberName": "handler", "nodeType": "MemberAccess", - "referencedDeclaration": 54410, - "src": "8699:14:134", + "referencedDeclaration": 54507, + "src": "8699:14:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", + "typeIdentifier": "t_contract$_IConditionalOrder_$54540", "typeString": "contract IConditionalOrder" } } @@ -7414,30 +7413,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", + "typeIdentifier": "t_contract$_IConditionalOrder_$54540", "typeString": "contract IConditionalOrder" } ], - "id": 53957, + "id": 54034, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8691:7:134", + "src": "8691:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 53956, + "id": 54033, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8691:7:134", + "src": "8691:7:136", "typeDescriptions": {} } }, - "id": 53960, + "id": 54037, "isConstant": false, "isLValue": false, "isPure": false, @@ -7446,7 +7445,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8691:23:134", + "src": "8691:23:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7461,18 +7460,18 @@ "typeString": "address" } ], - "id": 53955, + "id": 54032, "name": "IConditionalOrderGenerator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54468, - "src": "8664:26:134", + "referencedDeclaration": 54571, + "src": "8664:26:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54468_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrderGenerator_$54571_$", "typeString": "type(contract IConditionalOrderGenerator)" } }, - "id": 53961, + "id": 54038, "isConstant": false, "isLValue": false, "isPure": false, @@ -7481,29 +7480,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8664:51:134", + "src": "8664:51:136", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrderGenerator_$54468", + "typeIdentifier": "t_contract$_IConditionalOrderGenerator_$54571", "typeString": "contract IConditionalOrderGenerator" } }, - "id": 53962, + "id": 54039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8716:17:134", + "memberLocation": "8716:17:136", "memberName": "getTradeableOrder", "nodeType": "MemberAccess", - "referencedDeclaration": 54467, - "src": "8664:69:134", + "referencedDeclaration": 54570, + "src": "8664:69:136", "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_$", + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_Data_$14334_memory_ptr_$", "typeString": "function (address,address,bytes32,bytes memory,bytes memory) view external returns (struct GPv2Order.Data memory)" } }, - "id": 53970, + "id": 54047, "isConstant": false, "isLValue": false, "isPure": false, @@ -7512,26 +7511,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8664:150:134", + "src": "8664:150:136", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "src": "8656:158:134", + "src": "8656:158:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "id": 53972, + "id": 54049, "nodeType": "ExpressionStatement", - "src": "8656:158:134" + "src": "8656:158:136" }, { "condition": { - "id": 53981, + "id": 54058, "isConstant": false, "isLValue": false, "isPure": false, @@ -7539,68 +7538,68 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "8900:56:134", + "src": "8900:56:136", "subExpression": { "components": [ { "arguments": [ { - "id": 53974, + "id": 54051, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53899, - "src": "8914:5:134", + "referencedDeclaration": 53976, + "src": "8914:5:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 53975, + "id": 54052, "name": "ctx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53916, - "src": "8921:3:134", + "referencedDeclaration": 53993, + "src": "8921:3:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 53976, + "id": 54053, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "8926:6:134", + "referencedDeclaration": 53979, + "src": "8926:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } }, { - "id": 53977, + "id": 54054, "name": "offchainInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53904, - "src": "8934:13:134", + "referencedDeclaration": 53981, + "src": "8934:13:136", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { - "id": 53978, + "id": 54055, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53911, - "src": "8949:5:134", + "referencedDeclaration": 53988, + "src": "8949:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } } @@ -7616,7 +7615,7 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" }, { @@ -7624,22 +7623,22 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } ], - "id": 53973, + "id": 54050, "name": "_guardCheck", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54176, - "src": "8902:11:134", + "referencedDeclaration": 54253, + "src": "8902:11:136", "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_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$_t_struct$_ConditionalOrderParams_$54512_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_Data_$14334_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,bytes32,struct IConditionalOrder.ConditionalOrderParams memory,bytes memory,struct GPv2Order.Data memory) view returns (bool)" } }, - "id": 53979, + "id": 54056, "isConstant": false, "isLValue": false, "isPure": false, @@ -7648,7 +7647,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8902:53:134", + "src": "8902:53:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7656,14 +7655,14 @@ } } ], - "id": 53980, + "id": 54057, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8901:55:134", + "src": "8901:55:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7674,31 +7673,31 @@ "typeString": "bool" } }, - "id": 53986, + "id": 54063, "nodeType": "IfStatement", - "src": "8896:115:134", + "src": "8896:115:136", "trueBody": { - "id": 53985, + "id": 54062, "nodeType": "Block", - "src": "8958:53:134", + "src": "8958:53:136", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 53982, + "id": 54059, "name": "SwapGuardRestricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53519, - "src": "8979:19:134", + "referencedDeclaration": 53596, + "src": "8979:19:136", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 53983, + "id": 54060, "isConstant": false, "isLValue": false, "isPure": false, @@ -7707,16 +7706,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8979:21:134", + "src": "8979:21:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 53984, + "id": 54061, "nodeType": "RevertStatement", - "src": "8972:28:134" + "src": "8972:28:136" } ] } @@ -7725,13 +7724,13 @@ "clauses": [ { "block": { - "id": 54028, + "id": 54105, "nodeType": "Block", - "src": "9166:439:134", + "src": "9166:439:136", "statements": [ { "condition": { - "id": 54000, + "id": 54077, "isConstant": false, "isLValue": false, "isPure": false, @@ -7739,14 +7738,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "9184:10:134", + "src": "9184:10:136", "subExpression": { - "id": 53999, + "id": 54076, "name": "supported", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53997, - "src": "9185:9:134", + "referencedDeclaration": 54074, + "src": "9185:9:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7757,31 +7756,31 @@ "typeString": "bool" } }, - "id": 54005, + "id": 54082, "nodeType": "IfStatement", - "src": "9180:80:134", + "src": "9180:80:136", "trueBody": { - "id": 54004, + "id": 54081, "nodeType": "Block", - "src": "9196:64:134", + "src": "9196:64:136", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 54001, + "id": 54078, "name": "InvalidFallbackHandler", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53523, - "src": "9221:22:134", + "referencedDeclaration": 53600, + "src": "9221:22:136", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 54002, + "id": 54079, "isConstant": false, "isLValue": false, "isPure": false, @@ -7790,34 +7789,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9221:24:134", + "src": "9221:24:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 54003, + "id": 54080, "nodeType": "RevertStatement", - "src": "9214:31:134" + "src": "9214:31:136" } ] } }, { "expression": { - "id": 54026, + "id": 54103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 54006, + "id": 54083, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53913, - "src": "9273:9:134", + "referencedDeclaration": 53990, + "src": "9273:9:136", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7829,14 +7828,14 @@ "arguments": [ { "hexValue": "736166655369676e617475726528627974657333322c627974657333322c62797465732c627974657329", - "id": 54009, + "id": 54086, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9326:44:134", + "src": "9326:44:136", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5fd7e97d23ef360c5d2e60fa1c324a4e6732bed1784f8dbd80419b885c65f5a0", "typeString": "literal_string \"safeSignature(bytes32,bytes32,bytes,bytes)\"" @@ -7844,12 +7843,12 @@ "value": "safeSignature(bytes32,bytes32,bytes,bytes)" }, { - "id": 54010, + "id": 54087, "name": "domainSeparator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53564, - "src": "9388:15:134", + "referencedDeclaration": 53641, + "src": "9388:15:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7857,27 +7856,27 @@ }, { "expression": { - "id": 54011, + "id": 54088, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "9421:9:134", + "referencedDeclaration": 14459, + "src": "9421:9:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 54012, + "id": 54089, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "9431:9:134", + "memberLocation": "9431:9:136", "memberName": "TYPE_HASH", "nodeType": "MemberAccess", - "referencedDeclaration": 17125, - "src": "9421:19:134", + "referencedDeclaration": 14338, + "src": "9421:19:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7886,14 +7885,14 @@ { "arguments": [ { - "id": 54015, + "id": 54092, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53911, - "src": "9469:5:134", + "referencedDeclaration": 53988, + "src": "9469:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } } @@ -7901,37 +7900,37 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } ], "expression": { - "id": 54013, + "id": 54090, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "9458:3:134", + "src": "9458:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 54014, + "id": 54091, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "9462:6:134", + "memberLocation": "9462:6:136", "memberName": "encode", "nodeType": "MemberAccess", - "src": "9458:10:134", + "src": "9458:10:136", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 54016, + "id": 54093, "isConstant": false, "isLValue": false, "isPure": false, @@ -7940,7 +7939,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9458:17:134", + "src": "9458:17:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7952,36 +7951,36 @@ { "arguments": [ { - "id": 54020, + "id": 54097, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "9527:6:134", + "referencedDeclaration": 53979, + "src": "9527:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } }, { - "id": 54021, + "id": 54098, "name": "offchainInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53904, - "src": "9550:13:134", + "referencedDeclaration": 53981, + "src": "9550:13:136", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { - "id": 54022, + "id": 54099, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53907, - "src": "9572:5:134", + "referencedDeclaration": 53984, + "src": "9572:5:136", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" @@ -7991,7 +7990,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" }, { @@ -8003,27 +8002,27 @@ "typeString": "bytes32[] calldata" } ], - "id": 54019, + "id": 54096, "name": "PayloadStruct", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53534, - "src": "9504:13:134", + "referencedDeclaration": 53611, + "src": "9504:13:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53534_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53611_storage_ptr_$", "typeString": "type(struct ComposableCoW.PayloadStruct storage pointer)" } }, - "id": 54023, + "id": 54100, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "9519:6:134", - "9535:13:134", - "9565:5:134" + "9519:6:136", + "9535:13:136", + "9565:5:136" ], "names": [ "params", @@ -8031,10 +8030,10 @@ "proof" ], "nodeType": "FunctionCall", - "src": "9504:75:134", + "src": "9504:75:136", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } } @@ -8042,37 +8041,37 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } ], "expression": { - "id": 54017, + "id": 54094, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "9493:3:134", + "src": "9493:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 54018, + "id": 54095, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "9497:6:134", + "memberLocation": "9497:6:136", "memberName": "encode", "nodeType": "MemberAccess", - "src": "9493:10:134", + "src": "9493:10:136", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 54024, + "id": 54101, "isConstant": false, "isLValue": false, "isPure": false, @@ -8081,7 +8080,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9493:87:134", + "src": "9493:87:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -8113,32 +8112,32 @@ } ], "expression": { - "id": 54007, + "id": 54084, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "9285:3:134", + "src": "9285:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 54008, + "id": 54085, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "9289:19:134", + "memberLocation": "9289:19:136", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", - "src": "9285:23:134", + "src": "9285:23:136", "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, + "id": 54102, "isConstant": false, "isLValue": false, "isPure": false, @@ -8147,41 +8146,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9285:309:134", + "src": "9285:309:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "src": "9273:321:134", + "src": "9273:321:136", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 54027, + "id": 54104, "nodeType": "ExpressionStatement", - "src": "9273:321:134" + "src": "9273:321:136" } ] }, "errorName": "", - "id": 54029, + "id": 54106, "nodeType": "TryCatchClause", "parameters": { - "id": 53998, + "id": 54075, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53997, + "id": 54074, "mutability": "mutable", "name": "supported", - "nameLocation": "9146:9:134", + "nameLocation": "9146:9:136", "nodeType": "VariableDeclaration", - "scope": 54029, - "src": "9141:14:134", + "scope": 54106, + "src": "9141:14:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8189,10 +8188,10 @@ "typeString": "bool" }, "typeName": { - "id": 53996, + "id": 54073, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9141:4:134", + "src": "9141:4:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8201,30 +8200,30 @@ "visibility": "internal" } ], - "src": "9127:38:134" + "src": "9127:38:136" }, - "src": "9119:486:134" + "src": "9119:486:136" }, { "block": { - "id": 54042, + "id": 54119, "nodeType": "Block", - "src": "9612:314:134", + "src": "9612:314:136", "statements": [ { "expression": { - "id": 54040, + "id": 54117, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 54030, + "id": 54107, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53913, - "src": "9809:9:134", + "referencedDeclaration": 53990, + "src": "9809:9:136", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -8235,50 +8234,50 @@ "rightHandSide": { "arguments": [ { - "id": 54033, + "id": 54110, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53911, - "src": "9832:5:134", + "referencedDeclaration": 53988, + "src": "9832:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, { "arguments": [ { - "id": 54035, + "id": 54112, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53902, - "src": "9862:6:134", + "referencedDeclaration": 53979, + "src": "9862:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" } }, { - "id": 54036, + "id": 54113, "name": "offchainInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53904, - "src": "9885:13:134", + "referencedDeclaration": 53981, + "src": "9885:13:136", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { - "id": 54037, + "id": 54114, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53907, - "src": "9907:5:134", + "referencedDeclaration": 53984, + "src": "9907:5:136", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" @@ -8288,7 +8287,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams calldata" }, { @@ -8300,27 +8299,27 @@ "typeString": "bytes32[] calldata" } ], - "id": 54034, + "id": 54111, "name": "PayloadStruct", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53534, - "src": "9839:13:134", + "referencedDeclaration": 53611, + "src": "9839:13:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53534_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_PayloadStruct_$53611_storage_ptr_$", "typeString": "type(struct ComposableCoW.PayloadStruct storage pointer)" } }, - "id": 54038, + "id": 54115, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "9854:6:134", - "9870:13:134", - "9900:5:134" + "9854:6:136", + "9870:13:136", + "9900:5:136" ], "names": [ "params", @@ -8328,10 +8327,10 @@ "proof" ], "nodeType": "FunctionCall", - "src": "9839:75:134", + "src": "9839:75:136", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } } @@ -8339,41 +8338,41 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" }, { - "typeIdentifier": "t_struct$_PayloadStruct_$53534_memory_ptr", + "typeIdentifier": "t_struct$_PayloadStruct_$53611_memory_ptr", "typeString": "struct ComposableCoW.PayloadStruct memory" } ], "expression": { - "id": 54031, + "id": 54108, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "9821:3:134", + "src": "9821:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 54032, + "id": 54109, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "9825:6:134", + "memberLocation": "9825:6:136", "memberName": "encode", "nodeType": "MemberAccess", - "src": "9821:10:134", + "src": "9821:10:136", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 54039, + "id": 54116, "isConstant": false, "isLValue": false, "isPure": false, @@ -8382,29 +8381,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9821:94:134", + "src": "9821:94:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "src": "9809:106:134", + "src": "9809:106:136", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 54041, + "id": 54118, "nodeType": "ExpressionStatement", - "src": "9809:106:134" + "src": "9809:106:136" } ] }, "errorName": "", - "id": 54043, + "id": 54120, "nodeType": "TryCatchClause", - "src": "9606:320:134" + "src": "9606:320:136" } ], "externalCall": { @@ -8413,12 +8412,12 @@ "expression": { "arguments": [ { - "id": 53992, + "id": 54069, "name": "ISignatureVerifierMuxer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51655, - "src": "9081:23:134", + "src": "9081:23:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ISignatureVerifierMuxer_$51655_$", "typeString": "type(contract ISignatureVerifierMuxer)" @@ -8432,18 +8431,18 @@ "typeString": "type(contract ISignatureVerifierMuxer)" } ], - "id": 53991, + "id": 54068, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "9076:4:134", + "src": "9076:4:136", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 53993, + "id": 54070, "isConstant": false, "isLValue": false, "isPure": true, @@ -8452,22 +8451,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9076:29:134", + "src": "9076:29:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_contract$_ISignatureVerifierMuxer_$51655", "typeString": "type(contract ISignatureVerifierMuxer)" } }, - "id": 53994, + "id": 54071, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "9106:11:134", + "memberLocation": "9106:11:136", "memberName": "interfaceId", "nodeType": "MemberAccess", - "src": "9076:41:134", + "src": "9076:41:136", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -8484,12 +8483,12 @@ "expression": { "arguments": [ { - "id": 53988, + "id": 54065, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53899, - "src": "9051:5:134", + "referencedDeclaration": 53976, + "src": "9051:5:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8503,18 +8502,18 @@ "typeString": "address" } ], - "id": 53987, + "id": 54064, "name": "ExtensibleFallbackHandler", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50607, - "src": "9025:25:134", + "src": "9025:25:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ExtensibleFallbackHandler_$50607_$", "typeString": "type(contract ExtensibleFallbackHandler)" } }, - "id": 53989, + "id": 54066, "isConstant": false, "isLValue": false, "isPure": false, @@ -8523,29 +8522,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9025:32:134", + "src": "9025:32:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ExtensibleFallbackHandler_$50607", "typeString": "contract ExtensibleFallbackHandler" } }, - "id": 53990, + "id": 54067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9058:17:134", + "memberLocation": "9058:17:136", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 51361, - "src": "9025:50:134", + "src": "9025:50:136", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes4_$returns$_t_bool_$", "typeString": "function (bytes4) view external returns (bool)" } }, - "id": 53995, + "id": 54072, "isConstant": false, "isLValue": false, "isPure": false, @@ -8554,23 +8553,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9025:93:134", + "src": "9025:93:136", "tryCall": true, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 54044, + "id": 54121, "nodeType": "TryStatement", - "src": "9021:905:134" + "src": "9021:905:136" } ] }, "documentation": { - "id": 53897, + "id": 53974, "nodeType": "StructuredDocumentation", - "src": "7307:509:134", + "src": "7307:509:136", "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", @@ -8578,20 +8577,20 @@ "kind": "function", "modifiers": [], "name": "getTradeableOrderWithSignature", - "nameLocation": "7830:30:134", + "nameLocation": "7830:30:136", "parameters": { - "id": 53908, + "id": 53985, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53899, + "id": 53976, "mutability": "mutable", "name": "owner", - "nameLocation": "7878:5:134", + "nameLocation": "7878:5:136", "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "7870:13:134", + "scope": 54123, + "src": "7870:13:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8599,10 +8598,10 @@ "typeString": "address" }, "typeName": { - "id": 53898, + "id": 53975, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7870:7:134", + "src": "7870:7:136", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8613,37 +8612,37 @@ }, { "constant": false, - "id": 53902, + "id": 53979, "mutability": "mutable", "name": "params", - "nameLocation": "7943:6:134", + "nameLocation": "7943:6:136", "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "7893:56:134", + "scope": 54123, + "src": "7893:56:136", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 53901, + "id": 53978, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53900, + "id": 53977, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "7893:17:134", - "7911:22:134" + "7893:17:136", + "7911:22:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "7893:40:134" + "referencedDeclaration": 54512, + "src": "7893:40:136" }, - "referencedDeclaration": 54415, - "src": "7893:40:134", + "referencedDeclaration": 54512, + "src": "7893:40:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, @@ -8651,13 +8650,13 @@ }, { "constant": false, - "id": 53904, + "id": 53981, "mutability": "mutable", "name": "offchainInput", - "nameLocation": "7974:13:134", + "nameLocation": "7974:13:136", "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "7959:28:134", + "scope": 54123, + "src": "7959:28:136", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -8665,10 +8664,10 @@ "typeString": "bytes" }, "typeName": { - "id": 53903, + "id": 53980, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7959:5:134", + "src": "7959:5:136", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8678,13 +8677,13 @@ }, { "constant": false, - "id": 53907, + "id": 53984, "mutability": "mutable", "name": "proof", - "nameLocation": "8016:5:134", + "nameLocation": "8016:5:136", "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "7997:24:134", + "scope": 54123, + "src": "7997:24:136", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -8693,18 +8692,18 @@ }, "typeName": { "baseType": { - "id": 53905, + "id": 53982, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7997:7:134", + "src": "7997:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 53906, + "id": 53983, "nodeType": "ArrayTypeName", - "src": "7997:9:134", + "src": "7997:9:136", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -8713,45 +8712,45 @@ "visibility": "internal" } ], - "src": "7860:167:134" + "src": "7860:167:136" }, "returnParameters": { - "id": 53914, + "id": 53991, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 53911, + "id": 53988, "mutability": "mutable", "name": "order", - "nameLocation": "8073:5:134", + "nameLocation": "8073:5:136", "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "8051:27:134", + "scope": 54123, + "src": "8051:27:136", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 53910, + "id": 53987, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 53909, + "id": 53986, "name": "GPv2Order.Data", "nameLocations": [ - "8051:9:134", - "8061:4:134" + "8051:9:136", + "8061:4:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "8051:14:134" + "referencedDeclaration": 14334, + "src": "8051:14:136" }, - "referencedDeclaration": 17121, - "src": "8051:14:134", + "referencedDeclaration": 14334, + "src": "8051:14:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, @@ -8759,13 +8758,13 @@ }, { "constant": false, - "id": 53913, + "id": 53990, "mutability": "mutable", "name": "signature", - "nameLocation": "8093:9:134", + "nameLocation": "8093:9:136", "nodeType": "VariableDeclaration", - "scope": 54046, - "src": "8080:22:134", + "scope": 54123, + "src": "8080:22:136", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8773,10 +8772,10 @@ "typeString": "bytes" }, "typeName": { - "id": 53912, + "id": 53989, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8080:5:134", + "src": "8080:5:136", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8785,22 +8784,22 @@ "visibility": "internal" } ], - "src": "8050:53:134" + "src": "8050:53:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 54063, + "id": 54140, "nodeType": "FunctionDefinition", - "src": "10165:153:134", + "src": "10165:153:136", "nodes": [], "body": { - "id": 54062, + "id": 54139, "nodeType": "Block", - "src": "10265:53:134", + "src": "10265:53:136", "nodes": [], "statements": [ { @@ -8809,14 +8808,14 @@ { "arguments": [ { - "id": 54058, + "id": 54135, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54050, - "src": "10303:6:134", + "referencedDeclaration": 54127, + "src": "10303:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" } } @@ -8824,37 +8823,37 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" } ], "expression": { - "id": 54056, + "id": 54133, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "10292:3:134", + "src": "10292:3:136", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 54057, + "id": 54134, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "10296:6:134", + "memberLocation": "10296:6:136", "memberName": "encode", "nodeType": "MemberAccess", - "src": "10292:10:134", + "src": "10292:10:136", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 54059, + "id": 54136, "isConstant": false, "isLValue": false, "isPure": false, @@ -8863,7 +8862,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10292:18:134", + "src": "10292:18:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -8878,18 +8877,18 @@ "typeString": "bytes memory" } ], - "id": 54055, + "id": 54132, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "10282:9:134", + "src": "10282:9:136", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 54060, + "id": 54137, "isConstant": false, "isLValue": false, "isPure": false, @@ -8898,24 +8897,24 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10282:29:134", + "src": "10282:29:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 54054, - "id": 54061, + "functionReturnParameters": 54131, + "id": 54138, "nodeType": "Return", - "src": "10275:36:134" + "src": "10275:36:136" } ] }, "documentation": { - "id": 54047, + "id": 54124, "nodeType": "StructuredDocumentation", - "src": "9974:186:134", + "src": "9974:186:136", "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", @@ -8923,65 +8922,65 @@ "kind": "function", "modifiers": [], "name": "hash", - "nameLocation": "10174:4:134", + "nameLocation": "10174:4:136", "parameters": { - "id": 54051, + "id": 54128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54050, + "id": 54127, "mutability": "mutable", "name": "params", - "nameLocation": "10227:6:134", + "nameLocation": "10227:6:136", "nodeType": "VariableDeclaration", - "scope": 54063, - "src": "10179:54:134", + "scope": 54140, + "src": "10179:54:136", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 54049, + "id": 54126, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54048, + "id": 54125, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "10179:17:134", - "10197:22:134" + "10179:17:136", + "10197:22:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "10179:40:134" + "referencedDeclaration": 54512, + "src": "10179:40:136" }, - "referencedDeclaration": 54415, - "src": "10179:40:134", + "referencedDeclaration": 54512, + "src": "10179:40:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, "visibility": "internal" } ], - "src": "10178:56:134" + "src": "10178:56:136" }, "returnParameters": { - "id": 54054, + "id": 54131, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54053, + "id": 54130, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54063, - "src": "10256:7:134", + "scope": 54140, + "src": "10256:7:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8989,10 +8988,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54052, + "id": 54129, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10256:7:134", + "src": "10256:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9001,22 +9000,22 @@ "visibility": "internal" } ], - "src": "10255:9:134" + "src": "10255:9:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { - "id": 54129, + "id": 54206, "nodeType": "FunctionDefinition", - "src": "10702:721:134", + "src": "10702:721:136", "nodes": [], "body": { - "id": 54128, + "id": 54205, "nodeType": "Block", - "src": "10876:547:134", + "src": "10876:547:136", "nodes": [], "statements": [ { @@ -9025,33 +9024,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 54080, + "id": 54157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 54077, + "id": 54154, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54072, - "src": "10890:5:134", + "referencedDeclaration": 54149, + "src": "10890:5:136", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 54078, + "id": 54155, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10896:6:134", + "memberLocation": "10896:6:136", "memberName": "length", "nodeType": "MemberAccess", - "src": "10890:12:134", + "src": "10890:12:136", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9061,45 +9060,45 @@ "operator": "!=", "rightExpression": { "hexValue": "30", - "id": 54079, + "id": 54156, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10906:1:134", + "src": "10906:1:136", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "10890:17:134", + "src": "10890:17:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 54126, + "id": 54203, "nodeType": "Block", - "src": "11220:197:134", + "src": "11220:197:136", "statements": [ { "expression": { - "id": 54113, + "id": 54190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 54109, + "id": 54186, "name": "ctx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54075, - "src": "11282:3:134", + "referencedDeclaration": 54152, + "src": "11282:3:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9110,14 +9109,14 @@ "rightHandSide": { "arguments": [ { - "id": 54111, + "id": 54188, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54069, - "src": "11293:6:134", + "referencedDeclaration": 54146, + "src": "11293:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" } } @@ -9125,22 +9124,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" } ], - "id": 54110, + "id": 54187, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54063, - "src": "11288:4:134", + "referencedDeclaration": 54140, + "src": "11288:4:136", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54512_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (struct IConditionalOrder.ConditionalOrderParams memory) pure returns (bytes32)" } }, - "id": 54112, + "id": 54189, "isConstant": false, "isLValue": false, "isPure": false, @@ -9149,26 +9148,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11288:12:134", + "src": "11288:12:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "11282:18:134", + "src": "11282:18:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 54114, + "id": 54191, "nodeType": "ExpressionStatement", - "src": "11282:18:134" + "src": "11282:18:136" }, { "condition": { - "id": 54120, + "id": 54197, "isConstant": false, "isLValue": false, "isPure": false, @@ -9176,29 +9175,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "11318:25:134", + "src": "11318:25:136", "subExpression": { "baseExpression": { "baseExpression": { - "id": 54115, + "id": 54192, "name": "singleOrders", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53576, - "src": "11319:12:134", + "referencedDeclaration": 53653, + "src": "11319:12:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_bool_$_$", "typeString": "mapping(address => mapping(bytes32 => bool))" } }, - "id": 54117, + "id": 54194, "indexExpression": { - "id": 54116, + "id": 54193, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54066, - "src": "11332:5:134", + "referencedDeclaration": 54143, + "src": "11332:5:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9209,20 +9208,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11319:19:134", + "src": "11319:19:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 54119, + "id": 54196, "indexExpression": { - "id": 54118, + "id": 54195, "name": "ctx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54075, - "src": "11339:3:134", + "referencedDeclaration": 54152, + "src": "11339:3:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9233,7 +9232,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11319:24:134", + "src": "11319:24:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9244,31 +9243,31 @@ "typeString": "bool" } }, - "id": 54125, + "id": 54202, "nodeType": "IfStatement", - "src": "11314:93:134", + "src": "11314:93:136", "trueBody": { - "id": 54124, + "id": 54201, "nodeType": "Block", - "src": "11345:62:134", + "src": "11345:62:136", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 54121, + "id": 54198, "name": "SingleOrderNotAuthed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53517, - "src": "11370:20:134", + "referencedDeclaration": 53594, + "src": "11370:20:136", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 54122, + "id": 54199, "isConstant": false, "isLValue": false, "isPure": false, @@ -9277,44 +9276,44 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11370:22:134", + "src": "11370:22:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 54123, + "id": 54200, "nodeType": "RevertStatement", - "src": "11363:29:134" + "src": "11363:29:136" } ] } } ] }, - "id": 54127, + "id": 54204, "nodeType": "IfStatement", - "src": "10886:531:134", + "src": "10886:531:136", "trueBody": { - "id": 54108, + "id": 54185, "nodeType": "Block", - "src": "10909:305:134", + "src": "10909:305:136", "statements": [ { "assignments": [ - 54083 + 54160 ], "declarations": [ { "constant": false, - "id": 54083, + "id": 54160, "mutability": "mutable", "name": "leaf", - "nameLocation": "10994:4:134", + "nameLocation": "10994:4:136", "nodeType": "VariableDeclaration", - "scope": 54108, - "src": "10986:12:134", + "scope": 54185, + "src": "10986:12:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9322,10 +9321,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54082, + "id": 54159, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10986:7:134", + "src": "10986:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9335,7 +9334,7 @@ } ], "documentation": "@dev Computing proof using leaf double hashing", - "id": 54093, + "id": 54170, "initialValue": { "arguments": [ { @@ -9343,14 +9342,14 @@ { "arguments": [ { - "id": 54089, + "id": 54166, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54069, - "src": "11029:6:134", + "referencedDeclaration": 54146, + "src": "11029:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" } } @@ -9358,22 +9357,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" } ], - "id": 54088, + "id": 54165, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54063, - "src": "11024:4:134", + "referencedDeclaration": 54140, + "src": "11024:4:136", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54415_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_pure$_t_struct$_ConditionalOrderParams_$54512_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (struct IConditionalOrder.ConditionalOrderParams memory) pure returns (bytes32)" } }, - "id": 54090, + "id": 54167, "isConstant": false, "isLValue": false, "isPure": false, @@ -9382,7 +9381,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11024:12:134", + "src": "11024:12:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -9398,40 +9397,40 @@ } ], "expression": { - "id": 54086, + "id": 54163, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11011:5:134", + "src": "11011:5:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 54085, + "id": 54162, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11011:5:134", + "src": "11011:5:136", "typeDescriptions": {} } }, - "id": 54087, + "id": 54164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11017:6:134", + "memberLocation": "11017:6:136", "memberName": "concat", "nodeType": "MemberAccess", - "src": "11011:12:134", + "src": "11011:12:136", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 54091, + "id": 54168, "isConstant": false, "isLValue": false, "isPure": false, @@ -9440,7 +9439,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11011:26:134", + "src": "11011:26:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -9455,18 +9454,18 @@ "typeString": "bytes memory" } ], - "id": 54084, + "id": 54161, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "11001:9:134", + "src": "11001:9:136", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 54092, + "id": 54169, "isConstant": false, "isLValue": false, "isPure": false, @@ -9475,7 +9474,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11001:37:134", + "src": "11001:37:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -9483,11 +9482,11 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "10986:52:134" + "src": "10986:52:136" }, { "condition": { - "id": 54102, + "id": 54179, "isConstant": false, "isLValue": false, "isPure": false, @@ -9495,16 +9494,16 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "11100:46:134", + "src": "11100:46:136", "subExpression": { "arguments": [ { - "id": 54096, + "id": 54173, "name": "proof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54072, - "src": "11120:5:134", + "referencedDeclaration": 54149, + "src": "11120:5:136", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -9512,25 +9511,25 @@ }, { "baseExpression": { - "id": 54097, + "id": 54174, "name": "roots", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53569, - "src": "11127:5:134", + "referencedDeclaration": 53646, + "src": "11127:5:136", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$", "typeString": "mapping(address => bytes32)" } }, - "id": 54099, + "id": 54176, "indexExpression": { - "id": 54098, + "id": 54175, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54066, - "src": "11133:5:134", + "referencedDeclaration": 54143, + "src": "11133:5:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9541,19 +9540,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11127:12:134", + "src": "11127:12:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 54100, + "id": 54177, "name": "leaf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54083, - "src": "11141:4:134", + "referencedDeclaration": 54160, + "src": "11141:4:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9576,33 +9575,33 @@ } ], "expression": { - "id": 54094, + "id": 54171, "name": "MerkleProof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "11101:11:134", + "referencedDeclaration": 46395, + "src": "11101:11:136", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_MerkleProof_$1245_$", + "typeIdentifier": "t_type$_t_contract$_MerkleProof_$46395_$", "typeString": "type(library MerkleProof)" } }, - "id": 54095, + "id": 54172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11113:6:134", + "memberLocation": "11113:6:136", "memberName": "verify", "nodeType": "MemberAccess", - "referencedDeclaration": 741, - "src": "11101:18:134", + "referencedDeclaration": 45891, + "src": "11101:18:136", "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, + "id": 54178, "isConstant": false, "isLValue": false, "isPure": false, @@ -9611,7 +9610,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11101:45:134", + "src": "11101:45:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9623,31 +9622,31 @@ "typeString": "bool" } }, - "id": 54107, + "id": 54184, "nodeType": "IfStatement", - "src": "11096:108:134", + "src": "11096:108:136", "trueBody": { - "id": 54106, + "id": 54183, "nodeType": "Block", - "src": "11148:56:134", + "src": "11148:56:136", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 54103, + "id": 54180, "name": "ProofNotAuthed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53515, - "src": "11173:14:134", + "referencedDeclaration": 53592, + "src": "11173:14:136", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 54104, + "id": 54181, "isConstant": false, "isLValue": false, "isPure": false, @@ -9656,16 +9655,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11173:16:134", + "src": "11173:16:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 54105, + "id": 54182, "nodeType": "RevertStatement", - "src": "11166:23:134" + "src": "11166:23:136" } ] } @@ -9676,29 +9675,29 @@ ] }, "documentation": { - "id": 54064, + "id": 54141, "nodeType": "StructuredDocumentation", - "src": "10355:342:134", + "src": "10355:342:136", "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", + "nameLocation": "10711:5:136", "parameters": { - "id": 54073, + "id": 54150, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54066, + "id": 54143, "mutability": "mutable", "name": "owner", - "nameLocation": "10725:5:134", + "nameLocation": "10725:5:136", "nodeType": "VariableDeclaration", - "scope": 54129, - "src": "10717:13:134", + "scope": 54206, + "src": "10717:13:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9706,10 +9705,10 @@ "typeString": "address" }, "typeName": { - "id": 54065, + "id": 54142, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10717:7:134", + "src": "10717:7:136", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9720,37 +9719,37 @@ }, { "constant": false, - "id": 54069, + "id": 54146, "mutability": "mutable", "name": "params", - "nameLocation": "10780:6:134", + "nameLocation": "10780:6:136", "nodeType": "VariableDeclaration", - "scope": 54129, - "src": "10732:54:134", + "scope": 54206, + "src": "10732:54:136", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 54068, + "id": 54145, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54067, + "id": 54144, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "10732:17:134", - "10750:22:134" + "10732:17:136", + "10750:22:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "10732:40:134" + "referencedDeclaration": 54512, + "src": "10732:40:136" }, - "referencedDeclaration": 54415, - "src": "10732:40:134", + "referencedDeclaration": 54512, + "src": "10732:40:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, @@ -9758,13 +9757,13 @@ }, { "constant": false, - "id": 54072, + "id": 54149, "mutability": "mutable", "name": "proof", - "nameLocation": "10805:5:134", + "nameLocation": "10805:5:136", "nodeType": "VariableDeclaration", - "scope": 54129, - "src": "10788:22:134", + "scope": 54206, + "src": "10788:22:136", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -9773,18 +9772,18 @@ }, "typeName": { "baseType": { - "id": 54070, + "id": 54147, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10788:7:134", + "src": "10788:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 54071, + "id": 54148, "nodeType": "ArrayTypeName", - "src": "10788:9:134", + "src": "10788:9:136", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -9793,21 +9792,21 @@ "visibility": "internal" } ], - "src": "10716:95:134" + "src": "10716:95:136" }, "returnParameters": { - "id": 54076, + "id": 54153, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54075, + "id": 54152, "mutability": "mutable", "name": "ctx", - "nameLocation": "10867:3:134", + "nameLocation": "10867:3:136", "nodeType": "VariableDeclaration", - "scope": 54129, - "src": "10859:11:134", + "scope": 54206, + "src": "10859:11:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9815,10 +9814,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54074, + "id": 54151, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10859:7:134", + "src": "10859:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9827,89 +9826,89 @@ "visibility": "internal" } ], - "src": "10858:13:134" + "src": "10858:13:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { - "id": 54176, + "id": 54253, "nodeType": "FunctionDefinition", - "src": "11830:433:134", + "src": "11830:433:136", "nodes": [], "body": { - "id": 54175, + "id": 54252, "nodeType": "Block", - "src": "12067:196:134", + "src": "12067:196:136", "nodes": [], "statements": [ { "assignments": [ - 54149 + 54226 ], "declarations": [ { "constant": false, - "id": 54149, + "id": 54226, "mutability": "mutable", "name": "guard", - "nameLocation": "12088:5:134", + "nameLocation": "12088:5:136", "nodeType": "VariableDeclaration", - "scope": 54175, - "src": "12077:16:134", + "scope": 54252, + "src": "12077:16:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" }, "typeName": { - "id": 54148, + "id": 54225, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54147, + "id": 54224, "name": "ISwapGuard", "nameLocations": [ - "12077:10:134" + "12077:10:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54496, - "src": "12077:10:134" + "referencedDeclaration": 54599, + "src": "12077:10:136" }, - "referencedDeclaration": 54496, - "src": "12077:10:134", + "referencedDeclaration": 54599, + "src": "12077:10:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } }, "visibility": "internal" } ], - "id": 54153, + "id": 54230, "initialValue": { "baseExpression": { - "id": 54150, + "id": 54227, "name": "swapGuards", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 53581, - "src": "12096:10:134", + "referencedDeclaration": 53658, + "src": "12096:10:136", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54496_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ISwapGuard_$54599_$", "typeString": "mapping(address => contract ISwapGuard)" } }, - "id": 54152, + "id": 54229, "indexExpression": { - "id": 54151, + "id": 54228, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54132, - "src": "12107:5:134", + "referencedDeclaration": 54209, + "src": "12107:5:136", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9920,14 +9919,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "12096:17:134", + "src": "12096:17:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } }, "nodeType": "VariableDeclarationStatement", - "src": "12077:36:134" + "src": "12077:36:136" }, { "condition": { @@ -9935,7 +9934,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 54162, + "id": 54239, "isConstant": false, "isLValue": false, "isPure": false, @@ -9943,14 +9942,14 @@ "leftExpression": { "arguments": [ { - "id": 54156, + "id": 54233, "name": "guard", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54149, - "src": "12135:5:134", + "referencedDeclaration": 54226, + "src": "12135:5:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } } @@ -9958,30 +9957,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } ], - "id": 54155, + "id": 54232, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12127:7:134", + "src": "12127:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 54154, + "id": 54231, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12127:7:134", + "src": "12127:7:136", "typeDescriptions": {} } }, - "id": 54157, + "id": 54234, "isConstant": false, "isLValue": false, "isPure": false, @@ -9990,7 +9989,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12127:14:134", + "src": "12127:14:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10003,14 +10002,14 @@ "arguments": [ { "hexValue": "30", - "id": 54160, + "id": 54237, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12153:1:134", + "src": "12153:1:136", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -10025,26 +10024,26 @@ "typeString": "int_const 0" } ], - "id": 54159, + "id": 54236, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12145:7:134", + "src": "12145:7:136", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 54158, + "id": 54235, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12145:7:134", + "src": "12145:7:136", "typeDescriptions": {} } }, - "id": 54161, + "id": 54238, "isConstant": false, "isLValue": false, "isPure": true, @@ -10053,73 +10052,73 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12145:10:134", + "src": "12145:10:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "12127:28:134", + "src": "12127:28:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 54172, + "id": 54249, "nodeType": "IfStatement", - "src": "12123:113:134", + "src": "12123:113:136", "trueBody": { - "id": 54171, + "id": 54248, "nodeType": "Block", - "src": "12157:79:134", + "src": "12157:79:136", "statements": [ { "expression": { "arguments": [ { - "id": 54165, + "id": 54242, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54142, - "src": "12191:5:134", + "referencedDeclaration": 54219, + "src": "12191:5:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, { - "id": 54166, + "id": 54243, "name": "ctx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54134, - "src": "12198:3:134", + "referencedDeclaration": 54211, + "src": "12198:3:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 54167, + "id": 54244, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54137, - "src": "12203:6:134", + "referencedDeclaration": 54214, + "src": "12203:6:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" } }, { - "id": 54168, + "id": 54245, "name": "offchainInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54139, - "src": "12211:13:134", + "referencedDeclaration": 54216, + "src": "12211:13:136", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -10129,7 +10128,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" }, { @@ -10137,7 +10136,7 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams memory" }, { @@ -10146,33 +10145,33 @@ } ], "expression": { - "id": 54163, + "id": 54240, "name": "guard", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54149, - "src": "12178:5:134", + "referencedDeclaration": 54226, + "src": "12178:5:136", "typeDescriptions": { - "typeIdentifier": "t_contract$_ISwapGuard_$54496", + "typeIdentifier": "t_contract$_ISwapGuard_$54599", "typeString": "contract ISwapGuard" } }, - "id": 54164, + "id": 54241, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "12184:6:134", + "memberLocation": "12184:6:136", "memberName": "verify", "nodeType": "MemberAccess", - "referencedDeclaration": 54495, - "src": "12178:12:134", + "referencedDeclaration": 54598, + "src": "12178:12:136", "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_$", + "typeIdentifier": "t_function_external_view$_t_struct$_Data_$14334_memory_ptr_$_t_bytes32_$_t_struct$_ConditionalOrderParams_$54512_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, + "id": 54246, "isConstant": false, "isLValue": false, "isPure": false, @@ -10181,17 +10180,17 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12178:47:134", + "src": "12178:47:136", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 54146, - "id": 54170, + "functionReturnParameters": 54223, + "id": 54247, "nodeType": "Return", - "src": "12171:54:134" + "src": "12171:54:136" } ] } @@ -10199,51 +10198,51 @@ { "expression": { "hexValue": "74727565", - "id": 54173, + "id": 54250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "12252:4:134", + "src": "12252:4:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 54146, - "id": 54174, + "functionReturnParameters": 54223, + "id": 54251, "nodeType": "Return", - "src": "12245:11:134" + "src": "12245:11:136" } ] }, "documentation": { - "id": 54130, + "id": 54207, "nodeType": "StructuredDocumentation", - "src": "11429:396:134", + "src": "11429:396:136", "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", + "nameLocation": "11839:11:136", "parameters": { - "id": 54143, + "id": 54220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54132, + "id": 54209, "mutability": "mutable", "name": "owner", - "nameLocation": "11868:5:134", + "nameLocation": "11868:5:136", "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "11860:13:134", + "scope": 54253, + "src": "11860:13:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10251,10 +10250,10 @@ "typeString": "address" }, "typeName": { - "id": 54131, + "id": 54208, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11860:7:134", + "src": "11860:7:136", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10265,13 +10264,13 @@ }, { "constant": false, - "id": 54134, + "id": 54211, "mutability": "mutable", "name": "ctx", - "nameLocation": "11891:3:134", + "nameLocation": "11891:3:136", "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "11883:11:134", + "scope": 54253, + "src": "11883:11:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10279,10 +10278,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54133, + "id": 54210, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "11883:7:134", + "src": "11883:7:136", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10292,37 +10291,37 @@ }, { "constant": false, - "id": 54137, + "id": 54214, "mutability": "mutable", "name": "params", - "nameLocation": "11952:6:134", + "nameLocation": "11952:6:136", "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "11904:54:134", + "scope": 54253, + "src": "11904:54:136", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 54136, + "id": 54213, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54135, + "id": 54212, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "11904:17:134", - "11922:22:134" + "11904:17:136", + "11922:22:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "11904:40:134" + "referencedDeclaration": 54512, + "src": "11904:40:136" }, - "referencedDeclaration": 54415, - "src": "11904:40:134", + "referencedDeclaration": 54512, + "src": "11904:40:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, @@ -10330,13 +10329,13 @@ }, { "constant": false, - "id": 54139, + "id": 54216, "mutability": "mutable", "name": "offchainInput", - "nameLocation": "11981:13:134", + "nameLocation": "11981:13:136", "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "11968:26:134", + "scope": 54253, + "src": "11968:26:136", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -10344,10 +10343,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54138, + "id": 54215, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11968:5:134", + "src": "11968:5:136", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -10357,58 +10356,58 @@ }, { "constant": false, - "id": 54142, + "id": 54219, "mutability": "mutable", "name": "order", - "nameLocation": "12026:5:134", + "nameLocation": "12026:5:136", "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "12004:27:134", + "scope": 54253, + "src": "12004:27:136", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 54141, + "id": 54218, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54140, + "id": 54217, "name": "GPv2Order.Data", "nameLocations": [ - "12004:9:134", - "12014:4:134" + "12004:9:136", + "12014:4:136" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "12004:14:134" + "referencedDeclaration": 14334, + "src": "12004:14:136" }, - "referencedDeclaration": 17121, - "src": "12004:14:134", + "referencedDeclaration": 14334, + "src": "12004:14:136", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "src": "11850:187:134" + "src": "11850:187:136" }, "returnParameters": { - "id": 54146, + "id": 54223, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54145, + "id": 54222, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54176, - "src": "12061:4:134", + "scope": 54253, + "src": "12061:4:136", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10416,10 +10415,10 @@ "typeString": "bool" }, "typeName": { - "id": 54144, + "id": 54221, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12061:4:134", + "src": "12061:4:136", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10428,9 +10427,9 @@ "visibility": "internal" } ], - "src": "12060:6:134" + "src": "12060:6:136" }, - "scope": 54177, + "scope": 54254, "stateMutability": "view", "virtual": false, "visibility": "internal" @@ -10440,48 +10439,48 @@ "baseContracts": [ { "baseName": { - "id": 53512, + "id": 53589, "name": "ISafeSignatureVerifier", "nameLocations": [ - "605:22:134" + "605:22:136" ], "nodeType": "IdentifierPath", "referencedDeclaration": 51635, - "src": "605:22:134" + "src": "605:22:136" }, - "id": 53513, + "id": 53590, "nodeType": "InheritanceSpecifier", - "src": "605:22:134" + "src": "605:22:136" } ], "canonicalName": "ComposableCoW", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 53511, + "id": 53588, "nodeType": "StructuredDocumentation", - "src": "375:203:134", + "src": "375:203:136", "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, + 54254, 51635 ], "name": "ComposableCoW", - "nameLocation": "588:13:134", - "scope": 54178, + "nameLocation": "588:13:136", + "scope": 54255, "usedErrors": [ - 53515, - 53517, - 53519, - 53521, - 53523, - 53525 + 53592, + 53594, + 53596, + 53598, + 53600, + 53602 ] } ], "license": "GPL-3.0" }, - "id": 134 + "id": 136 } \ No newline at end of file diff --git a/out/CurrentBlockTimestampFactory.sol/CurrentBlockTimestampFactory.json b/out/CurrentBlockTimestampFactory.sol/CurrentBlockTimestampFactory.json index 80ca5a4..f026554 100644 --- a/out/CurrentBlockTimestampFactory.sol/CurrentBlockTimestampFactory.json +++ b/out/CurrentBlockTimestampFactory.sol/CurrentBlockTimestampFactory.json @@ -21,19 +21,19 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b5060f48061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063b6576bdf14602d575b600080fd5b603f60383660046051565b4292915050565b60405190815260200160405180910390f35b60008060208385031215606357600080fd5b823567ffffffffffffffff80821115607a57600080fd5b818501915085601f830112608d57600080fd5b813581811115609b57600080fd5b86602082850101111560ac57600080fd5b6020929092019691955090935050505056fea2646970667358221220464d449981dbd7e1071ddf7507de9c85dde3c1e3e2629445d203410eaac963b564736f6c63430008130033", - "sourceMap": "368:186:149:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b5060f48061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063b6576bdf14602d575b600080fd5b603f60383660046051565b4292915050565b60405190815260200160405180910390f35b60008060208385031215606357600080fd5b823567ffffffffffffffff80821115607a57600080fd5b818501915085601f830112608d57600080fd5b813581811115609b57600080fd5b86602082850101111560ac57600080fd5b6020929092019691955090935050505056fea26469706673582212203577047ccf018914dd98c1e6c45965a35397d533befa5a19e8cb8b702347aaaf64736f6c63430008130033", + "sourceMap": "368:186:152:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063b6576bdf14602d575b600080fd5b603f60383660046051565b4292915050565b60405190815260200160405180910390f35b60008060208385031215606357600080fd5b823567ffffffffffffffff80821115607a57600080fd5b818501915085601f830112608d57600080fd5b813581811115609b57600080fd5b86602082850101111560ac57600080fd5b6020929092019691955090935050505056fea2646970667358221220464d449981dbd7e1071ddf7507de9c85dde3c1e3e2629445d203410eaac963b564736f6c63430008130033", - "sourceMap": "368:186:149:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;429:123;;;;;;:::i;:::-;529:15;429:123;;;;;;;;756:25:166;;;744:2;729:18;429:123:149;;;;;;;14:591:166;84:6;92;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;201:9;188:23;230:18;271:2;263:6;260:14;257:34;;;287:1;284;277:12;257:34;325:6;314:9;310:22;300:32;;370:7;363:4;359:2;355:13;351:27;341:55;;392:1;389;382:12;341:55;432:2;419:16;458:2;450:6;447:14;444:34;;;474:1;471;464:12;444:34;519:7;514:2;505:6;501:2;497:15;493:24;490:37;487:57;;;540:1;537;530:12;487:57;571:2;563:11;;;;;593:6;;-1:-1:-1;14:591:166;;-1:-1:-1;;;;14:591:166:o", + "object": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063b6576bdf14602d575b600080fd5b603f60383660046051565b4292915050565b60405190815260200160405180910390f35b60008060208385031215606357600080fd5b823567ffffffffffffffff80821115607a57600080fd5b818501915085601f830112608d57600080fd5b813581811115609b57600080fd5b86602082850101111560ac57600080fd5b6020929092019691955090935050505056fea26469706673582212203577047ccf018914dd98c1e6c45965a35397d533befa5a19e8cb8b702347aaaf64736f6c63430008130033", + "sourceMap": "368:186:152:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;429:123;;;;;;:::i;:::-;529:15;429:123;;;;;;;;756:25:170;;;744:2;729:18;429:123:152;;;;;;;14:591:170;84:6;92;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;201:9;188:23;230:18;271:2;263:6;260:14;257:34;;;287:1;284;277:12;257:34;325:6;314:9;310:22;300:32;;370:7;363:4;359:2;355:13;351:27;341:55;;392:1;389;382:12;341:55;432:2;419:16;458:2;450:6;447:14;444:34;;;474:1;471;464:12;444:34;519:7;514:2;505:6;501:2;497:15;493:24;490:37;487:57;;;540:1;537;530:12;487:57;571:2;563:11;;;;;593:6;;-1:-1:-1;14:591:170;;-1:-1:-1;;;;14:591:170:o", "linkReferences": {} }, "methodIdentifiers": { "getValue(bytes)": "b6576bdf" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getValue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Designed to be used with Safe + ExtensibleFallbackHandler + ComposableCoW\",\"kind\":\"dev\",\"methods\":{},\"title\":\"CurrentBlockTimestampFactory - An on-chain value factory that returns the current block timestamp\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/value_factories/CurrentBlockTimestampFactory.sol\":\"CurrentBlockTimestampFactory\"},\"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\":{\"src/interfaces/IValueFactory.sol\":{\"keccak256\":\"0x3304ef8a0a1727258ac8278bf5426daeac37ece4653eaaff87b15143814a8122\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9934d278069dd9474065777833a81e65af227b85d350b6c1f012b812101be9de\",\"dweb:/ipfs/QmcMBdvY7wLs92FCyutDGQGtHnYryjnaykREvDNBNM8Yih\"]},\"src/value_factories/CurrentBlockTimestampFactory.sol\":{\"keccak256\":\"0x923cafbf1a55044632cb9a289e2df3d74b461808d15ab1e8e0775e9829d8473a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5e70fdf0a54f4cc29ca974301d7a4dc4c289a197084268a6767981160a0d6595\",\"dweb:/ipfs/Qmf9JWipmNgRsXrcUBBBe1AZPCKD7tW72gmLedDpmNdUs6\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getValue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Designed to be used with Safe + ExtensibleFallbackHandler + ComposableCoW\",\"kind\":\"dev\",\"methods\":{},\"title\":\"CurrentBlockTimestampFactory - An on-chain value factory that returns the current block timestamp\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/value_factories/CurrentBlockTimestampFactory.sol\":\"CurrentBlockTimestampFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"src/interfaces/IValueFactory.sol\":{\"keccak256\":\"0x3304ef8a0a1727258ac8278bf5426daeac37ece4653eaaff87b15143814a8122\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9934d278069dd9474065777833a81e65af227b85d350b6c1f012b812101be9de\",\"dweb:/ipfs/QmcMBdvY7wLs92FCyutDGQGtHnYryjnaykREvDNBNM8Yih\"]},\"src/value_factories/CurrentBlockTimestampFactory.sol\":{\"keccak256\":\"0x923cafbf1a55044632cb9a289e2df3d74b461808d15ab1e8e0775e9829d8473a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5e70fdf0a54f4cc29ca974301d7a4dc4c289a197084268a6767981160a0d6595\",\"dweb:/ipfs/Qmf9JWipmNgRsXrcUBBBe1AZPCKD7tW72gmLedDpmNdUs6\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -74,20 +74,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -123,22 +122,22 @@ }, "ast": { "absolutePath": "src/value_factories/CurrentBlockTimestampFactory.sol", - "id": 55688, + "id": 56125, "exportedSymbols": { "CurrentBlockTimestampFactory": [ - 55687 + 56124 ], "IValueFactory": [ - 54595 + 54611 ] }, "nodeType": "SourceUnit", - "src": "36:519:149", + "src": "36:519:152", "nodes": [ { - "id": 55666, + "id": 56103, "nodeType": "PragmaDirective", - "src": "36:31:149", + "src": "36:31:152", "nodes": [], "literals": [ "solidity", @@ -151,24 +150,24 @@ ] }, { - "id": 55668, + "id": 56105, "nodeType": "ImportDirective", - "src": "69:62:149", + "src": "69:62:152", "nodes": [], "absolutePath": "src/interfaces/IValueFactory.sol", "file": "../interfaces/IValueFactory.sol", "nameLocation": "-1:-1:-1", - "scope": 55688, - "sourceUnit": 54596, + "scope": 56125, + "sourceUnit": 54612, "symbolAliases": [ { "foreign": { - "id": 55667, + "id": 56104, "name": "IValueFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54595, - "src": "77:13:149", + "referencedDeclaration": 54611, + "src": "77:13:152", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -177,19 +176,19 @@ "unitAlias": "" }, { - "id": 55687, + "id": 56124, "nodeType": "ContractDefinition", - "src": "368:186:149", + "src": "368:186:152", "nodes": [ { - "id": 55686, + "id": 56123, "nodeType": "FunctionDefinition", - "src": "429:123:149", + "src": "429:123:152", "nodes": [], "body": { - "id": 55685, + "id": 56122, "nodeType": "Block", - "src": "504:48:149", + "src": "504:48:152", "nodes": [], "statements": [ { @@ -197,26 +196,26 @@ "arguments": [ { "expression": { - "id": 55681, + "id": 56118, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "529:5:149", + "src": "529:5:152", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 55682, + "id": 56119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "535:9:149", + "memberLocation": "535:9:152", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "529:15:149", + "src": "529:15:152", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -230,26 +229,26 @@ "typeString": "uint256" } ], - "id": 55680, + "id": 56117, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "521:7:149", + "src": "521:7:152", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 55679, + "id": 56116, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "521:7:149", + "src": "521:7:152", "typeDescriptions": {} } }, - "id": 55683, + "id": 56120, "isConstant": false, "isLValue": false, "isPure": false, @@ -258,48 +257,48 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "521:24:149", + "src": "521:24:152", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 55678, - "id": 55684, + "functionReturnParameters": 56115, + "id": 56121, "nodeType": "Return", - "src": "514:31:149" + "src": "514:31:152" } ] }, "baseFunctions": [ - 54594 + 54610 ], "functionSelector": "b6576bdf", "implemented": true, "kind": "function", "modifiers": [], "name": "getValue", - "nameLocation": "438:8:149", + "nameLocation": "438:8:152", "overrides": { - "id": 55675, + "id": 56112, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "477:8:149" + "src": "477:8:152" }, "parameters": { - "id": 55674, + "id": 56111, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55673, + "id": 56110, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 55686, - "src": "447:14:149", + "scope": 56123, + "src": "447:14:152", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -307,10 +306,10 @@ "typeString": "bytes" }, "typeName": { - "id": 55672, + "id": 56109, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "447:5:149", + "src": "447:5:152", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -319,21 +318,21 @@ "visibility": "internal" } ], - "src": "446:16:149" + "src": "446:16:152" }, "returnParameters": { - "id": 55678, + "id": 56115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55677, + "id": 56114, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 55686, - "src": "495:7:149", + "scope": 56123, + "src": "495:7:152", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -341,10 +340,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 55676, + "id": 56113, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "495:7:149", + "src": "495:7:152", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -353,9 +352,9 @@ "visibility": "internal" } ], - "src": "494:9:149" + "src": "494:9:152" }, - "scope": 55687, + "scope": 56124, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -365,41 +364,41 @@ "baseContracts": [ { "baseName": { - "id": 55670, + "id": 56107, "name": "IValueFactory", "nameLocations": [ - "409:13:149" + "409:13:152" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54595, - "src": "409:13:149" + "referencedDeclaration": 54611, + "src": "409:13:152" }, - "id": 55671, + "id": 56108, "nodeType": "InheritanceSpecifier", - "src": "409:13:149" + "src": "409:13:152" } ], "canonicalName": "CurrentBlockTimestampFactory", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 55669, + "id": 56106, "nodeType": "StructuredDocumentation", - "src": "133:234:149", + "src": "133:234:152", "text": " @title CurrentBlockTimestampFactory - An on-chain value factory that returns the current block timestamp\n @dev Designed to be used with Safe + ExtensibleFallbackHandler + ComposableCoW\n @author mfw78 " }, "fullyImplemented": true, "linearizedBaseContracts": [ - 55687, - 54595 + 56124, + 54611 ], "name": "CurrentBlockTimestampFactory", - "nameLocation": "377:28:149", - "scope": 55688, + "nameLocation": "377:28:152", + "scope": 56125, "usedErrors": [] } ], "license": "GPL-3.0" }, - "id": 149 + "id": 152 } \ No newline at end of file diff --git a/out/ExtensibleFallbackHandler.sol/ExtensibleFallbackHandler.json b/out/ExtensibleFallbackHandler.sol/ExtensibleFallbackHandler.json index efaf540..5b9e53f 100644 --- a/out/ExtensibleFallbackHandler.sol/ExtensibleFallbackHandler.json +++ b/out/ExtensibleFallbackHandler.sol/ExtensibleFallbackHandler.json @@ -511,13 +511,13 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b506124cb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806351cad5ee1161008c5780637f73528b116100665780637f73528b14610514578063b435a13b14610527578063bc197c8114610555578063f23a6e6114610590576100df565b806351cad5ee1461048857806361f5401b146104ee57806364f95acc14610501576100df565b80631626ba7e116100bd5780631626ba7e1461044d578063327b533c146104605780633365582c14610475576100df565b806301ffc9a7146103865780630a3fe054146103ae578063150b7a02146103e4575b60003660606018821015610154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c6964206d6574686f642073656c6563746f7200000000000000000060448201526064015b60405180910390fd5b6000806000806101626105c9565b9296509094509250905073ffffffffffffffffffffffffffffffffffffffff81166101e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d6574686f642068616e646c6572206e6f742073657400000000000000000000604482015260640161014b565b81156102b45773ffffffffffffffffffffffffffffffffffffffff81166325d6803f8585600080803661021d601482611bc3565b9261022a93929190611bd6565b6040518663ffffffff1660e01b815260040161024a959493929190611c00565b600060405180830381865afa158015610267573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526102ad9190810190611d67565b9450610377565b73ffffffffffffffffffffffffffffffffffffffff81166325d6803f858560008080366102e2601482611bc3565b926102ef93929190611bd6565b6040518663ffffffff1660e01b815260040161030f959493929190611c00565b6000604051808303816000875af115801561032e573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526103749190810190611d67565b94505b50505050915050805190602001f35b610399610394366004611e14565b610641565b60405190151581526020015b60405180910390f35b6103d66103bc366004611e53565b600060208181529281526040808220909352908152205481565b6040519081526020016103a5565b61041c6103f2366004611ed5565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016103a5565b61041c61045b366004611f48565b610730565b61047361046e366004611fd9565b610926565b005b610473610483366004612021565b610b11565b6104c9610496366004612046565b600160209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103a5565b6104736104fc366004611fd9565b610dc0565b61047361050f366004612072565b610f9c565b610473610522366004612090565b611038565b610399610535366004611e53565b600260209081526000928352604080842090915290825290205460ff1681565b61041c6105633660046120c3565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b61041c61059e366004612182565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b6000806000806105d7611312565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008435168452909152902054929791965060f883901c1595509190911692509050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806106d457507fffffffff0000000000000000000000000000000000000000000000000000000082167f98c8e09700000000000000000000000000000000000000000000000000000000145b806106e357506106e382611323565b8061072a57503360009081526002602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290205460ff165b92915050565b600080600061073d611312565b9092509050600484106108d9577fffffffff000000000000000000000000000000000000000000000000000000008535167f5fd7e97d000000000000000000000000000000000000000000000000000000008114801561079e575060448510155b156108d7576000806107b460446004898b611bd6565b8101906107c191906121fe565b73ffffffffffffffffffffffffffffffffffffffff80881660009081526001602090815260408083208684529091529020549294509092501680156108d3576000806108108a6004818e611bd6565b81019061081d9190612271565b9350935050508b61082f8686856114eb565b80519060200120036108d0578273ffffffffffffffffffffffffffffffffffffffff166353f00b1489898f898988886040518863ffffffff1660e01b81526004016108809796959493929190612332565b602060405180830381865afa15801561089d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c1919061239d565b9850505050505050505061091f565b50505b5050505b505b61091a828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061159b92505050565b925050505b9392505050565b3361092f611850565b73ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b60006109b6611850565b90506000805b83811015610a70576000806000610a2d8888868181106109de576109de6123ba565b9050602002013560f881901c15917fffffffffffffffffffffff000000000000000000000000000000000000000000600883901b169173ffffffffffffffffffffffffffffffffffffffff1690565b925092509250610a478683610a4286856118e8565b61193b565b8315610a565793811893610a5a565b8194505b5050508080610a68906123e9565b9150506109bc565b507fffffffff0000000000000000000000000000000000000000000000000000000081811690861614610aff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e74657266616365206964206d69736d617463680000000000000000000000604482015260640161014b565b610b0a856001611038565b5050505050565b33610b1a611850565b73ffffffffffffffffffffffffffffffffffffffff1614610b97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b6000610ba1611850565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600160209081526040808320888452909152902054919250908116908316158015610bfe575073ffffffffffffffffffffffffffffffffffffffff811615155b15610c905773ffffffffffffffffffffffffffffffffffffffff8216600081815260016020908152604080832088845282529182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590518681527ff1984d1a49cc75dcbf01cd175870cb7eb9a4fd87b538a87007e4dbb0399b61a991015b60405180910390a2610dba565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600160209081526040808320888452909152902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168583161790558116610d40576040805185815273ffffffffffffffffffffffffffffffffffffffff85811660208301528416917fae938181ed4437a46f12ead84e69947e6d84a1113a49d9c0075d8d35c6ce273c9101610c83565b8173ffffffffffffffffffffffffffffffffffffffff167f06341ac2f62eb79165de8c8b54ab89a8825b12746c2b98e01dff1007837d2ba8858386604051610db19392919092835273ffffffffffffffffffffffffffffffffffffffff918216602084015216604082015260600190565b60405180910390a25b50505050565b33610dc9611850565b73ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b6000610e50611850565b90506000805b83811015610f0257610e9083868684818110610e7457610e746123ba565b9050602002016020810190610e899190611e14565b600061193b565b8015610ec657848482818110610ea857610ea86123ba565b9050602002016020810190610ebd9190611e14565b82189150610ef0565b848482818110610ed857610ed86123ba565b9050602002016020810190610eed9190611e14565b91505b80610efa816123e9565b915050610e56565b507fffffffff0000000000000000000000000000000000000000000000000000000081811690861614610f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e74657266616365206964206d69736d617463680000000000000000000000604482015260640161014b565b610b0a856000611038565b33610fa5611850565b73ffffffffffffffffffffffffffffffffffffffff1614611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b61103461102d611850565b838361193b565b5050565b33611041611850565b73ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b337fffffffff00000000000000000000000000000000000000000000000000000000838116900361114b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420696e74657266616365206964000000000000000000000000604482015260640161014b565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008716845290915290205460ff168280156111ac575080155b1561125b5773ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000089168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055519182527f3d5024c13f12fa602dbf52b1979058940c224ebf170c83a4e358725ae50db36d9101610c83565b821580156112665750805b15610dba5773ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000089168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527ff159d834f487747c1b3f17e2107743e42e6eecff444d894e511c18943072b29f9101610db1565b33600061131d611850565b90509091565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1626ba7e0000000000000000000000000000000000000000000000000000000014806113b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f62af8dc200000000000000000000000000000000000000000000000000000000145b8061140257507fffffffff0000000000000000000000000000000000000000000000000000000082167f9937293000000000000000000000000000000000000000000000000000000000145b8061144e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f64f95acc00000000000000000000000000000000000000000000000000000000145b8061149a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a0200000000000000000000000000000000000000000000000000000000145b8061072a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e0000000000000000000000000000000000000000000000000000000001492915050565b6060601960f81b600160f81b85858560405160200161150b929190612421565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529082905280516020918201207fff00000000000000000000000000000000000000000000000000000000000000958616918301919091529290931660218401526022830152604282015260620160405160208183030381529060405290509392505050565b60008061168d8573ffffffffffffffffffffffffffffffffffffffff1663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116109190612447565b60408051602081018890527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca9101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012090830152016040516020818303038152906040526114eb565b8051602082012084519192509060000361179e576040517f5ae6bd370000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff871690635ae6bd3790602401602060405180830381865afa15801561170c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117309190612447565b600003611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f48617368206e6f7420617070726f766564000000000000000000000000000000604482015260640161014b565b611825565b6040517f934f3a1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063934f3a11906117f490849086908990600401612460565b60006040518083038186803b15801561180c57600080fd5b505afa158015611820573d6000803e3d6000fd5b505050505b507f1626ba7e0000000000000000000000000000000000000000000000000000000095945050505050565b600060143610156118bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c69642063616c6c64617461206c656e677468000000000000000000604482015260640161014b565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90565b600082611915577f0100000000000000000000000000000000000000000000000000000000000000611918565b60005b8273ffffffffffffffffffffffffffffffffffffffff161760001b905092915050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152602081815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168452909152902054818316918116821580156119b6575073ffffffffffffffffffffffffffffffffffffffff811615155b15611a465773ffffffffffffffffffffffffffffffffffffffff86166000818152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008a1680855290835281842093909355519182527fdba980ab8ee19d95f57ee25cf5a9a7f3d7f950dc6075d5e204fbaaf37e5260aa91015b60405180910390a2611b8c565b73ffffffffffffffffffffffffffffffffffffffff8087166000908152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008a16845290915290208590558116611b1057604080517fffffffff00000000000000000000000000000000000000000000000000000000871681526020810186905273ffffffffffffffffffffffffffffffffffffffff8816917f16072a299c25042299e9bb90f6a7b2ccaa8b8fbbceeaa0512f323de45f9d59eb9101611a39565b604080517fffffffff00000000000000000000000000000000000000000000000000000000871681526020810184905290810185905273ffffffffffffffffffffffffffffffffffffffff8716907fe6e8ad7e5547dc860775f9f0638e195a4751a4cfbb7fd2ab60a52eb6c07082ec9060600160405180910390a25b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561072a5761072a611b94565b60008085851115611be657600080fd5b83861115611bf357600080fd5b5050820193919092039150565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011683010190509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611cf557611cf5611c7f565b604052919050565b600067ffffffffffffffff821115611d1757611d17611c7f565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611d5e578181015183820152602001611d46565b50506000910152565b600060208284031215611d7957600080fd5b815167ffffffffffffffff811115611d9057600080fd5b8201601f81018413611da157600080fd5b8051611db4611daf82611cfd565b611cae565b818152856020838501011115611dc957600080fd5b611dda826020830160208601611d43565b95945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611e1157600080fd5b50565b600060208284031215611e2657600080fd5b813561091f81611de3565b73ffffffffffffffffffffffffffffffffffffffff81168114611e1157600080fd5b60008060408385031215611e6657600080fd5b8235611e7181611e31565b91506020830135611e8181611de3565b809150509250929050565b60008083601f840112611e9e57600080fd5b50813567ffffffffffffffff811115611eb657600080fd5b602083019150836020828501011115611ece57600080fd5b9250929050565b600080600080600060808688031215611eed57600080fd5b8535611ef881611e31565b94506020860135611f0881611e31565b935060408601359250606086013567ffffffffffffffff811115611f2b57600080fd5b611f3788828901611e8c565b969995985093965092949392505050565b600080600060408486031215611f5d57600080fd5b83359250602084013567ffffffffffffffff811115611f7b57600080fd5b611f8786828701611e8c565b9497909650939450505050565b60008083601f840112611fa657600080fd5b50813567ffffffffffffffff811115611fbe57600080fd5b6020830191508360208260051b8501011115611ece57600080fd5b600080600060408486031215611fee57600080fd5b8335611ff981611de3565b9250602084013567ffffffffffffffff81111561201557600080fd5b611f8786828701611f94565b6000806040838503121561203457600080fd5b823591506020830135611e8181611e31565b6000806040838503121561205957600080fd5b823561206481611e31565b946020939093013593505050565b6000806040838503121561208557600080fd5b823561206481611de3565b600080604083850312156120a357600080fd5b82356120ae81611de3565b915060208301358015158114611e8157600080fd5b60008060008060008060008060a0898b0312156120df57600080fd5b88356120ea81611e31565b975060208901356120fa81611e31565b9650604089013567ffffffffffffffff8082111561211757600080fd5b6121238c838d01611f94565b909850965060608b013591508082111561213c57600080fd5b6121488c838d01611f94565b909650945060808b013591508082111561216157600080fd5b5061216e8b828c01611e8c565b999c989b5096995094979396929594505050565b60008060008060008060a0878903121561219b57600080fd5b86356121a681611e31565b955060208701356121b681611e31565b94506040870135935060608701359250608087013567ffffffffffffffff8111156121e057600080fd5b6121ec89828a01611e8c565b979a9699509497509295939492505050565b6000806040838503121561221157600080fd5b50508035926020909101359150565b600082601f83011261223157600080fd5b813561223f611daf82611cfd565b81815284602083860101111561225457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561228757600080fd5b8435935060208501359250604085013567ffffffffffffffff808211156122ad57600080fd5b6122b988838901612220565b935060608701359150808211156122cf57600080fd5b506122dc87828801612220565b91505092959194509250565b60008151808452612300816020860160208601611d43565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff808a16835280891660208401525086604083015285606083015284608083015260e060a083015261237d60e08301856122e8565b82810360c084015261238f81856122e8565b9a9950505050505050505050565b6000602082840312156123af57600080fd5b815161091f81611de3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361241a5761241a611b94565b5060010190565b82815260008251612439816020850160208701611d43565b919091016020019392505050565b60006020828403121561245957600080fd5b5051919050565b83815260606020820152600061247960608301856122e8565b828103604084015261248b81856122e8565b969550505050505056fea2646970667358221220493b6d14b8029fe7885a865ca816f2a40f3ab729e327203eba9eeb3c35b3603064736f6c63430008130033", - "sourceMap": "429:778:109:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b506124cb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806351cad5ee1161008c5780637f73528b116100665780637f73528b14610514578063b435a13b14610527578063bc197c8114610555578063f23a6e6114610590576100df565b806351cad5ee1461048857806361f5401b146104ee57806364f95acc14610501576100df565b80631626ba7e116100bd5780631626ba7e1461044d578063327b533c146104605780633365582c14610475576100df565b806301ffc9a7146103865780630a3fe054146103ae578063150b7a02146103e4575b60003660606018821015610154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c6964206d6574686f642073656c6563746f7200000000000000000060448201526064015b60405180910390fd5b6000806000806101626105c9565b9296509094509250905073ffffffffffffffffffffffffffffffffffffffff81166101e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d6574686f642068616e646c6572206e6f742073657400000000000000000000604482015260640161014b565b81156102b45773ffffffffffffffffffffffffffffffffffffffff81166325d6803f8585600080803661021d601482611bc3565b9261022a93929190611bd6565b6040518663ffffffff1660e01b815260040161024a959493929190611c00565b600060405180830381865afa158015610267573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526102ad9190810190611d67565b9450610377565b73ffffffffffffffffffffffffffffffffffffffff81166325d6803f858560008080366102e2601482611bc3565b926102ef93929190611bd6565b6040518663ffffffff1660e01b815260040161030f959493929190611c00565b6000604051808303816000875af115801561032e573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526103749190810190611d67565b94505b50505050915050805190602001f35b610399610394366004611e14565b610641565b60405190151581526020015b60405180910390f35b6103d66103bc366004611e53565b600060208181529281526040808220909352908152205481565b6040519081526020016103a5565b61041c6103f2366004611ed5565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016103a5565b61041c61045b366004611f48565b610730565b61047361046e366004611fd9565b610926565b005b610473610483366004612021565b610b11565b6104c9610496366004612046565b600160209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103a5565b6104736104fc366004611fd9565b610dc0565b61047361050f366004612072565b610f9c565b610473610522366004612090565b611038565b610399610535366004611e53565b600260209081526000928352604080842090915290825290205460ff1681565b61041c6105633660046120c3565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b61041c61059e366004612182565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b6000806000806105d7611312565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008435168452909152902054929791965060f883901c1595509190911692509050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806106d457507fffffffff0000000000000000000000000000000000000000000000000000000082167f98c8e09700000000000000000000000000000000000000000000000000000000145b806106e357506106e382611323565b8061072a57503360009081526002602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290205460ff165b92915050565b600080600061073d611312565b9092509050600484106108d9577fffffffff000000000000000000000000000000000000000000000000000000008535167f5fd7e97d000000000000000000000000000000000000000000000000000000008114801561079e575060448510155b156108d7576000806107b460446004898b611bd6565b8101906107c191906121fe565b73ffffffffffffffffffffffffffffffffffffffff80881660009081526001602090815260408083208684529091529020549294509092501680156108d3576000806108108a6004818e611bd6565b81019061081d9190612271565b9350935050508b61082f8686856114eb565b80519060200120036108d0578273ffffffffffffffffffffffffffffffffffffffff166353f00b1489898f898988886040518863ffffffff1660e01b81526004016108809796959493929190612332565b602060405180830381865afa15801561089d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c1919061239d565b9850505050505050505061091f565b50505b5050505b505b61091a828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061159b92505050565b925050505b9392505050565b3361092f611850565b73ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b60006109b6611850565b90506000805b83811015610a70576000806000610a2d8888868181106109de576109de6123ba565b9050602002013560f881901c15917fffffffffffffffffffffff000000000000000000000000000000000000000000600883901b169173ffffffffffffffffffffffffffffffffffffffff1690565b925092509250610a478683610a4286856118e8565b61193b565b8315610a565793811893610a5a565b8194505b5050508080610a68906123e9565b9150506109bc565b507fffffffff0000000000000000000000000000000000000000000000000000000081811690861614610aff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e74657266616365206964206d69736d617463680000000000000000000000604482015260640161014b565b610b0a856001611038565b5050505050565b33610b1a611850565b73ffffffffffffffffffffffffffffffffffffffff1614610b97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b6000610ba1611850565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600160209081526040808320888452909152902054919250908116908316158015610bfe575073ffffffffffffffffffffffffffffffffffffffff811615155b15610c905773ffffffffffffffffffffffffffffffffffffffff8216600081815260016020908152604080832088845282529182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590518681527ff1984d1a49cc75dcbf01cd175870cb7eb9a4fd87b538a87007e4dbb0399b61a991015b60405180910390a2610dba565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600160209081526040808320888452909152902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168583161790558116610d40576040805185815273ffffffffffffffffffffffffffffffffffffffff85811660208301528416917fae938181ed4437a46f12ead84e69947e6d84a1113a49d9c0075d8d35c6ce273c9101610c83565b8173ffffffffffffffffffffffffffffffffffffffff167f06341ac2f62eb79165de8c8b54ab89a8825b12746c2b98e01dff1007837d2ba8858386604051610db19392919092835273ffffffffffffffffffffffffffffffffffffffff918216602084015216604082015260600190565b60405180910390a25b50505050565b33610dc9611850565b73ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b6000610e50611850565b90506000805b83811015610f0257610e9083868684818110610e7457610e746123ba565b9050602002016020810190610e899190611e14565b600061193b565b8015610ec657848482818110610ea857610ea86123ba565b9050602002016020810190610ebd9190611e14565b82189150610ef0565b848482818110610ed857610ed86123ba565b9050602002016020810190610eed9190611e14565b91505b80610efa816123e9565b915050610e56565b507fffffffff0000000000000000000000000000000000000000000000000000000081811690861614610f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e74657266616365206964206d69736d617463680000000000000000000000604482015260640161014b565b610b0a856000611038565b33610fa5611850565b73ffffffffffffffffffffffffffffffffffffffff1614611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b61103461102d611850565b838361193b565b5050565b33611041611850565b73ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b337fffffffff00000000000000000000000000000000000000000000000000000000838116900361114b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420696e74657266616365206964000000000000000000000000604482015260640161014b565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008716845290915290205460ff168280156111ac575080155b1561125b5773ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000089168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055519182527f3d5024c13f12fa602dbf52b1979058940c224ebf170c83a4e358725ae50db36d9101610c83565b821580156112665750805b15610dba5773ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000089168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527ff159d834f487747c1b3f17e2107743e42e6eecff444d894e511c18943072b29f9101610db1565b33600061131d611850565b90509091565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1626ba7e0000000000000000000000000000000000000000000000000000000014806113b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f62af8dc200000000000000000000000000000000000000000000000000000000145b8061140257507fffffffff0000000000000000000000000000000000000000000000000000000082167f9937293000000000000000000000000000000000000000000000000000000000145b8061144e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f64f95acc00000000000000000000000000000000000000000000000000000000145b8061149a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a0200000000000000000000000000000000000000000000000000000000145b8061072a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e0000000000000000000000000000000000000000000000000000000001492915050565b6060601960f81b600160f81b85858560405160200161150b929190612421565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529082905280516020918201207fff00000000000000000000000000000000000000000000000000000000000000958616918301919091529290931660218401526022830152604282015260620160405160208183030381529060405290509392505050565b60008061168d8573ffffffffffffffffffffffffffffffffffffffff1663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116109190612447565b60408051602081018890527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca9101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012090830152016040516020818303038152906040526114eb565b8051602082012084519192509060000361179e576040517f5ae6bd370000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff871690635ae6bd3790602401602060405180830381865afa15801561170c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117309190612447565b600003611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f48617368206e6f7420617070726f766564000000000000000000000000000000604482015260640161014b565b611825565b6040517f934f3a1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063934f3a11906117f490849086908990600401612460565b60006040518083038186803b15801561180c57600080fd5b505afa158015611820573d6000803e3d6000fd5b505050505b507f1626ba7e0000000000000000000000000000000000000000000000000000000095945050505050565b600060143610156118bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c69642063616c6c64617461206c656e677468000000000000000000604482015260640161014b565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90565b600082611915577f0100000000000000000000000000000000000000000000000000000000000000611918565b60005b8273ffffffffffffffffffffffffffffffffffffffff161760001b905092915050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152602081815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168452909152902054818316918116821580156119b6575073ffffffffffffffffffffffffffffffffffffffff811615155b15611a465773ffffffffffffffffffffffffffffffffffffffff86166000818152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008a1680855290835281842093909355519182527fdba980ab8ee19d95f57ee25cf5a9a7f3d7f950dc6075d5e204fbaaf37e5260aa91015b60405180910390a2611b8c565b73ffffffffffffffffffffffffffffffffffffffff8087166000908152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008a16845290915290208590558116611b1057604080517fffffffff00000000000000000000000000000000000000000000000000000000871681526020810186905273ffffffffffffffffffffffffffffffffffffffff8816917f16072a299c25042299e9bb90f6a7b2ccaa8b8fbbceeaa0512f323de45f9d59eb9101611a39565b604080517fffffffff00000000000000000000000000000000000000000000000000000000871681526020810184905290810185905273ffffffffffffffffffffffffffffffffffffffff8716907fe6e8ad7e5547dc860775f9f0638e195a4751a4cfbb7fd2ab60a52eb6c07082ec9060600160405180910390a25b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561072a5761072a611b94565b60008085851115611be657600080fd5b83861115611bf357600080fd5b5050820193919092039150565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011683010190509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611cf557611cf5611c7f565b604052919050565b600067ffffffffffffffff821115611d1757611d17611c7f565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611d5e578181015183820152602001611d46565b50506000910152565b600060208284031215611d7957600080fd5b815167ffffffffffffffff811115611d9057600080fd5b8201601f81018413611da157600080fd5b8051611db4611daf82611cfd565b611cae565b818152856020838501011115611dc957600080fd5b611dda826020830160208601611d43565b95945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611e1157600080fd5b50565b600060208284031215611e2657600080fd5b813561091f81611de3565b73ffffffffffffffffffffffffffffffffffffffff81168114611e1157600080fd5b60008060408385031215611e6657600080fd5b8235611e7181611e31565b91506020830135611e8181611de3565b809150509250929050565b60008083601f840112611e9e57600080fd5b50813567ffffffffffffffff811115611eb657600080fd5b602083019150836020828501011115611ece57600080fd5b9250929050565b600080600080600060808688031215611eed57600080fd5b8535611ef881611e31565b94506020860135611f0881611e31565b935060408601359250606086013567ffffffffffffffff811115611f2b57600080fd5b611f3788828901611e8c565b969995985093965092949392505050565b600080600060408486031215611f5d57600080fd5b83359250602084013567ffffffffffffffff811115611f7b57600080fd5b611f8786828701611e8c565b9497909650939450505050565b60008083601f840112611fa657600080fd5b50813567ffffffffffffffff811115611fbe57600080fd5b6020830191508360208260051b8501011115611ece57600080fd5b600080600060408486031215611fee57600080fd5b8335611ff981611de3565b9250602084013567ffffffffffffffff81111561201557600080fd5b611f8786828701611f94565b6000806040838503121561203457600080fd5b823591506020830135611e8181611e31565b6000806040838503121561205957600080fd5b823561206481611e31565b946020939093013593505050565b6000806040838503121561208557600080fd5b823561206481611de3565b600080604083850312156120a357600080fd5b82356120ae81611de3565b915060208301358015158114611e8157600080fd5b60008060008060008060008060a0898b0312156120df57600080fd5b88356120ea81611e31565b975060208901356120fa81611e31565b9650604089013567ffffffffffffffff8082111561211757600080fd5b6121238c838d01611f94565b909850965060608b013591508082111561213c57600080fd5b6121488c838d01611f94565b909650945060808b013591508082111561216157600080fd5b5061216e8b828c01611e8c565b999c989b5096995094979396929594505050565b60008060008060008060a0878903121561219b57600080fd5b86356121a681611e31565b955060208701356121b681611e31565b94506040870135935060608701359250608087013567ffffffffffffffff8111156121e057600080fd5b6121ec89828a01611e8c565b979a9699509497509295939492505050565b6000806040838503121561221157600080fd5b50508035926020909101359150565b600082601f83011261223157600080fd5b813561223f611daf82611cfd565b81815284602083860101111561225457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561228757600080fd5b8435935060208501359250604085013567ffffffffffffffff808211156122ad57600080fd5b6122b988838901612220565b935060608701359150808211156122cf57600080fd5b506122dc87828801612220565b91505092959194509250565b60008151808452612300816020860160208601611d43565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff808a16835280891660208401525086604083015285606083015284608083015260e060a083015261237d60e08301856122e8565b82810360c084015261238f81856122e8565b9a9950505050505050505050565b6000602082840312156123af57600080fd5b815161091f81611de3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361241a5761241a611b94565b5060010190565b82815260008251612439816020850160208701611d43565b919091016020019392505050565b60006020828403121561245957600080fd5b5051919050565b83815260606020820152600061247960608301856122e8565b828103604084015261248b81856122e8565b969550505050505056fea26469706673582212203dcab8e5b5e594646da523eae9bdce497784cf041b7ab3d729e5ec6996462cf964736f6c63430008130033", + "sourceMap": "429:778:108:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100df5760003560e01c806351cad5ee1161008c5780637f73528b116100665780637f73528b14610514578063b435a13b14610527578063bc197c8114610555578063f23a6e6114610590576100df565b806351cad5ee1461048857806361f5401b146104ee57806364f95acc14610501576100df565b80631626ba7e116100bd5780631626ba7e1461044d578063327b533c146104605780633365582c14610475576100df565b806301ffc9a7146103865780630a3fe054146103ae578063150b7a02146103e4575b60003660606018821015610154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c6964206d6574686f642073656c6563746f7200000000000000000060448201526064015b60405180910390fd5b6000806000806101626105c9565b9296509094509250905073ffffffffffffffffffffffffffffffffffffffff81166101e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d6574686f642068616e646c6572206e6f742073657400000000000000000000604482015260640161014b565b81156102b45773ffffffffffffffffffffffffffffffffffffffff81166325d6803f8585600080803661021d601482611bc3565b9261022a93929190611bd6565b6040518663ffffffff1660e01b815260040161024a959493929190611c00565b600060405180830381865afa158015610267573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526102ad9190810190611d67565b9450610377565b73ffffffffffffffffffffffffffffffffffffffff81166325d6803f858560008080366102e2601482611bc3565b926102ef93929190611bd6565b6040518663ffffffff1660e01b815260040161030f959493929190611c00565b6000604051808303816000875af115801561032e573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526103749190810190611d67565b94505b50505050915050805190602001f35b610399610394366004611e14565b610641565b60405190151581526020015b60405180910390f35b6103d66103bc366004611e53565b600060208181529281526040808220909352908152205481565b6040519081526020016103a5565b61041c6103f2366004611ed5565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016103a5565b61041c61045b366004611f48565b610730565b61047361046e366004611fd9565b610926565b005b610473610483366004612021565b610b11565b6104c9610496366004612046565b600160209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103a5565b6104736104fc366004611fd9565b610dc0565b61047361050f366004612072565b610f9c565b610473610522366004612090565b611038565b610399610535366004611e53565b600260209081526000928352604080842090915290825290205460ff1681565b61041c6105633660046120c3565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b61041c61059e366004612182565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b6000806000806105d7611312565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008435168452909152902054929791965060f883901c1595509190911692509050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806106d457507fffffffff0000000000000000000000000000000000000000000000000000000082167f98c8e09700000000000000000000000000000000000000000000000000000000145b806106e357506106e382611323565b8061072a57503360009081526002602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290205460ff165b92915050565b600080600061073d611312565b9092509050600484106108d9577fffffffff000000000000000000000000000000000000000000000000000000008535167f5fd7e97d000000000000000000000000000000000000000000000000000000008114801561079e575060448510155b156108d7576000806107b460446004898b611bd6565b8101906107c191906121fe565b73ffffffffffffffffffffffffffffffffffffffff80881660009081526001602090815260408083208684529091529020549294509092501680156108d3576000806108108a6004818e611bd6565b81019061081d9190612271565b9350935050508b61082f8686856114eb565b80519060200120036108d0578273ffffffffffffffffffffffffffffffffffffffff166353f00b1489898f898988886040518863ffffffff1660e01b81526004016108809796959493929190612332565b602060405180830381865afa15801561089d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c1919061239d565b9850505050505050505061091f565b50505b5050505b505b61091a828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061159b92505050565b925050505b9392505050565b3361092f611850565b73ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b60006109b6611850565b90506000805b83811015610a70576000806000610a2d8888868181106109de576109de6123ba565b9050602002013560f881901c15917fffffffffffffffffffffff000000000000000000000000000000000000000000600883901b169173ffffffffffffffffffffffffffffffffffffffff1690565b925092509250610a478683610a4286856118e8565b61193b565b8315610a565793811893610a5a565b8194505b5050508080610a68906123e9565b9150506109bc565b507fffffffff0000000000000000000000000000000000000000000000000000000081811690861614610aff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e74657266616365206964206d69736d617463680000000000000000000000604482015260640161014b565b610b0a856001611038565b5050505050565b33610b1a611850565b73ffffffffffffffffffffffffffffffffffffffff1614610b97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b6000610ba1611850565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600160209081526040808320888452909152902054919250908116908316158015610bfe575073ffffffffffffffffffffffffffffffffffffffff811615155b15610c905773ffffffffffffffffffffffffffffffffffffffff8216600081815260016020908152604080832088845282529182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590518681527ff1984d1a49cc75dcbf01cd175870cb7eb9a4fd87b538a87007e4dbb0399b61a991015b60405180910390a2610dba565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600160209081526040808320888452909152902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168583161790558116610d40576040805185815273ffffffffffffffffffffffffffffffffffffffff85811660208301528416917fae938181ed4437a46f12ead84e69947e6d84a1113a49d9c0075d8d35c6ce273c9101610c83565b8173ffffffffffffffffffffffffffffffffffffffff167f06341ac2f62eb79165de8c8b54ab89a8825b12746c2b98e01dff1007837d2ba8858386604051610db19392919092835273ffffffffffffffffffffffffffffffffffffffff918216602084015216604082015260600190565b60405180910390a25b50505050565b33610dc9611850565b73ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b6000610e50611850565b90506000805b83811015610f0257610e9083868684818110610e7457610e746123ba565b9050602002016020810190610e899190611e14565b600061193b565b8015610ec657848482818110610ea857610ea86123ba565b9050602002016020810190610ebd9190611e14565b82189150610ef0565b848482818110610ed857610ed86123ba565b9050602002016020810190610eed9190611e14565b91505b80610efa816123e9565b915050610e56565b507fffffffff0000000000000000000000000000000000000000000000000000000081811690861614610f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e74657266616365206964206d69736d617463680000000000000000000000604482015260640161014b565b610b0a856000611038565b33610fa5611850565b73ffffffffffffffffffffffffffffffffffffffff1614611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b61103461102d611850565b838361193b565b5050565b33611041611850565b73ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b337fffffffff00000000000000000000000000000000000000000000000000000000838116900361114b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420696e74657266616365206964000000000000000000000000604482015260640161014b565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008716845290915290205460ff168280156111ac575080155b1561125b5773ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000089168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055519182527f3d5024c13f12fa602dbf52b1979058940c224ebf170c83a4e358725ae50db36d9101610c83565b821580156112665750805b15610dba5773ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000089168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527ff159d834f487747c1b3f17e2107743e42e6eecff444d894e511c18943072b29f9101610db1565b33600061131d611850565b90509091565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1626ba7e0000000000000000000000000000000000000000000000000000000014806113b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f62af8dc200000000000000000000000000000000000000000000000000000000145b8061140257507fffffffff0000000000000000000000000000000000000000000000000000000082167f9937293000000000000000000000000000000000000000000000000000000000145b8061144e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f64f95acc00000000000000000000000000000000000000000000000000000000145b8061149a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a0200000000000000000000000000000000000000000000000000000000145b8061072a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e0000000000000000000000000000000000000000000000000000000001492915050565b6060601960f81b600160f81b85858560405160200161150b929190612421565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529082905280516020918201207fff00000000000000000000000000000000000000000000000000000000000000958616918301919091529290931660218401526022830152604282015260620160405160208183030381529060405290509392505050565b60008061168d8573ffffffffffffffffffffffffffffffffffffffff1663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116109190612447565b60408051602081018890527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca9101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012090830152016040516020818303038152906040526114eb565b8051602082012084519192509060000361179e576040517f5ae6bd370000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff871690635ae6bd3790602401602060405180830381865afa15801561170c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117309190612447565b600003611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f48617368206e6f7420617070726f766564000000000000000000000000000000604482015260640161014b565b611825565b6040517f934f3a1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063934f3a11906117f490849086908990600401612460565b60006040518083038186803b15801561180c57600080fd5b505afa158015611820573d6000803e3d6000fd5b505050505b507f1626ba7e0000000000000000000000000000000000000000000000000000000095945050505050565b600060143610156118bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c69642063616c6c64617461206c656e677468000000000000000000604482015260640161014b565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90565b600082611915577f0100000000000000000000000000000000000000000000000000000000000000611918565b60005b8273ffffffffffffffffffffffffffffffffffffffff161760001b905092915050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152602081815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168452909152902054818316918116821580156119b6575073ffffffffffffffffffffffffffffffffffffffff811615155b15611a465773ffffffffffffffffffffffffffffffffffffffff86166000818152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008a1680855290835281842093909355519182527fdba980ab8ee19d95f57ee25cf5a9a7f3d7f950dc6075d5e204fbaaf37e5260aa91015b60405180910390a2611b8c565b73ffffffffffffffffffffffffffffffffffffffff8087166000908152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008a16845290915290208590558116611b1057604080517fffffffff00000000000000000000000000000000000000000000000000000000871681526020810186905273ffffffffffffffffffffffffffffffffffffffff8816917f16072a299c25042299e9bb90f6a7b2ccaa8b8fbbceeaa0512f323de45f9d59eb9101611a39565b604080517fffffffff00000000000000000000000000000000000000000000000000000000871681526020810184905290810185905273ffffffffffffffffffffffffffffffffffffffff8716907fe6e8ad7e5547dc860775f9f0638e195a4751a4cfbb7fd2ab60a52eb6c07082ec9060600160405180910390a25b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561072a5761072a611b94565b60008085851115611be657600080fd5b83861115611bf357600080fd5b5050820193919092039150565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011683010190509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611cf557611cf5611c7f565b604052919050565b600067ffffffffffffffff821115611d1757611d17611c7f565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611d5e578181015183820152602001611d46565b50506000910152565b600060208284031215611d7957600080fd5b815167ffffffffffffffff811115611d9057600080fd5b8201601f81018413611da157600080fd5b8051611db4611daf82611cfd565b611cae565b818152856020838501011115611dc957600080fd5b611dda826020830160208601611d43565b95945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611e1157600080fd5b50565b600060208284031215611e2657600080fd5b813561091f81611de3565b73ffffffffffffffffffffffffffffffffffffffff81168114611e1157600080fd5b60008060408385031215611e6657600080fd5b8235611e7181611e31565b91506020830135611e8181611de3565b809150509250929050565b60008083601f840112611e9e57600080fd5b50813567ffffffffffffffff811115611eb657600080fd5b602083019150836020828501011115611ece57600080fd5b9250929050565b600080600080600060808688031215611eed57600080fd5b8535611ef881611e31565b94506020860135611f0881611e31565b935060408601359250606086013567ffffffffffffffff811115611f2b57600080fd5b611f3788828901611e8c565b969995985093965092949392505050565b600080600060408486031215611f5d57600080fd5b83359250602084013567ffffffffffffffff811115611f7b57600080fd5b611f8786828701611e8c565b9497909650939450505050565b60008083601f840112611fa657600080fd5b50813567ffffffffffffffff811115611fbe57600080fd5b6020830191508360208260051b8501011115611ece57600080fd5b600080600060408486031215611fee57600080fd5b8335611ff981611de3565b9250602084013567ffffffffffffffff81111561201557600080fd5b611f8786828701611f94565b6000806040838503121561203457600080fd5b823591506020830135611e8181611e31565b6000806040838503121561205957600080fd5b823561206481611e31565b946020939093013593505050565b6000806040838503121561208557600080fd5b823561206481611de3565b600080604083850312156120a357600080fd5b82356120ae81611de3565b915060208301358015158114611e8157600080fd5b60008060008060008060008060a0898b0312156120df57600080fd5b88356120ea81611e31565b975060208901356120fa81611e31565b9650604089013567ffffffffffffffff8082111561211757600080fd5b6121238c838d01611f94565b909850965060608b013591508082111561213c57600080fd5b6121488c838d01611f94565b909650945060808b013591508082111561216157600080fd5b5061216e8b828c01611e8c565b999c989b5096995094979396929594505050565b60008060008060008060a0878903121561219b57600080fd5b86356121a681611e31565b955060208701356121b681611e31565b94506040870135935060608701359250608087013567ffffffffffffffff8111156121e057600080fd5b6121ec89828a01611e8c565b979a9699509497509295939492505050565b6000806040838503121561221157600080fd5b50508035926020909101359150565b600082601f83011261223157600080fd5b813561223f611daf82611cfd565b81815284602083860101111561225457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561228757600080fd5b8435935060208501359250604085013567ffffffffffffffff808211156122ad57600080fd5b6122b988838901612220565b935060608701359150808211156122cf57600080fd5b506122dc87828801612220565b91505092959194509250565b60008151808452612300816020860160208601611d43565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff808a16835280891660208401525086604083015285606083015284608083015260e060a083015261237d60e08301856122e8565b82810360c084015261238f81856122e8565b9a9950505050505050505050565b6000602082840312156123af57600080fd5b815161091f81611de3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361241a5761241a611b94565b5060010190565b82815260008251612439816020850160208701611d43565b919091016020019392505050565b60006020828403121561245957600080fd5b5051919050565b83815260606020820152600061247960608301856122e8565b828103604084015261248b81856122e8565b969550505050505056fea2646970667358221220493b6d14b8029fe7885a865ca816f2a40f3ab729e327203eba9eeb3c35b3603064736f6c63430008130033", - "sourceMap": "429:778:109:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:19:114;1108:2;1089:21;;;1081:57;;;;;;;216:2:168;1081:57:114;;;198:21:168;255:2;235:18;;;228:30;294:25;274:18;;;267:53;337:18;;1081:57:114;;;;;;;;;1149:9;1160:14;1176:13;1191:15;1210:23;:21;:23::i;:::-;1148:85;;-1:-1:-1;1148:85:114;;-1:-1:-1;1148:85:114;-1:-1:-1;1148:85:114;-1:-1:-1;1251:21:114;;;1243:56;;;;;;;568:2:168;1243:56:114;;;550:21:168;607:2;587:18;;;580:30;646:24;626:18;;;619:52;688:18;;1243:56:114;366:346:168;1243:56:114;1314:8;1310:256;;;1347:37;;;;1385:4;1391:6;1399:1;;;1402:8;1412:20;1430:2;1402:8;1412:20;:::i;:::-;1402:31;;;;;;;:::i;:::-;1347:87;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1338:96;;1310:256;;;1474:31;;;;1506:4;1512:6;1520:1;;;1523:8;1533:20;1551:2;1523:8;1533:20;:::i;:::-;1523:31;;;;;;;:::i;:::-;1474:81;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1465:90;;1310:256;1071:501;;;;1007:565;;;429:778:109;;;;;;3905:332:113;;;;;;:::i;:::-;;:::i;:::-;;;4442:14:168;;4435:22;4417:41;;4405:2;4390:18;3905:332:113;;;;;;;;1409:62:112;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;5191:25:168;;;5179:2;5164:18;1409:62:112;5045:177:168;1431:185:117;;;;;;:::i;:::-;1592:17;1431:185;;;;;;;;;;;6524:66:168;6512:79;;;6494:98;;6482:2;6467:18;1431:185:117;6350:248:168;4777:2460:116;;;;;;:::i;:::-;;:::i;2027:767:113:-;;;;;;:::i;:::-;;:::i;:::-;;3604:817:116;;;;;;:::i;:::-;;:::i;2885:91::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8938:42:168;8926:55;;;8908:74;;8896:2;8881:18;2885:91:116;8730:258:168;2981:600:113;;;;;;:::i;:::-;;:::i;811:165:114:-;;;;;;:::i;:::-;;:::i;1187:625:113:-;;;;;;:::i;:::-;;:::i;820:71::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1036:268:117;;;;;;:::i;:::-;1280:17;1036:268;;;;;;;;;;;702:195;;;;;;:::i;:::-;873:17;702:195;;;;;;;;;3458:239:112;3514:9;3525:14;3541:13;3556:15;3600:13;:11;:13::i;:::-;3663:17;;;;:11;:17;;;;;;;;;;;3681:7;;;;3663:26;;;;;;;;:17;;3583:30;;-1:-1:-1;1612:3:115;1608:14;;;1601:22;;-1:-1:-1;1647:22:115;;;;;-1:-1:-1;3458:239:112;-1:-1:-1;3458:239:112:o;3905:332:113:-;3975:4;4010:40;;;4025:25;4010:40;;:103;;-1:-1:-1;4066:47:113;;;4081:32;4066:47;4010:103;:150;;;;4129:31;4148:11;4129:18;:31::i;:::-;4010:220;;;-1:-1:-1;1614:10:110;4176:41:113;;;;:14;:41;;;;;;;;:54;;;;;;;;;;;;;4010:220;3991:239;3905:332;-1:-1:-1;;3905:332:113:o;4777:2460:116:-;4876:12;4901:9;4912:14;4930:13;:11;:13::i;:::-;4900:43;;-1:-1:-1;4900:43:116;-1:-1:-1;5082:1:116;5062:21;;5058:1998;;5233:50;5251:30;;5233:50;5415:26;5400:41;;:67;;;;-1:-1:-1;5465:2:116;5445:22;;;5400:67;5396:1650;;;6107:23;;6163:15;6175:2;6173:1;6163:9;;:15;:::i;:::-;6152:47;;;;;;;:::i;:::-;6252:21;;;;6218:31;6252:21;;;:15;:21;;;;;;;;:38;;;;;;;;;6106:93;;-1:-1:-1;6106:93:116;;-1:-1:-1;6252:38:116;6393:31;;6389:643;;6453:23;;6513:13;:9;6523:1;6513:9;;:13;:::i;:::-;6502:59;;;;;;;:::i;:::-;6448:113;;;;;;6739:5;6671:63;6696:15;6713:8;6723:10;6671:24;:63::i;:::-;6661:74;;;;;;:83;6657:357;;6893:8;:29;;;6923:4;6929:6;6937:5;6944:15;6961:8;6971:10;6983:7;6893:98;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6886:105;;;;;;;;;;;;6657:357;6426:606;;6389:643;5469:1577;;;5396:1650;5085:1971;5058:1998;7183:47;7207:4;7213:5;7220:9;;7183:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7183:23:116;;-1:-1:-1;;;7183:47:116:i;:::-;7176:54;;;;4777:2460;;;;;;:::o;2027:767:113:-;1614:10:110;1779:12:112;:10;:12::i;:::-;:26;;;1771:69;;;;;;;15533:2:168;1771:69:112;;;15515:21:168;15572:2;15552:18;;;15545:30;15611:32;15591:18;;;15584:60;15661:18;;1771:69:112;15331:354:168;1771:69:112;2162:9:113::1;2187:12;:10;:12::i;:::-;2162:39:::0;-1:-1:-1;2211:18:113::1;::::0;2239:426:::1;2259:31:::0;;::::1;2239:426;;;2312:13;2327:15:::0;2344:22:::1;2370:54;2400:20;;2421:1;2400:23;;;;;;;:::i;:::-;;;;;;;1999:3:115::0;1995:14;;;1988:22;;2081:24;;;;;;;2034:22;;;1691:430;2370:54:113::1;2311:113;;;;;;2438:75;2453:4;2459:8;2469:43;2487:8;2497:14;2469:17;:43::i;:::-;2438:14;:75::i;:::-;2531:5:::0;;2527:128:::1;;2556:23:::0;;::::1;::::0;2527:128:::1;;;2632:8;2618:22;;2527:128;2297:368;;;2292:3;;;;;:::i;:::-;;;;2239:426;;;-1:-1:-1::0;2683:27:113;;;::::1;::::0;;::::1;;2675:61;;;::::0;::::1;::::0;;16281:2:168;2675:61:113::1;::::0;::::1;16263:21:168::0;16320:2;16300:18;;;16293:30;16359:23;16339:18;;;16332:51;16400:18;;2675:61:113::1;16079:345:168::0;2675:61:113::1;2746:41;2768:12;2782:4;2746:21;:41::i;:::-;2152:642;;2027:767:::0;;;:::o;3604:817:116:-;1614:10:110;1779:12:112;:10;:12::i;:::-;:26;;;1771:69;;;;;;;15533:2:168;1771:69:112;;;15515:21:168;15572:2;15552:18;;;15545:30;15611:32;15591:18;;;15584:60;15661:18;;1771:69:112;15331:354:168;1771:69:112;3727:9:116::1;3752:12;:10;:12::i;:::-;3813:21;::::0;;::::1;3776:34;3813:21:::0;;;:15:::1;:21;::::0;;;;;;;:38;;;;;;;;;3727:39;;-1:-1:-1;3813:38:116;;::::1;::::0;3865:34;::::1;::::0;:72;::::1;;;-1:-1:-1::0;3903:34:116::1;::::0;::::1;::::0;::::1;3865:72;3861:554;;;3960:21;::::0;::::1;;::::0;;;:15:::1;:21;::::0;;;;;;;:38;;;;;;;;;3953:45;;;::::1;::::0;;4017:44;;5191:25:168;;;4017:44:116::1;::::0;5164:18:168;4017:44:116::1;;;;;;;;3861:554;;;4092:21;::::0;;::::1;;::::0;;;:15:::1;:21;::::0;;;;;;;:38;;;;;;;;:52;;;::::1;::::0;;::::1;;::::0;;4162:34;::::1;4158:247;;4221:55;::::0;;16635:25:168;;;4221:55:116::1;16696::168::0;;;16691:2;16676:18;;16669:83;4221:55:116;::::1;::::0;::::1;::::0;16608:18:168;4221:55:116::1;16429:329:168::0;4158:247:116::1;4342:4;4320:70;;;4348:15;4365:11;4378;4320:70;;;;;;;17029:25:168::0;;;17073:42;17151:15;;;17146:2;17131:18;;17124:43;17203:15;17198:2;17183:18;;17176:43;17017:2;17002:18;;16763:462;4320:70:116::1;;;;;;;;4158:247;3717:704;;3604:817:::0;;:::o;2981:600:113:-;1614:10:110;1779:12:112;:10;:12::i;:::-;:26;;;1771:69;;;;;;;15533:2:168;1771:69:112;;;15515:21:168;15572:2;15552:18;;;15545:30;15611:32;15591:18;;;15584:60;15661:18;;1771:69:112;15331:354:168;1771:69:112;3107:9:113::1;3132:12;:10;:12::i;:::-;3107:39:::0;-1:-1:-1;3156:18:113::1;::::0;3184:267:::1;3204:20:::0;;::::1;3184:267;;;3245:46;3260:4;3266:9;;3276:1;3266:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3288:1;3245:14;:46::i;:::-;3309:5:::0;;3305:136:::1;;3349:9;;3359:1;3349:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3334:27;;;;3305:136;;;3414:9;;3424:1;3414:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3400:26;;3305:136;3226:3:::0;::::1;::::0;::::1;:::i;:::-;;;;3184:267;;;-1:-1:-1::0;3469:27:113;;;::::1;::::0;;::::1;;3461:61;;;::::0;::::1;::::0;;16281:2:168;3461:61:113::1;::::0;::::1;16263:21:168::0;16320:2;16300:18;;;16293:30;16359:23;16339:18;;;16332:51;16400:18;;3461:61:113::1;16079:345:168::0;3461:61:113::1;3532:42;3554:12;3568:5;3532:21;:42::i;811:165:114:-:0;1614:10:110;1779:12:112;:10;:12::i;:::-;:26;;;1771:69;;;;;;;15533:2:168;1771:69:112;;;15515:21:168;15572:2;15552:18;;;15545:30;15611:32;15591:18;;;15584:60;15661:18;;1771:69:112;15331:354:168;1771:69:112;905:64:114::1;933:12;:10;:12::i;:::-;949:8;959:9;905:14;:64::i;:::-;811:165:::0;;:::o;1187:625:113:-;1614:10:110;1779:12:112;:10;:12::i;:::-;:26;;;1771:69;;;;;;;15533:2:168;1771:69:112;;;15515:21:168;15572:2;15552:18;;;15545:30;15611:32;15591:18;;;15584:60;15661:18;;1771:69:112;15331:354:168;1771:69:112;1614:10:110;1392:25:113;;;::::1;::::0;;1384:58:::1;;;::::0;::::1;::::0;;17432:2:168;1384:58:113::1;::::0;::::1;17414:21:168::0;17471:2;17451:18;;;17444:30;17510:22;17490:18;;;17483:50;17550:18;;1384:58:113::1;17230:344:168::0;1384:58:113::1;1467:20;::::0;::::1;1452:12;1467:20:::0;;;:14:::1;:20;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;::::1;;1514:9:::0;:21;::::1;;;;1528:7;1527:8;1514:21;1510:296;;;1551:20;::::0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;;:40;;;::::1;1587:4;1551:40;::::0;;1610:33;6494:98:168;;;1610:33:113::1;::::0;6467:18:168;1610:33:113::1;6350:248:168::0;1510:296:113::1;1665:9;1664:10;:21;;;;;1678:7;1664:21;1660:146;;;1708:20;::::0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;;1701:40;;;::::1;::::0;;1760:35;6494:98:168;;;1760:35:113::1;::::0;6467:18:168;1760:35:113::1;6350:248:168::0;2922:153:112;1614:10:110;2968:9:112;3056:12;:10;:12::i;:::-;3047:21;;2922:153;;:::o;707:498:109:-;787:4;822:40;;;837:25;822:40;;:112;;-1:-1:-1;878:56:109;;;893:41;878:56;822:112;:174;;;-1:-1:-1;950:46:109;;;965:31;950:46;822:174;:239;;;-1:-1:-1;1012:49:109;;;1027:34;1012:49;822:239;:307;;;-1:-1:-1;1077:52:109;;;1092:37;1077:52;822:307;:376;;;-1:-1:-1;1145:53:109;;;1160:38;1145:53;803:395;707:498;-1:-1:-1;;707:498:109:o;8244:262:116:-;8359:12;8414:4;8407:12;;8428:4;8421:12;;8435:15;8479:8;8489:7;8462:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;8452:46;;8462:35;8452:46;;;;18162:66:168;18249:15;;;8390:109:116;;;18237:28:168;;;;18294:15;;;;18281:11;;;18274:36;18326:11;;;18319:27;18362:12;;;18355:28;18399:12;;8390:109:116;;;;;;;;;;;;8383:116;;8244:262;;;;;:::o;7512:707::-;7618:12;7642:24;7669:155;7707:4;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7795:17;;;;;;5191:25:168;;;2656:66:116;;5164:18:168;7795:17:116;;;;;;;;;;;;;7785:28;;7795:17;7785:28;;;;7774:40;;;5191:25:168;5164:18;7774:40:116;;;;;;;;;;;;7669:24;:155::i;:::-;7856:22;;;;;;7892:16;;7642:182;;-1:-1:-1;7856:22:116;7834:19;7892:21;7888:274;;7968:32;;;;;;;;5191:25:168;;;7968:19:116;;;;;;5164:18:168;;7968:32:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8004:1;7968:37;7960:67;;;;;;;19002:2:168;7960:67:116;;;18984:21:168;19041:2;19021:18;;;19014:30;19080:19;19060:18;;;19053:47;19117:18;;7960:67:116;18800:341:168;7960:67:116;7888:274;;;8094:57;;;;;:20;;;;;;:57;;8115:11;;8128;;8141:9;;8094:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7888:274;-1:-1:-1;8179:33:116;;7512:707;-1:-1:-1;;;;;7512:707:116:o;1053:379:110:-;1098:14;1151:2;1132:8;:21;;1124:57;;;;;;;19801:2:168;1124:57:110;;;19783:21:168;19840:2;19820:18;;;19813:30;19879:25;19859:18;;;19852:53;19922:18;;1124:57:110;19599:347:168;1124:57:110;-1:-1:-1;1391:23:110;1395:14;1391:23;1378:37;1374:2;1370:46;;1053:379::o;570:173:115:-;641:12;709:8;:25;;725:8;709:25;;;720:1;709:25;696:7;680:25;;:55;672:64;;665:71;;570:173;;;;:::o;1889:768:112:-;1647:22:115;2062:17:112;;;1982:18;2062:17;;;;;;;;;;;:27;;;;;;;;;;;1647:22:115;;;;;;2167:33:112;;:70;;;;-1:-1:-1;2204:33:112;;;;;2167:70;2163:488;;;2260:17;;;:11;:17;;;;;;;;;;;:27;;;;;;;;;;;;2253:34;;;;2306:33;6494:98:168;;;2306:33:112;;6467:18:168;2306:33:112;;;;;;;;2163:488;;;2370:17;;;;:11;:17;;;;;;;;;;;:27;;;;;;;;;;:39;;;2427:33;;2423:218;;2485:42;;;20153:66:168;20141:79;;20123:98;;20252:2;20237:18;;20230:34;;;2485:42:112;;;;;;20096:18:168;2485:42:112;19951:319:168;2423:218:112;2571:55;;;20505:66:168;20493:79;;20475:98;;20604:2;20589:18;;20582:34;;;20632:18;;;20625:34;;;2571:55:112;;;;;;20463:2:168;20448:18;2571:55:112;;;;;;;2423:218;1969:688;;;1889:768;;;:::o;717:184:168:-;769:77;766:1;759:88;866:4;863:1;856:15;890:4;887:1;880:15;906:128;973:9;;;994:11;;;991:37;;;1008:18;;:::i;1039:331::-;1144:9;1155;1197:8;1185:10;1182:24;1179:44;;;1219:1;1216;1209:12;1179:44;1248:6;1238:8;1235:20;1232:40;;;1268:1;1265;1258:12;1232:40;-1:-1:-1;;1294:23:168;;;1339:25;;;;;-1:-1:-1;1039:331:168:o;1375:780::-;1615:4;1644:42;1725:2;1717:6;1713:15;1702:9;1695:34;1777:2;1769:6;1765:15;1760:2;1749:9;1745:18;1738:43;;1817:6;1812:2;1801:9;1797:18;1790:34;1860:3;1855:2;1844:9;1840:18;1833:31;1901:6;1895:3;1884:9;1880:19;1873:35;1959:6;1951;1945:3;1934:9;1930:19;1917:49;2016:1;2010:3;2001:6;1990:9;1986:22;1982:32;1975:43;2145:3;2075:66;2070:2;2062:6;2058:15;2054:88;2043:9;2039:104;2035:114;2027:122;;1375:780;;;;;;;;:::o;2160:184::-;2212:77;2209:1;2202:88;2309:4;2306:1;2299:15;2333:4;2330:1;2323:15;2349:334;2420:2;2414:9;2476:2;2466:13;;2481:66;2462:86;2450:99;;2579:18;2564:34;;2600:22;;;2561:62;2558:88;;;2626:18;;:::i;:::-;2662:2;2655:22;2349:334;;-1:-1:-1;2349:334:168:o;2688:245::-;2736:4;2769:18;2761:6;2758:30;2755:56;;;2791:18;;:::i;:::-;-1:-1:-1;2848:2:168;2836:15;2853:66;2832:88;2922:4;2828:99;;2688:245::o;2938:250::-;3023:1;3033:113;3047:6;3044:1;3041:13;3033:113;;;3123:11;;;3117:18;3104:11;;;3097:39;3069:2;3062:10;3033:113;;;-1:-1:-1;;3180:1:168;3162:16;;3155:27;2938:250::o;3193:647::-;3272:6;3325:2;3313:9;3304:7;3300:23;3296:32;3293:52;;;3341:1;3338;3331:12;3293:52;3374:9;3368:16;3407:18;3399:6;3396:30;3393:50;;;3439:1;3436;3429:12;3393:50;3462:22;;3515:4;3507:13;;3503:27;-1:-1:-1;3493:55:168;;3544:1;3541;3534:12;3493:55;3573:2;3567:9;3598:48;3614:31;3642:2;3614:31;:::i;:::-;3598:48;:::i;:::-;3669:2;3662:5;3655:17;3709:7;3704:2;3699;3695;3691:11;3687:20;3684:33;3681:53;;;3730:1;3727;3720:12;3681:53;3743:67;3807:2;3802;3795:5;3791:14;3786:2;3782;3778:11;3743:67;:::i;:::-;3829:5;3193:647;-1:-1:-1;;;;;3193:647:168:o;3845:177::-;3930:66;3923:5;3919:78;3912:5;3909:89;3899:117;;4012:1;4009;4002:12;3899:117;3845:177;:::o;4027:245::-;4085:6;4138:2;4126:9;4117:7;4113:23;4109:32;4106:52;;;4154:1;4151;4144:12;4106:52;4193:9;4180:23;4212:30;4236:5;4212:30;:::i;4469:160::-;4561:42;4554:5;4550:54;4543:5;4540:65;4530:93;;4619:1;4616;4609:12;4634:406;4715:6;4723;4776:2;4764:9;4755:7;4751:23;4747:32;4744:52;;;4792:1;4789;4782:12;4744:52;4831:9;4818:23;4850:37;4881:5;4850:37;:::i;:::-;4906:5;-1:-1:-1;4963:2:168;4948:18;;4935:32;4976;4935;4976;:::i;:::-;5027:7;5017:17;;;4634:406;;;;;:::o;5227:347::-;5278:8;5288:6;5342:3;5335:4;5327:6;5323:17;5319:27;5309:55;;5360:1;5357;5350:12;5309:55;-1:-1:-1;5383:20:168;;5426:18;5415:30;;5412:50;;;5458:1;5455;5448:12;5412:50;5495:4;5487:6;5483:17;5471:29;;5547:3;5540:4;5531:6;5523;5519:19;5515:30;5512:39;5509:59;;;5564:1;5561;5554:12;5509:59;5227:347;;;;;:::o;5579:766::-;5676:6;5684;5692;5700;5708;5761:3;5749:9;5740:7;5736:23;5732:33;5729:53;;;5778:1;5775;5768:12;5729:53;5817:9;5804:23;5836:37;5867:5;5836:37;:::i;:::-;5892:5;-1:-1:-1;5949:2:168;5934:18;;5921:32;5962:39;5921:32;5962:39;:::i;:::-;6020:7;-1:-1:-1;6074:2:168;6059:18;;6046:32;;-1:-1:-1;6129:2:168;6114:18;;6101:32;6156:18;6145:30;;6142:50;;;6188:1;6185;6178:12;6142:50;6227:58;6277:7;6268:6;6257:9;6253:22;6227:58;:::i;:::-;5579:766;;;;-1:-1:-1;5579:766:168;;-1:-1:-1;6304:8:168;;6201:84;5579:766;-1:-1:-1;;;5579:766:168:o;6603:477::-;6682:6;6690;6698;6751:2;6739:9;6730:7;6726:23;6722:32;6719:52;;;6767:1;6764;6757:12;6719:52;6803:9;6790:23;6780:33;;6864:2;6853:9;6849:18;6836:32;6891:18;6883:6;6880:30;6877:50;;;6923:1;6920;6913:12;6877:50;6962:58;7012:7;7003:6;6992:9;6988:22;6962:58;:::i;:::-;6603:477;;7039:8;;-1:-1:-1;6936:84:168;;-1:-1:-1;;;;6603:477:168:o;7085:367::-;7148:8;7158:6;7212:3;7205:4;7197:6;7193:17;7189:27;7179:55;;7230:1;7227;7220:12;7179:55;-1:-1:-1;7253:20:168;;7296:18;7285:30;;7282:50;;;7328:1;7325;7318:12;7282:50;7365:4;7357:6;7353:17;7341:29;;7425:3;7418:4;7408:6;7405:1;7401:14;7393:6;7389:27;7385:38;7382:47;7379:67;;;7442:1;7439;7432:12;7457:570;7551:6;7559;7567;7620:2;7608:9;7599:7;7595:23;7591:32;7588:52;;;7636:1;7633;7626:12;7588:52;7675:9;7662:23;7694:30;7718:5;7694:30;:::i;:::-;7743:5;-1:-1:-1;7799:2:168;7784:18;;7771:32;7826:18;7815:30;;7812:50;;;7858:1;7855;7848:12;7812:50;7897:70;7959:7;7950:6;7939:9;7935:22;7897:70;:::i;8032:353::-;8132:6;8140;8193:2;8181:9;8172:7;8168:23;8164:32;8161:52;;;8209:1;8206;8199:12;8161:52;8245:9;8232:23;8222:33;;8305:2;8294:9;8290:18;8277:32;8318:37;8349:5;8318:37;:::i;8390:335::-;8472:6;8480;8533:2;8521:9;8512:7;8508:23;8504:32;8501:52;;;8549:1;8546;8539:12;8501:52;8588:9;8575:23;8607:37;8638:5;8607:37;:::i;:::-;8663:5;8715:2;8700:18;;;;8687:32;;-1:-1:-1;;;8390:335:168:o;9567:313::-;9634:6;9642;9695:2;9683:9;9674:7;9670:23;9666:32;9663:52;;;9711:1;9708;9701:12;9663:52;9750:9;9737:23;9769:30;9793:5;9769:30;:::i;9885:414::-;9949:6;9957;10010:2;9998:9;9989:7;9985:23;9981:32;9978:52;;;10026:1;10023;10016:12;9978:52;10065:9;10052:23;10084:30;10108:5;10084:30;:::i;:::-;10133:5;-1:-1:-1;10190:2:168;10175:18;;10162:32;10232:15;;10225:23;10213:36;;10203:64;;10263:1;10260;10253:12;10304:1350;10464:6;10472;10480;10488;10496;10504;10512;10520;10573:3;10561:9;10552:7;10548:23;10544:33;10541:53;;;10590:1;10587;10580:12;10541:53;10629:9;10616:23;10648:37;10679:5;10648:37;:::i;:::-;10704:5;-1:-1:-1;10761:2:168;10746:18;;10733:32;10774:39;10733:32;10774:39;:::i;:::-;10832:7;-1:-1:-1;10890:2:168;10875:18;;10862:32;10913:18;10943:14;;;10940:34;;;10970:1;10967;10960:12;10940:34;11009:70;11071:7;11062:6;11051:9;11047:22;11009:70;:::i;:::-;11098:8;;-1:-1:-1;10983:96:168;-1:-1:-1;11186:2:168;11171:18;;11158:32;;-1:-1:-1;11202:16:168;;;11199:36;;;11231:1;11228;11221:12;11199:36;11270:72;11334:7;11323:8;11312:9;11308:24;11270:72;:::i;:::-;11361:8;;-1:-1:-1;11244:98:168;-1:-1:-1;11449:3:168;11434:19;;11421:33;;-1:-1:-1;11466:16:168;;;11463:36;;;11495:1;11492;11485:12;11463:36;;11534:60;11586:7;11575:8;11564:9;11560:24;11534:60;:::i;:::-;10304:1350;;;;-1:-1:-1;10304:1350:168;;-1:-1:-1;10304:1350:168;;;;;;11613:8;-1:-1:-1;;;10304:1350:168:o;11659:835::-;11765:6;11773;11781;11789;11797;11805;11858:3;11846:9;11837:7;11833:23;11829:33;11826:53;;;11875:1;11872;11865:12;11826:53;11914:9;11901:23;11933:37;11964:5;11933:37;:::i;:::-;11989:5;-1:-1:-1;12046:2:168;12031:18;;12018:32;12059:39;12018:32;12059:39;:::i;:::-;12117:7;-1:-1:-1;12171:2:168;12156:18;;12143:32;;-1:-1:-1;12222:2:168;12207:18;;12194:32;;-1:-1:-1;12277:3:168;12262:19;;12249:33;12305:18;12294:30;;12291:50;;;12337:1;12334;12327:12;12291:50;12376:58;12426:7;12417:6;12406:9;12402:22;12376:58;:::i;:::-;11659:835;;;;-1:-1:-1;11659:835:168;;-1:-1:-1;11659:835:168;;12453:8;;11659:835;-1:-1:-1;;;11659:835:168:o;12499:248::-;12567:6;12575;12628:2;12616:9;12607:7;12603:23;12599:32;12596:52;;;12644:1;12641;12634:12;12596:52;-1:-1:-1;;12667:23:168;;;12737:2;12722:18;;;12709:32;;-1:-1:-1;12499:248:168:o;12752:462::-;12794:5;12847:3;12840:4;12832:6;12828:17;12824:27;12814:55;;12865:1;12862;12855:12;12814:55;12901:6;12888:20;12932:48;12948:31;12976:2;12948:31;:::i;12932:48::-;13005:2;12996:7;12989:19;13051:3;13044:4;13039:2;13031:6;13027:15;13023:26;13020:35;13017:55;;;13068:1;13065;13058:12;13017:55;13133:2;13126:4;13118:6;13114:17;13107:4;13098:7;13094:18;13081:55;13181:1;13156:16;;;13174:4;13152:27;13145:38;;;;13160:7;12752:462;-1:-1:-1;;;12752:462:168:o;13219:676::-;13323:6;13331;13339;13347;13400:3;13388:9;13379:7;13375:23;13371:33;13368:53;;;13417:1;13414;13407:12;13368:53;13453:9;13440:23;13430:33;;13510:2;13499:9;13495:18;13482:32;13472:42;;13565:2;13554:9;13550:18;13537:32;13588:18;13629:2;13621:6;13618:14;13615:34;;;13645:1;13642;13635:12;13615:34;13668:49;13709:7;13700:6;13689:9;13685:22;13668:49;:::i;:::-;13658:59;;13770:2;13759:9;13755:18;13742:32;13726:48;;13799:2;13789:8;13786:16;13783:36;;;13815:1;13812;13805:12;13783:36;;13838:51;13881:7;13870:8;13859:9;13855:24;13838:51;:::i;:::-;13828:61;;;13219:676;;;;;;;:::o;13900:329::-;13941:3;13979:5;13973:12;14006:6;14001:3;13994:19;14022:76;14091:6;14084:4;14079:3;14075:14;14068:4;14061:5;14057:16;14022:76;:::i;:::-;14143:2;14131:15;14148:66;14127:88;14118:98;;;;14218:4;14114:109;;13900:329;-1:-1:-1;;13900:329:168:o;14234:838::-;14552:4;14581:42;14662:2;14654:6;14650:15;14639:9;14632:34;14714:2;14706:6;14702:15;14697:2;14686:9;14682:18;14675:43;;14754:6;14749:2;14738:9;14734:18;14727:34;14797:6;14792:2;14781:9;14777:18;14770:34;14841:6;14835:3;14824:9;14820:19;14813:35;14885:3;14879;14868:9;14864:19;14857:32;14912:45;14952:3;14941:9;14937:19;14929:6;14912:45;:::i;:::-;15006:9;14998:6;14994:22;14988:3;14977:9;14973:19;14966:51;15034:32;15059:6;15051;15034:32;:::i;:::-;15026:40;14234:838;-1:-1:-1;;;;;;;;;;14234:838:168:o;15077:249::-;15146:6;15199:2;15187:9;15178:7;15174:23;15170:32;15167:52;;;15215:1;15212;15205:12;15167:52;15247:9;15241:16;15266:30;15290:5;15266:30;:::i;15690:184::-;15742:77;15739:1;15732:88;15839:4;15836:1;15829:15;15863:4;15860:1;15853:15;15879:195;15918:3;15949:66;15942:5;15939:77;15936:103;;16019:18;;:::i;:::-;-1:-1:-1;16066:1:168;16055:13;;15879:195::o;17579:359::-;17766:6;17761:3;17754:19;17736:3;17802:6;17796:13;17818:73;17884:6;17879:2;17874:3;17870:12;17865:2;17857:6;17853:15;17818:73;:::i;:::-;17911:16;;;;17929:2;17907:25;;17579:359;-1:-1:-1;;;17579:359:168:o;18422:184::-;18492:6;18545:2;18533:9;18524:7;18520:23;18516:32;18513:52;;;18561:1;18558;18551:12;18513:52;-1:-1:-1;18584:16:168;;18422:184;-1:-1:-1;18422:184:168:o;19146:448::-;19367:6;19356:9;19349:25;19410:2;19405;19394:9;19390:18;19383:30;19330:4;19436:44;19476:2;19465:9;19461:18;19453:6;19436:44;:::i;:::-;19528:9;19520:6;19516:22;19511:2;19500:9;19496:18;19489:50;19556:32;19581:6;19573;19556:32;:::i;:::-;19548:40;19146:448;-1:-1:-1;;;;;;19146:448:168:o", + "object": "0x608060405234801561001057600080fd5b50600436106100df5760003560e01c806351cad5ee1161008c5780637f73528b116100665780637f73528b14610514578063b435a13b14610527578063bc197c8114610555578063f23a6e6114610590576100df565b806351cad5ee1461048857806361f5401b146104ee57806364f95acc14610501576100df565b80631626ba7e116100bd5780631626ba7e1461044d578063327b533c146104605780633365582c14610475576100df565b806301ffc9a7146103865780630a3fe054146103ae578063150b7a02146103e4575b60003660606018821015610154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c6964206d6574686f642073656c6563746f7200000000000000000060448201526064015b60405180910390fd5b6000806000806101626105c9565b9296509094509250905073ffffffffffffffffffffffffffffffffffffffff81166101e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f6d6574686f642068616e646c6572206e6f742073657400000000000000000000604482015260640161014b565b81156102b45773ffffffffffffffffffffffffffffffffffffffff81166325d6803f8585600080803661021d601482611bc3565b9261022a93929190611bd6565b6040518663ffffffff1660e01b815260040161024a959493929190611c00565b600060405180830381865afa158015610267573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526102ad9190810190611d67565b9450610377565b73ffffffffffffffffffffffffffffffffffffffff81166325d6803f858560008080366102e2601482611bc3565b926102ef93929190611bd6565b6040518663ffffffff1660e01b815260040161030f959493929190611c00565b6000604051808303816000875af115801561032e573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526103749190810190611d67565b94505b50505050915050805190602001f35b610399610394366004611e14565b610641565b60405190151581526020015b60405180910390f35b6103d66103bc366004611e53565b600060208181529281526040808220909352908152205481565b6040519081526020016103a5565b61041c6103f2366004611ed5565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016103a5565b61041c61045b366004611f48565b610730565b61047361046e366004611fd9565b610926565b005b610473610483366004612021565b610b11565b6104c9610496366004612046565b600160209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103a5565b6104736104fc366004611fd9565b610dc0565b61047361050f366004612072565b610f9c565b610473610522366004612090565b611038565b610399610535366004611e53565b600260209081526000928352604080842090915290825290205460ff1681565b61041c6105633660046120c3565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b61041c61059e366004612182565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b6000806000806105d7611312565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008435168452909152902054929791965060f883901c1595509190911692509050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806106d457507fffffffff0000000000000000000000000000000000000000000000000000000082167f98c8e09700000000000000000000000000000000000000000000000000000000145b806106e357506106e382611323565b8061072a57503360009081526002602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290205460ff165b92915050565b600080600061073d611312565b9092509050600484106108d9577fffffffff000000000000000000000000000000000000000000000000000000008535167f5fd7e97d000000000000000000000000000000000000000000000000000000008114801561079e575060448510155b156108d7576000806107b460446004898b611bd6565b8101906107c191906121fe565b73ffffffffffffffffffffffffffffffffffffffff80881660009081526001602090815260408083208684529091529020549294509092501680156108d3576000806108108a6004818e611bd6565b81019061081d9190612271565b9350935050508b61082f8686856114eb565b80519060200120036108d0578273ffffffffffffffffffffffffffffffffffffffff166353f00b1489898f898988886040518863ffffffff1660e01b81526004016108809796959493929190612332565b602060405180830381865afa15801561089d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c1919061239d565b9850505050505050505061091f565b50505b5050505b505b61091a828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061159b92505050565b925050505b9392505050565b3361092f611850565b73ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b60006109b6611850565b90506000805b83811015610a70576000806000610a2d8888868181106109de576109de6123ba565b9050602002013560f881901c15917fffffffffffffffffffffff000000000000000000000000000000000000000000600883901b169173ffffffffffffffffffffffffffffffffffffffff1690565b925092509250610a478683610a4286856118e8565b61193b565b8315610a565793811893610a5a565b8194505b5050508080610a68906123e9565b9150506109bc565b507fffffffff0000000000000000000000000000000000000000000000000000000081811690861614610aff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e74657266616365206964206d69736d617463680000000000000000000000604482015260640161014b565b610b0a856001611038565b5050505050565b33610b1a611850565b73ffffffffffffffffffffffffffffffffffffffff1614610b97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b6000610ba1611850565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600160209081526040808320888452909152902054919250908116908316158015610bfe575073ffffffffffffffffffffffffffffffffffffffff811615155b15610c905773ffffffffffffffffffffffffffffffffffffffff8216600081815260016020908152604080832088845282529182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590518681527ff1984d1a49cc75dcbf01cd175870cb7eb9a4fd87b538a87007e4dbb0399b61a991015b60405180910390a2610dba565b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600160209081526040808320888452909152902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168583161790558116610d40576040805185815273ffffffffffffffffffffffffffffffffffffffff85811660208301528416917fae938181ed4437a46f12ead84e69947e6d84a1113a49d9c0075d8d35c6ce273c9101610c83565b8173ffffffffffffffffffffffffffffffffffffffff167f06341ac2f62eb79165de8c8b54ab89a8825b12746c2b98e01dff1007837d2ba8858386604051610db19392919092835273ffffffffffffffffffffffffffffffffffffffff918216602084015216604082015260600190565b60405180910390a25b50505050565b33610dc9611850565b73ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b6000610e50611850565b90506000805b83811015610f0257610e9083868684818110610e7457610e746123ba565b9050602002016020810190610e899190611e14565b600061193b565b8015610ec657848482818110610ea857610ea86123ba565b9050602002016020810190610ebd9190611e14565b82189150610ef0565b848482818110610ed857610ed86123ba565b9050602002016020810190610eed9190611e14565b91505b80610efa816123e9565b915050610e56565b507fffffffff0000000000000000000000000000000000000000000000000000000081811690861614610f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f696e74657266616365206964206d69736d617463680000000000000000000000604482015260640161014b565b610b0a856000611038565b33610fa5611850565b73ffffffffffffffffffffffffffffffffffffffff1614611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b61103461102d611850565b838361193b565b5050565b33611041611850565b73ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f6f6e6c7920736166652063616e2063616c6c2074686973206d6574686f640000604482015260640161014b565b337fffffffff00000000000000000000000000000000000000000000000000000000838116900361114b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420696e74657266616365206964000000000000000000000000604482015260640161014b565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008716845290915290205460ff168280156111ac575080155b1561125b5773ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000089168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055519182527f3d5024c13f12fa602dbf52b1979058940c224ebf170c83a4e358725ae50db36d9101610c83565b821580156112665750805b15610dba5773ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000089168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055519182527ff159d834f487747c1b3f17e2107743e42e6eecff444d894e511c18943072b29f9101610db1565b33600061131d611850565b90509091565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1626ba7e0000000000000000000000000000000000000000000000000000000014806113b657507fffffffff0000000000000000000000000000000000000000000000000000000082167f62af8dc200000000000000000000000000000000000000000000000000000000145b8061140257507fffffffff0000000000000000000000000000000000000000000000000000000082167f9937293000000000000000000000000000000000000000000000000000000000145b8061144e57507fffffffff0000000000000000000000000000000000000000000000000000000082167f64f95acc00000000000000000000000000000000000000000000000000000000145b8061149a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a0200000000000000000000000000000000000000000000000000000000145b8061072a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e0000000000000000000000000000000000000000000000000000000001492915050565b6060601960f81b600160f81b85858560405160200161150b929190612421565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529082905280516020918201207fff00000000000000000000000000000000000000000000000000000000000000958616918301919091529290931660218401526022830152604282015260620160405160208183030381529060405290509392505050565b60008061168d8573ffffffffffffffffffffffffffffffffffffffff1663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116109190612447565b60408051602081018890527f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca9101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012090830152016040516020818303038152906040526114eb565b8051602082012084519192509060000361179e576040517f5ae6bd370000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff871690635ae6bd3790602401602060405180830381865afa15801561170c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117309190612447565b600003611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f48617368206e6f7420617070726f766564000000000000000000000000000000604482015260640161014b565b611825565b6040517f934f3a1100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063934f3a11906117f490849086908990600401612460565b60006040518083038186803b15801561180c57600080fd5b505afa158015611820573d6000803e3d6000fd5b505050505b507f1626ba7e0000000000000000000000000000000000000000000000000000000095945050505050565b600060143610156118bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e76616c69642063616c6c64617461206c656e677468000000000000000000604482015260640161014b565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90565b600082611915577f0100000000000000000000000000000000000000000000000000000000000000611918565b60005b8273ffffffffffffffffffffffffffffffffffffffff161760001b905092915050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152602081815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168452909152902054818316918116821580156119b6575073ffffffffffffffffffffffffffffffffffffffff811615155b15611a465773ffffffffffffffffffffffffffffffffffffffff86166000818152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008a1680855290835281842093909355519182527fdba980ab8ee19d95f57ee25cf5a9a7f3d7f950dc6075d5e204fbaaf37e5260aa91015b60405180910390a2611b8c565b73ffffffffffffffffffffffffffffffffffffffff8087166000908152602081815260408083207fffffffff000000000000000000000000000000000000000000000000000000008a16845290915290208590558116611b1057604080517fffffffff00000000000000000000000000000000000000000000000000000000871681526020810186905273ffffffffffffffffffffffffffffffffffffffff8816917f16072a299c25042299e9bb90f6a7b2ccaa8b8fbbceeaa0512f323de45f9d59eb9101611a39565b604080517fffffffff00000000000000000000000000000000000000000000000000000000871681526020810184905290810185905273ffffffffffffffffffffffffffffffffffffffff8716907fe6e8ad7e5547dc860775f9f0638e195a4751a4cfbb7fd2ab60a52eb6c07082ec9060600160405180910390a25b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561072a5761072a611b94565b60008085851115611be657600080fd5b83861115611bf357600080fd5b5050820193919092039150565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011683010190509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611cf557611cf5611c7f565b604052919050565b600067ffffffffffffffff821115611d1757611d17611c7f565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611d5e578181015183820152602001611d46565b50506000910152565b600060208284031215611d7957600080fd5b815167ffffffffffffffff811115611d9057600080fd5b8201601f81018413611da157600080fd5b8051611db4611daf82611cfd565b611cae565b818152856020838501011115611dc957600080fd5b611dda826020830160208601611d43565b95945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611e1157600080fd5b50565b600060208284031215611e2657600080fd5b813561091f81611de3565b73ffffffffffffffffffffffffffffffffffffffff81168114611e1157600080fd5b60008060408385031215611e6657600080fd5b8235611e7181611e31565b91506020830135611e8181611de3565b809150509250929050565b60008083601f840112611e9e57600080fd5b50813567ffffffffffffffff811115611eb657600080fd5b602083019150836020828501011115611ece57600080fd5b9250929050565b600080600080600060808688031215611eed57600080fd5b8535611ef881611e31565b94506020860135611f0881611e31565b935060408601359250606086013567ffffffffffffffff811115611f2b57600080fd5b611f3788828901611e8c565b969995985093965092949392505050565b600080600060408486031215611f5d57600080fd5b83359250602084013567ffffffffffffffff811115611f7b57600080fd5b611f8786828701611e8c565b9497909650939450505050565b60008083601f840112611fa657600080fd5b50813567ffffffffffffffff811115611fbe57600080fd5b6020830191508360208260051b8501011115611ece57600080fd5b600080600060408486031215611fee57600080fd5b8335611ff981611de3565b9250602084013567ffffffffffffffff81111561201557600080fd5b611f8786828701611f94565b6000806040838503121561203457600080fd5b823591506020830135611e8181611e31565b6000806040838503121561205957600080fd5b823561206481611e31565b946020939093013593505050565b6000806040838503121561208557600080fd5b823561206481611de3565b600080604083850312156120a357600080fd5b82356120ae81611de3565b915060208301358015158114611e8157600080fd5b60008060008060008060008060a0898b0312156120df57600080fd5b88356120ea81611e31565b975060208901356120fa81611e31565b9650604089013567ffffffffffffffff8082111561211757600080fd5b6121238c838d01611f94565b909850965060608b013591508082111561213c57600080fd5b6121488c838d01611f94565b909650945060808b013591508082111561216157600080fd5b5061216e8b828c01611e8c565b999c989b5096995094979396929594505050565b60008060008060008060a0878903121561219b57600080fd5b86356121a681611e31565b955060208701356121b681611e31565b94506040870135935060608701359250608087013567ffffffffffffffff8111156121e057600080fd5b6121ec89828a01611e8c565b979a9699509497509295939492505050565b6000806040838503121561221157600080fd5b50508035926020909101359150565b600082601f83011261223157600080fd5b813561223f611daf82611cfd565b81815284602083860101111561225457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561228757600080fd5b8435935060208501359250604085013567ffffffffffffffff808211156122ad57600080fd5b6122b988838901612220565b935060608701359150808211156122cf57600080fd5b506122dc87828801612220565b91505092959194509250565b60008151808452612300816020860160208601611d43565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff808a16835280891660208401525086604083015285606083015284608083015260e060a083015261237d60e08301856122e8565b82810360c084015261238f81856122e8565b9a9950505050505050505050565b6000602082840312156123af57600080fd5b815161091f81611de3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361241a5761241a611b94565b5060010190565b82815260008251612439816020850160208701611d43565b919091016020019392505050565b60006020828403121561245957600080fd5b5051919050565b83815260606020820152600061247960608301856122e8565b828103604084015261248b81856122e8565b969550505050505056fea26469706673582212203dcab8e5b5e594646da523eae9bdce497784cf041b7ab3d729e5ec6996462cf964736f6c63430008130033", + "sourceMap": "429:778:108:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:19:113;1108:2;1089:21;;;1081:57;;;;;;;216:2:170;1081:57:113;;;198:21:170;255:2;235:18;;;228:30;294:25;274:18;;;267:53;337:18;;1081:57:113;;;;;;;;;1149:9;1160:14;1176:13;1191:15;1210:23;:21;:23::i;:::-;1148:85;;-1:-1:-1;1148:85:113;;-1:-1:-1;1148:85:113;-1:-1:-1;1148:85:113;-1:-1:-1;1251:21:113;;;1243:56;;;;;;;568:2:170;1243:56:113;;;550:21:170;607:2;587:18;;;580:30;646:24;626:18;;;619:52;688:18;;1243:56:113;366:346:170;1243:56:113;1314:8;1310:256;;;1347:37;;;;1385:4;1391:6;1399:1;;;1402:8;1412:20;1430:2;1402:8;1412:20;:::i;:::-;1402:31;;;;;;;:::i;:::-;1347:87;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1338:96;;1310:256;;;1474:31;;;;1506:4;1512:6;1520:1;;;1523:8;1533:20;1551:2;1523:8;1533:20;:::i;:::-;1523:31;;;;;;;:::i;:::-;1474:81;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1465:90;;1310:256;1071:501;;;;1007:565;;;429:778:108;;;;;;3905:332:112;;;;;;:::i;:::-;;:::i;:::-;;;4442:14:170;;4435:22;4417:41;;4405:2;4390:18;3905:332:112;;;;;;;;1409:62:111;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;5191:25:170;;;5179:2;5164:18;1409:62:111;5045:177:170;1431:185:116;;;;;;:::i;:::-;1592:17;1431:185;;;;;;;;;;;6524:66:170;6512:79;;;6494:98;;6482:2;6467:18;1431:185:116;6350:248:170;4777:2460:115;;;;;;:::i;:::-;;:::i;2027:767:112:-;;;;;;:::i;:::-;;:::i;:::-;;3604:817:115;;;;;;:::i;:::-;;:::i;2885:91::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8938:42:170;8926:55;;;8908:74;;8896:2;8881:18;2885:91:115;8730:258:170;2981:600:112;;;;;;:::i;:::-;;:::i;811:165:113:-;;;;;;:::i;:::-;;:::i;1187:625:112:-;;;;;;:::i;:::-;;:::i;820:71::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1036:268:116;;;;;;:::i;:::-;1280:17;1036:268;;;;;;;;;;;702:195;;;;;;:::i;:::-;873:17;702:195;;;;;;;;;3458:239:111;3514:9;3525:14;3541:13;3556:15;3600:13;:11;:13::i;:::-;3663:17;;;;:11;:17;;;;;;;;;;;3681:7;;;;3663:26;;;;;;;;:17;;3583:30;;-1:-1:-1;1612:3:114;1608:14;;;1601:22;;-1:-1:-1;1647:22:114;;;;;-1:-1:-1;3458:239:111;-1:-1:-1;3458:239:111:o;3905:332:112:-;3975:4;4010:40;;;4025:25;4010:40;;:103;;-1:-1:-1;4066:47:112;;;4081:32;4066:47;4010:103;:150;;;;4129:31;4148:11;4129:18;:31::i;:::-;4010:220;;;-1:-1:-1;1614:10:109;4176:41:112;;;;:14;:41;;;;;;;;:54;;;;;;;;;;;;;4010:220;3991:239;3905:332;-1:-1:-1;;3905:332:112:o;4777:2460:115:-;4876:12;4901:9;4912:14;4930:13;:11;:13::i;:::-;4900:43;;-1:-1:-1;4900:43:115;-1:-1:-1;5082:1:115;5062:21;;5058:1998;;5233:50;5251:30;;5233:50;5415:26;5400:41;;:67;;;;-1:-1:-1;5465:2:115;5445:22;;;5400:67;5396:1650;;;6107:23;;6163:15;6175:2;6173:1;6163:9;;:15;:::i;:::-;6152:47;;;;;;;:::i;:::-;6252:21;;;;6218:31;6252:21;;;:15;:21;;;;;;;;:38;;;;;;;;;6106:93;;-1:-1:-1;6106:93:115;;-1:-1:-1;6252:38:115;6393:31;;6389:643;;6453:23;;6513:13;:9;6523:1;6513:9;;:13;:::i;:::-;6502:59;;;;;;;:::i;:::-;6448:113;;;;;;6739:5;6671:63;6696:15;6713:8;6723:10;6671:24;:63::i;:::-;6661:74;;;;;;:83;6657:357;;6893:8;:29;;;6923:4;6929:6;6937:5;6944:15;6961:8;6971:10;6983:7;6893:98;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6886:105;;;;;;;;;;;;6657:357;6426:606;;6389:643;5469:1577;;;5396:1650;5085:1971;5058:1998;7183:47;7207:4;7213:5;7220:9;;7183:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7183:23:115;;-1:-1:-1;;;7183:47:115:i;:::-;7176:54;;;;4777:2460;;;;;;:::o;2027:767:112:-;1614:10:109;1779:12:111;:10;:12::i;:::-;:26;;;1771:69;;;;;;;15533:2:170;1771:69:111;;;15515:21:170;15572:2;15552:18;;;15545:30;15611:32;15591:18;;;15584:60;15661:18;;1771:69:111;15331:354:170;1771:69:111;2162:9:112::1;2187:12;:10;:12::i;:::-;2162:39:::0;-1:-1:-1;2211:18:112::1;::::0;2239:426:::1;2259:31:::0;;::::1;2239:426;;;2312:13;2327:15:::0;2344:22:::1;2370:54;2400:20;;2421:1;2400:23;;;;;;;:::i;:::-;;;;;;;1999:3:114::0;1995:14;;;1988:22;;2081:24;;;;;;;2034:22;;;1691:430;2370:54:112::1;2311:113;;;;;;2438:75;2453:4;2459:8;2469:43;2487:8;2497:14;2469:17;:43::i;:::-;2438:14;:75::i;:::-;2531:5:::0;;2527:128:::1;;2556:23:::0;;::::1;::::0;2527:128:::1;;;2632:8;2618:22;;2527:128;2297:368;;;2292:3;;;;;:::i;:::-;;;;2239:426;;;-1:-1:-1::0;2683:27:112;;;::::1;::::0;;::::1;;2675:61;;;::::0;::::1;::::0;;16281:2:170;2675:61:112::1;::::0;::::1;16263:21:170::0;16320:2;16300:18;;;16293:30;16359:23;16339:18;;;16332:51;16400:18;;2675:61:112::1;16079:345:170::0;2675:61:112::1;2746:41;2768:12;2782:4;2746:21;:41::i;:::-;2152:642;;2027:767:::0;;;:::o;3604:817:115:-;1614:10:109;1779:12:111;:10;:12::i;:::-;:26;;;1771:69;;;;;;;15533:2:170;1771:69:111;;;15515:21:170;15572:2;15552:18;;;15545:30;15611:32;15591:18;;;15584:60;15661:18;;1771:69:111;15331:354:170;1771:69:111;3727:9:115::1;3752:12;:10;:12::i;:::-;3813:21;::::0;;::::1;3776:34;3813:21:::0;;;:15:::1;:21;::::0;;;;;;;:38;;;;;;;;;3727:39;;-1:-1:-1;3813:38:115;;::::1;::::0;3865:34;::::1;::::0;:72;::::1;;;-1:-1:-1::0;3903:34:115::1;::::0;::::1;::::0;::::1;3865:72;3861:554;;;3960:21;::::0;::::1;;::::0;;;:15:::1;:21;::::0;;;;;;;:38;;;;;;;;;3953:45;;;::::1;::::0;;4017:44;;5191:25:170;;;4017:44:115::1;::::0;5164:18:170;4017:44:115::1;;;;;;;;3861:554;;;4092:21;::::0;;::::1;;::::0;;;:15:::1;:21;::::0;;;;;;;:38;;;;;;;;:52;;;::::1;::::0;;::::1;;::::0;;4162:34;::::1;4158:247;;4221:55;::::0;;16635:25:170;;;4221:55:115::1;16696::170::0;;;16691:2;16676:18;;16669:83;4221:55:115;::::1;::::0;::::1;::::0;16608:18:170;4221:55:115::1;16429:329:170::0;4158:247:115::1;4342:4;4320:70;;;4348:15;4365:11;4378;4320:70;;;;;;;17029:25:170::0;;;17073:42;17151:15;;;17146:2;17131:18;;17124:43;17203:15;17198:2;17183:18;;17176:43;17017:2;17002:18;;16763:462;4320:70:115::1;;;;;;;;4158:247;3717:704;;3604:817:::0;;:::o;2981:600:112:-;1614:10:109;1779:12:111;:10;:12::i;:::-;:26;;;1771:69;;;;;;;15533:2:170;1771:69:111;;;15515:21:170;15572:2;15552:18;;;15545:30;15611:32;15591:18;;;15584:60;15661:18;;1771:69:111;15331:354:170;1771:69:111;3107:9:112::1;3132:12;:10;:12::i;:::-;3107:39:::0;-1:-1:-1;3156:18:112::1;::::0;3184:267:::1;3204:20:::0;;::::1;3184:267;;;3245:46;3260:4;3266:9;;3276:1;3266:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3288:1;3245:14;:46::i;:::-;3309:5:::0;;3305:136:::1;;3349:9;;3359:1;3349:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3334:27;;;;3305:136;;;3414:9;;3424:1;3414:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3400:26;;3305:136;3226:3:::0;::::1;::::0;::::1;:::i;:::-;;;;3184:267;;;-1:-1:-1::0;3469:27:112;;;::::1;::::0;;::::1;;3461:61;;;::::0;::::1;::::0;;16281:2:170;3461:61:112::1;::::0;::::1;16263:21:170::0;16320:2;16300:18;;;16293:30;16359:23;16339:18;;;16332:51;16400:18;;3461:61:112::1;16079:345:170::0;3461:61:112::1;3532:42;3554:12;3568:5;3532:21;:42::i;811:165:113:-:0;1614:10:109;1779:12:111;:10;:12::i;:::-;:26;;;1771:69;;;;;;;15533:2:170;1771:69:111;;;15515:21:170;15572:2;15552:18;;;15545:30;15611:32;15591:18;;;15584:60;15661:18;;1771:69:111;15331:354:170;1771:69:111;905:64:113::1;933:12;:10;:12::i;:::-;949:8;959:9;905:14;:64::i;:::-;811:165:::0;;:::o;1187:625:112:-;1614:10:109;1779:12:111;:10;:12::i;:::-;:26;;;1771:69;;;;;;;15533:2:170;1771:69:111;;;15515:21:170;15572:2;15552:18;;;15545:30;15611:32;15591:18;;;15584:60;15661:18;;1771:69:111;15331:354:170;1771:69:111;1614:10:109;1392:25:112;;;::::1;::::0;;1384:58:::1;;;::::0;::::1;::::0;;17432:2:170;1384:58:112::1;::::0;::::1;17414:21:170::0;17471:2;17451:18;;;17444:30;17510:22;17490:18;;;17483:50;17550:18;;1384:58:112::1;17230:344:170::0;1384:58:112::1;1467:20;::::0;::::1;1452:12;1467:20:::0;;;:14:::1;:20;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;::::1;;1514:9:::0;:21;::::1;;;;1528:7;1527:8;1514:21;1510:296;;;1551:20;::::0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;;:40;;;::::1;1587:4;1551:40;::::0;;1610:33;6494:98:170;;;1610:33:112::1;::::0;6467:18:170;1610:33:112::1;6350:248:170::0;1510:296:112::1;1665:9;1664:10;:21;;;;;1678:7;1664:21;1660:146;;;1708:20;::::0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;;1701:40;;;::::1;::::0;;1760:35;6494:98:170;;;1760:35:112::1;::::0;6467:18:170;1760:35:112::1;6350:248:170::0;2922:153:111;1614:10:109;2968:9:111;3056:12;:10;:12::i;:::-;3047:21;;2922:153;;:::o;707:498:108:-;787:4;822:40;;;837:25;822:40;;:112;;-1:-1:-1;878:56:108;;;893:41;878:56;822:112;:174;;;-1:-1:-1;950:46:108;;;965:31;950:46;822:174;:239;;;-1:-1:-1;1012:49:108;;;1027:34;1012:49;822:239;:307;;;-1:-1:-1;1077:52:108;;;1092:37;1077:52;822:307;:376;;;-1:-1:-1;1145:53:108;;;1160:38;1145:53;803:395;707:498;-1:-1:-1;;707:498:108:o;8244:262:115:-;8359:12;8414:4;8407:12;;8428:4;8421:12;;8435:15;8479:8;8489:7;8462:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;8452:46;;8462:35;8452:46;;;;18162:66:170;18249:15;;;8390:109:115;;;18237:28:170;;;;18294:15;;;;18281:11;;;18274:36;18326:11;;;18319:27;18362:12;;;18355:28;18399:12;;8390:109:115;;;;;;;;;;;;8383:116;;8244:262;;;;;:::o;7512:707::-;7618:12;7642:24;7669:155;7707:4;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7795:17;;;;;;5191:25:170;;;2656:66:115;;5164:18:170;7795:17:115;;;;;;;;;;;;;7785:28;;7795:17;7785:28;;;;7774:40;;;5191:25:170;5164:18;7774:40:115;;;;;;;;;;;;7669:24;:155::i;:::-;7856:22;;;;;;7892:16;;7642:182;;-1:-1:-1;7856:22:115;7834:19;7892:21;7888:274;;7968:32;;;;;;;;5191:25:170;;;7968:19:115;;;;;;5164:18:170;;7968:32:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8004:1;7968:37;7960:67;;;;;;;19002:2:170;7960:67:115;;;18984:21:170;19041:2;19021:18;;;19014:30;19080:19;19060:18;;;19053:47;19117:18;;7960:67:115;18800:341:170;7960:67:115;7888:274;;;8094:57;;;;;:20;;;;;;:57;;8115:11;;8128;;8141:9;;8094:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7888:274;-1:-1:-1;8179:33:115;;7512:707;-1:-1:-1;;;;;7512:707:115:o;1053:379:109:-;1098:14;1151:2;1132:8;:21;;1124:57;;;;;;;19801:2:170;1124:57:109;;;19783:21:170;19840:2;19820:18;;;19813:30;19879:25;19859:18;;;19852:53;19922:18;;1124:57:109;19599:347:170;1124:57:109;-1:-1:-1;1391:23:109;1395:14;1391:23;1378:37;1374:2;1370:46;;1053:379::o;570:173:114:-;641:12;709:8;:25;;725:8;709:25;;;720:1;709:25;696:7;680:25;;:55;672:64;;665:71;;570:173;;;;:::o;1889:768:111:-;1647:22:114;2062:17:111;;;1982:18;2062:17;;;;;;;;;;;:27;;;;;;;;;;;1647:22:114;;;;;;2167:33:111;;:70;;;;-1:-1:-1;2204:33:111;;;;;2167:70;2163:488;;;2260:17;;;:11;:17;;;;;;;;;;;:27;;;;;;;;;;;;2253:34;;;;2306:33;6494:98:170;;;2306:33:111;;6467:18:170;2306:33:111;;;;;;;;2163:488;;;2370:17;;;;:11;:17;;;;;;;;;;;:27;;;;;;;;;;:39;;;2427:33;;2423:218;;2485:42;;;20153:66:170;20141:79;;20123:98;;20252:2;20237:18;;20230:34;;;2485:42:111;;;;;;20096:18:170;2485:42:111;19951:319:170;2423:218:111;2571:55;;;20505:66:170;20493:79;;20475:98;;20604:2;20589:18;;20582:34;;;20632:18;;;20625:34;;;2571:55:111;;;;;;20463:2:170;20448:18;2571:55:111;;;;;;;2423:218;1969:688;;;1889:768;;;:::o;717:184:170:-;769:77;766:1;759:88;866:4;863:1;856:15;890:4;887:1;880:15;906:128;973:9;;;994:11;;;991:37;;;1008:18;;:::i;1039:331::-;1144:9;1155;1197:8;1185:10;1182:24;1179:44;;;1219:1;1216;1209:12;1179:44;1248:6;1238:8;1235:20;1232:40;;;1268:1;1265;1258:12;1232:40;-1:-1:-1;;1294:23:170;;;1339:25;;;;;-1:-1:-1;1039:331:170:o;1375:780::-;1615:4;1644:42;1725:2;1717:6;1713:15;1702:9;1695:34;1777:2;1769:6;1765:15;1760:2;1749:9;1745:18;1738:43;;1817:6;1812:2;1801:9;1797:18;1790:34;1860:3;1855:2;1844:9;1840:18;1833:31;1901:6;1895:3;1884:9;1880:19;1873:35;1959:6;1951;1945:3;1934:9;1930:19;1917:49;2016:1;2010:3;2001:6;1990:9;1986:22;1982:32;1975:43;2145:3;2075:66;2070:2;2062:6;2058:15;2054:88;2043:9;2039:104;2035:114;2027:122;;1375:780;;;;;;;;:::o;2160:184::-;2212:77;2209:1;2202:88;2309:4;2306:1;2299:15;2333:4;2330:1;2323:15;2349:334;2420:2;2414:9;2476:2;2466:13;;2481:66;2462:86;2450:99;;2579:18;2564:34;;2600:22;;;2561:62;2558:88;;;2626:18;;:::i;:::-;2662:2;2655:22;2349:334;;-1:-1:-1;2349:334:170:o;2688:245::-;2736:4;2769:18;2761:6;2758:30;2755:56;;;2791:18;;:::i;:::-;-1:-1:-1;2848:2:170;2836:15;2853:66;2832:88;2922:4;2828:99;;2688:245::o;2938:250::-;3023:1;3033:113;3047:6;3044:1;3041:13;3033:113;;;3123:11;;;3117:18;3104:11;;;3097:39;3069:2;3062:10;3033:113;;;-1:-1:-1;;3180:1:170;3162:16;;3155:27;2938:250::o;3193:647::-;3272:6;3325:2;3313:9;3304:7;3300:23;3296:32;3293:52;;;3341:1;3338;3331:12;3293:52;3374:9;3368:16;3407:18;3399:6;3396:30;3393:50;;;3439:1;3436;3429:12;3393:50;3462:22;;3515:4;3507:13;;3503:27;-1:-1:-1;3493:55:170;;3544:1;3541;3534:12;3493:55;3573:2;3567:9;3598:48;3614:31;3642:2;3614:31;:::i;:::-;3598:48;:::i;:::-;3669:2;3662:5;3655:17;3709:7;3704:2;3699;3695;3691:11;3687:20;3684:33;3681:53;;;3730:1;3727;3720:12;3681:53;3743:67;3807:2;3802;3795:5;3791:14;3786:2;3782;3778:11;3743:67;:::i;:::-;3829:5;3193:647;-1:-1:-1;;;;;3193:647:170:o;3845:177::-;3930:66;3923:5;3919:78;3912:5;3909:89;3899:117;;4012:1;4009;4002:12;3899:117;3845:177;:::o;4027:245::-;4085:6;4138:2;4126:9;4117:7;4113:23;4109:32;4106:52;;;4154:1;4151;4144:12;4106:52;4193:9;4180:23;4212:30;4236:5;4212:30;:::i;4469:160::-;4561:42;4554:5;4550:54;4543:5;4540:65;4530:93;;4619:1;4616;4609:12;4634:406;4715:6;4723;4776:2;4764:9;4755:7;4751:23;4747:32;4744:52;;;4792:1;4789;4782:12;4744:52;4831:9;4818:23;4850:37;4881:5;4850:37;:::i;:::-;4906:5;-1:-1:-1;4963:2:170;4948:18;;4935:32;4976;4935;4976;:::i;:::-;5027:7;5017:17;;;4634:406;;;;;:::o;5227:347::-;5278:8;5288:6;5342:3;5335:4;5327:6;5323:17;5319:27;5309:55;;5360:1;5357;5350:12;5309:55;-1:-1:-1;5383:20:170;;5426:18;5415:30;;5412:50;;;5458:1;5455;5448:12;5412:50;5495:4;5487:6;5483:17;5471:29;;5547:3;5540:4;5531:6;5523;5519:19;5515:30;5512:39;5509:59;;;5564:1;5561;5554:12;5509:59;5227:347;;;;;:::o;5579:766::-;5676:6;5684;5692;5700;5708;5761:3;5749:9;5740:7;5736:23;5732:33;5729:53;;;5778:1;5775;5768:12;5729:53;5817:9;5804:23;5836:37;5867:5;5836:37;:::i;:::-;5892:5;-1:-1:-1;5949:2:170;5934:18;;5921:32;5962:39;5921:32;5962:39;:::i;:::-;6020:7;-1:-1:-1;6074:2:170;6059:18;;6046:32;;-1:-1:-1;6129:2:170;6114:18;;6101:32;6156:18;6145:30;;6142:50;;;6188:1;6185;6178:12;6142:50;6227:58;6277:7;6268:6;6257:9;6253:22;6227:58;:::i;:::-;5579:766;;;;-1:-1:-1;5579:766:170;;-1:-1:-1;6304:8:170;;6201:84;5579:766;-1:-1:-1;;;5579:766:170:o;6603:477::-;6682:6;6690;6698;6751:2;6739:9;6730:7;6726:23;6722:32;6719:52;;;6767:1;6764;6757:12;6719:52;6803:9;6790:23;6780:33;;6864:2;6853:9;6849:18;6836:32;6891:18;6883:6;6880:30;6877:50;;;6923:1;6920;6913:12;6877:50;6962:58;7012:7;7003:6;6992:9;6988:22;6962:58;:::i;:::-;6603:477;;7039:8;;-1:-1:-1;6936:84:170;;-1:-1:-1;;;;6603:477:170:o;7085:367::-;7148:8;7158:6;7212:3;7205:4;7197:6;7193:17;7189:27;7179:55;;7230:1;7227;7220:12;7179:55;-1:-1:-1;7253:20:170;;7296:18;7285:30;;7282:50;;;7328:1;7325;7318:12;7282:50;7365:4;7357:6;7353:17;7341:29;;7425:3;7418:4;7408:6;7405:1;7401:14;7393:6;7389:27;7385:38;7382:47;7379:67;;;7442:1;7439;7432:12;7457:570;7551:6;7559;7567;7620:2;7608:9;7599:7;7595:23;7591:32;7588:52;;;7636:1;7633;7626:12;7588:52;7675:9;7662:23;7694:30;7718:5;7694:30;:::i;:::-;7743:5;-1:-1:-1;7799:2:170;7784:18;;7771:32;7826:18;7815:30;;7812:50;;;7858:1;7855;7848:12;7812:50;7897:70;7959:7;7950:6;7939:9;7935:22;7897:70;:::i;8032:353::-;8132:6;8140;8193:2;8181:9;8172:7;8168:23;8164:32;8161:52;;;8209:1;8206;8199:12;8161:52;8245:9;8232:23;8222:33;;8305:2;8294:9;8290:18;8277:32;8318:37;8349:5;8318:37;:::i;8390:335::-;8472:6;8480;8533:2;8521:9;8512:7;8508:23;8504:32;8501:52;;;8549:1;8546;8539:12;8501:52;8588:9;8575:23;8607:37;8638:5;8607:37;:::i;:::-;8663:5;8715:2;8700:18;;;;8687:32;;-1:-1:-1;;;8390:335:170:o;9567:313::-;9634:6;9642;9695:2;9683:9;9674:7;9670:23;9666:32;9663:52;;;9711:1;9708;9701:12;9663:52;9750:9;9737:23;9769:30;9793:5;9769:30;:::i;9885:414::-;9949:6;9957;10010:2;9998:9;9989:7;9985:23;9981:32;9978:52;;;10026:1;10023;10016:12;9978:52;10065:9;10052:23;10084:30;10108:5;10084:30;:::i;:::-;10133:5;-1:-1:-1;10190:2:170;10175:18;;10162:32;10232:15;;10225:23;10213:36;;10203:64;;10263:1;10260;10253:12;10304:1350;10464:6;10472;10480;10488;10496;10504;10512;10520;10573:3;10561:9;10552:7;10548:23;10544:33;10541:53;;;10590:1;10587;10580:12;10541:53;10629:9;10616:23;10648:37;10679:5;10648:37;:::i;:::-;10704:5;-1:-1:-1;10761:2:170;10746:18;;10733:32;10774:39;10733:32;10774:39;:::i;:::-;10832:7;-1:-1:-1;10890:2:170;10875:18;;10862:32;10913:18;10943:14;;;10940:34;;;10970:1;10967;10960:12;10940:34;11009:70;11071:7;11062:6;11051:9;11047:22;11009:70;:::i;:::-;11098:8;;-1:-1:-1;10983:96:170;-1:-1:-1;11186:2:170;11171:18;;11158:32;;-1:-1:-1;11202:16:170;;;11199:36;;;11231:1;11228;11221:12;11199:36;11270:72;11334:7;11323:8;11312:9;11308:24;11270:72;:::i;:::-;11361:8;;-1:-1:-1;11244:98:170;-1:-1:-1;11449:3:170;11434:19;;11421:33;;-1:-1:-1;11466:16:170;;;11463:36;;;11495:1;11492;11485:12;11463:36;;11534:60;11586:7;11575:8;11564:9;11560:24;11534:60;:::i;:::-;10304:1350;;;;-1:-1:-1;10304:1350:170;;-1:-1:-1;10304:1350:170;;;;;;11613:8;-1:-1:-1;;;10304:1350:170:o;11659:835::-;11765:6;11773;11781;11789;11797;11805;11858:3;11846:9;11837:7;11833:23;11829:33;11826:53;;;11875:1;11872;11865:12;11826:53;11914:9;11901:23;11933:37;11964:5;11933:37;:::i;:::-;11989:5;-1:-1:-1;12046:2:170;12031:18;;12018:32;12059:39;12018:32;12059:39;:::i;:::-;12117:7;-1:-1:-1;12171:2:170;12156:18;;12143:32;;-1:-1:-1;12222:2:170;12207:18;;12194:32;;-1:-1:-1;12277:3:170;12262:19;;12249:33;12305:18;12294:30;;12291:50;;;12337:1;12334;12327:12;12291:50;12376:58;12426:7;12417:6;12406:9;12402:22;12376:58;:::i;:::-;11659:835;;;;-1:-1:-1;11659:835:170;;-1:-1:-1;11659:835:170;;12453:8;;11659:835;-1:-1:-1;;;11659:835:170:o;12499:248::-;12567:6;12575;12628:2;12616:9;12607:7;12603:23;12599:32;12596:52;;;12644:1;12641;12634:12;12596:52;-1:-1:-1;;12667:23:170;;;12737:2;12722:18;;;12709:32;;-1:-1:-1;12499:248:170:o;12752:462::-;12794:5;12847:3;12840:4;12832:6;12828:17;12824:27;12814:55;;12865:1;12862;12855:12;12814:55;12901:6;12888:20;12932:48;12948:31;12976:2;12948:31;:::i;12932:48::-;13005:2;12996:7;12989:19;13051:3;13044:4;13039:2;13031:6;13027:15;13023:26;13020:35;13017:55;;;13068:1;13065;13058:12;13017:55;13133:2;13126:4;13118:6;13114:17;13107:4;13098:7;13094:18;13081:55;13181:1;13156:16;;;13174:4;13152:27;13145:38;;;;13160:7;12752:462;-1:-1:-1;;;12752:462:170:o;13219:676::-;13323:6;13331;13339;13347;13400:3;13388:9;13379:7;13375:23;13371:33;13368:53;;;13417:1;13414;13407:12;13368:53;13453:9;13440:23;13430:33;;13510:2;13499:9;13495:18;13482:32;13472:42;;13565:2;13554:9;13550:18;13537:32;13588:18;13629:2;13621:6;13618:14;13615:34;;;13645:1;13642;13635:12;13615:34;13668:49;13709:7;13700:6;13689:9;13685:22;13668:49;:::i;:::-;13658:59;;13770:2;13759:9;13755:18;13742:32;13726:48;;13799:2;13789:8;13786:16;13783:36;;;13815:1;13812;13805:12;13783:36;;13838:51;13881:7;13870:8;13859:9;13855:24;13838:51;:::i;:::-;13828:61;;;13219:676;;;;;;;:::o;13900:329::-;13941:3;13979:5;13973:12;14006:6;14001:3;13994:19;14022:76;14091:6;14084:4;14079:3;14075:14;14068:4;14061:5;14057:16;14022:76;:::i;:::-;14143:2;14131:15;14148:66;14127:88;14118:98;;;;14218:4;14114:109;;13900:329;-1:-1:-1;;13900:329:170:o;14234:838::-;14552:4;14581:42;14662:2;14654:6;14650:15;14639:9;14632:34;14714:2;14706:6;14702:15;14697:2;14686:9;14682:18;14675:43;;14754:6;14749:2;14738:9;14734:18;14727:34;14797:6;14792:2;14781:9;14777:18;14770:34;14841:6;14835:3;14824:9;14820:19;14813:35;14885:3;14879;14868:9;14864:19;14857:32;14912:45;14952:3;14941:9;14937:19;14929:6;14912:45;:::i;:::-;15006:9;14998:6;14994:22;14988:3;14977:9;14973:19;14966:51;15034:32;15059:6;15051;15034:32;:::i;:::-;15026:40;14234:838;-1:-1:-1;;;;;;;;;;14234:838:170:o;15077:249::-;15146:6;15199:2;15187:9;15178:7;15174:23;15170:32;15167:52;;;15215:1;15212;15205:12;15167:52;15247:9;15241:16;15266:30;15290:5;15266:30;:::i;15690:184::-;15742:77;15739:1;15732:88;15839:4;15836:1;15829:15;15863:4;15860:1;15853:15;15879:195;15918:3;15949:66;15942:5;15939:77;15936:103;;16019:18;;:::i;:::-;-1:-1:-1;16066:1:170;16055:13;;15879:195::o;17579:359::-;17766:6;17761:3;17754:19;17736:3;17802:6;17796:13;17818:73;17884:6;17879:2;17874:3;17870:12;17865:2;17857:6;17853:15;17818:73;:::i;:::-;17911:16;;;;17929:2;17907:25;;17579:359;-1:-1:-1;;;17579:359:170:o;18422:184::-;18492:6;18545:2;18533:9;18524:7;18520:23;18516:32;18513:52;;;18561:1;18558;18551:12;18513:52;-1:-1:-1;18584:16:170;;18422:184;-1:-1:-1;18422:184:170:o;19146:448::-;19367:6;19356:9;19349:25;19410:2;19405;19394:9;19390:18;19383:30;19330:4;19436:44;19476:2;19465:9;19461:18;19453:6;19436:44;:::i;:::-;19528:9;19520:6;19516:22;19511:2;19500:9;19496:18;19489:50;19556:32;19581:6;19573;19556:32;:::i;:::-;19548:40;19146:448;-1:-1:-1;;;;;;19146:448:170:o", "linkReferences": {} }, "methodIdentifiers": { @@ -535,7 +535,7 @@ "setSupportedInterface(bytes4,bool)": "7f73528b", "supportsInterface(bytes4)": "01ffc9a7" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract ISafeSignatureVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"AddedDomainVerifier\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"AddedInterface\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"method\",\"type\":\"bytes32\"}],\"name\":\"AddedSafeMethod\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract ISafeSignatureVerifier\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract ISafeSignatureVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"ChangedDomainVerifier\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"oldMethod\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newMethod\",\"type\":\"bytes32\"}],\"name\":\"ChangedSafeMethod\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"}],\"name\":\"RemovedDomainVerifier\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"RemovedInterface\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"RemovedSafeMethod\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"bytes32[]\",\"name\":\"handlerWithSelectors\",\"type\":\"bytes32[]\"}],\"name\":\"addSupportedInterfaceBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Safe\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"domainVerifiers\",\"outputs\":[{\"internalType\":\"contract ISafeSignatureVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magic\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"name\":\"removeSupportedInterfaceBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Safe\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"safeInterfaces\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Safe\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"safeMethods\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISafeSignatureVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setDomainVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"internalType\":\"bytes32\",\"name\":\"newMethod\",\"type\":\"bytes32\"}],\"name\":\"setSafeMethod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"bool\",\"name\":\"supported\",\"type\":\"bool\"}],\"name\":\"setSupportedInterface\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Designed to be used with Safe >= 1.3.0.\",\"kind\":\"dev\",\"methods\":{\"addSupportedInterfaceBatch(bytes4,bytes32[])\":{\"params\":{\"_interfaceId\":\"The interface id to set\",\"handlerWithSelectors\":\"The handlers encoded with the 4-byte selectors of the methods\"}},\"isValidSignature(bytes32,bytes)\":{\"details\":\"The signature format is the same as the one used by the Safe contract\",\"params\":{\"_hash\":\"Hash of the data that is signed\",\"signature\":\"The signature to be verified\"},\"returns\":{\"magic\":\"Standardised ERC1271 return value\"}},\"removeSupportedInterfaceBatch(bytes4,bytes4[])\":{\"params\":{\"_interfaceId\":\"the interface id to remove\",\"selectors\":\"The selectors of the methods to remove\"}},\"setDomainVerifier(bytes32,address)\":{\"params\":{\"domainSeparator\":\"The domainSeparator authorised for the `ISafeSignatureVerifier`\",\"newVerifier\":\"A contract that implements `ISafeSignatureVerifier`\"}},\"setSafeMethod(bytes4,bytes32)\":{\"params\":{\"newMethod\":\"A contract that implements the `IFallbackMethod` or `IStaticFallbackMethod` interface\",\"selector\":\"The `bytes4` selector of the method to set the handler for\"}},\"setSupportedInterface(bytes4,bool)\":{\"params\":{\"interfaceId\":\"The interface id whose support is to be set\",\"supported\":\"True if the interface is supported, false otherwise\"}},\"supportsInterface(bytes4)\":{\"details\":\"Inheriting contracts should override `_supportsInterface` to add support for additional interfaces\",\"params\":{\"interfaceId\":\"The ERC165 interface id to check\"},\"returns\":{\"_0\":\"True if the interface is supported\"}}},\"title\":\"ExtensibleFallbackHandler - A fully extensible fallback handler for Safes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addSupportedInterfaceBatch(bytes4,bytes32[])\":{\"notice\":\"Batch add selectors for an interface.\"},\"isValidSignature(bytes32,bytes)\":{\"notice\":\"Implements ERC1271 interface for smart contract EIP-712 signature validation\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"notice\":\"Handles ERC1155 Token batch callback. return Standardized onERC1155BatchReceived return value.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"notice\":\"Handles ERC1155 Token callback. return Standardized onERC1155Received return value.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"notice\":\"Handles ERC721 Token callback. return Standardized onERC721Received return value.\"},\"removeSupportedInterfaceBatch(bytes4,bytes4[])\":{\"notice\":\"Batch remove selectors for an interface.\"},\"setDomainVerifier(bytes32,address)\":{\"notice\":\"Setter for the signature muxer\"},\"setSafeMethod(bytes4,bytes32)\":{\"notice\":\"Setter for custom method handlers\"},\"setSupportedInterface(bytes4,bool)\":{\"notice\":\"Setter to indicate if an interface is supported (and thus reported by ERC165 supportsInterface)\"},\"supportsInterface(bytes4)\":{\"notice\":\"Implements ERC165 interface detection for the supported interfaces\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe/contracts/handler/ExtensibleFallbackHandler.sol\":\"ExtensibleFallbackHandler\"},\"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/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\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract ISafeSignatureVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"AddedDomainVerifier\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"AddedInterface\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"method\",\"type\":\"bytes32\"}],\"name\":\"AddedSafeMethod\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract ISafeSignatureVerifier\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract ISafeSignatureVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"ChangedDomainVerifier\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"oldMethod\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newMethod\",\"type\":\"bytes32\"}],\"name\":\"ChangedSafeMethod\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"}],\"name\":\"RemovedDomainVerifier\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"RemovedInterface\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract Safe\",\"name\":\"safe\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"}],\"name\":\"RemovedSafeMethod\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"bytes32[]\",\"name\":\"handlerWithSelectors\",\"type\":\"bytes32[]\"}],\"name\":\"addSupportedInterfaceBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Safe\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"domainVerifiers\",\"outputs\":[{\"internalType\":\"contract ISafeSignatureVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magic\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"name\":\"removeSupportedInterfaceBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Safe\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"safeInterfaces\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Safe\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"safeMethods\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISafeSignatureVerifier\",\"name\":\"newVerifier\",\"type\":\"address\"}],\"name\":\"setDomainVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"internalType\":\"bytes32\",\"name\":\"newMethod\",\"type\":\"bytes32\"}],\"name\":\"setSafeMethod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"bool\",\"name\":\"supported\",\"type\":\"bool\"}],\"name\":\"setSupportedInterface\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Designed to be used with Safe >= 1.3.0.\",\"kind\":\"dev\",\"methods\":{\"addSupportedInterfaceBatch(bytes4,bytes32[])\":{\"params\":{\"_interfaceId\":\"The interface id to set\",\"handlerWithSelectors\":\"The handlers encoded with the 4-byte selectors of the methods\"}},\"isValidSignature(bytes32,bytes)\":{\"details\":\"The signature format is the same as the one used by the Safe contract\",\"params\":{\"_hash\":\"Hash of the data that is signed\",\"signature\":\"The signature to be verified\"},\"returns\":{\"magic\":\"Standardised ERC1271 return value\"}},\"removeSupportedInterfaceBatch(bytes4,bytes4[])\":{\"params\":{\"_interfaceId\":\"the interface id to remove\",\"selectors\":\"The selectors of the methods to remove\"}},\"setDomainVerifier(bytes32,address)\":{\"params\":{\"domainSeparator\":\"The domainSeparator authorised for the `ISafeSignatureVerifier`\",\"newVerifier\":\"A contract that implements `ISafeSignatureVerifier`\"}},\"setSafeMethod(bytes4,bytes32)\":{\"params\":{\"newMethod\":\"A contract that implements the `IFallbackMethod` or `IStaticFallbackMethod` interface\",\"selector\":\"The `bytes4` selector of the method to set the handler for\"}},\"setSupportedInterface(bytes4,bool)\":{\"params\":{\"interfaceId\":\"The interface id whose support is to be set\",\"supported\":\"True if the interface is supported, false otherwise\"}},\"supportsInterface(bytes4)\":{\"details\":\"Inheriting contracts should override `_supportsInterface` to add support for additional interfaces\",\"params\":{\"interfaceId\":\"The ERC165 interface id to check\"},\"returns\":{\"_0\":\"True if the interface is supported\"}}},\"title\":\"ExtensibleFallbackHandler - A fully extensible fallback handler for Safes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addSupportedInterfaceBatch(bytes4,bytes32[])\":{\"notice\":\"Batch add selectors for an interface.\"},\"isValidSignature(bytes32,bytes)\":{\"notice\":\"Implements ERC1271 interface for smart contract EIP-712 signature validation\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"notice\":\"Handles ERC1155 Token batch callback. return Standardized onERC1155BatchReceived return value.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"notice\":\"Handles ERC1155 Token callback. return Standardized onERC1155Received return value.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"notice\":\"Handles ERC721 Token callback. return Standardized onERC721Received return value.\"},\"removeSupportedInterfaceBatch(bytes4,bytes4[])\":{\"notice\":\"Batch remove selectors for an interface.\"},\"setDomainVerifier(bytes32,address)\":{\"notice\":\"Setter for the signature muxer\"},\"setSafeMethod(bytes4,bytes32)\":{\"notice\":\"Setter for custom method handlers\"},\"setSupportedInterface(bytes4,bool)\":{\"notice\":\"Setter to indicate if an interface is supported (and thus reported by ERC165 supportsInterface)\"},\"supportsInterface(bytes4)\":{\"notice\":\"Implements ERC165 interface detection for the supported interfaces\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe/contracts/handler/ExtensibleFallbackHandler.sol\":\"ExtensibleFallbackHandler\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -1143,20 +1143,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -1384,82 +1383,82 @@ }, "ast": { "absolutePath": "lib/safe/contracts/handler/ExtensibleFallbackHandler.sol", - "id": 50898, + "id": 50608, "exportedSymbols": { "EIP712": [ - 52327 + 52037 ], "ERC1155TokenReceiver": [ - 52437 + 52147 ], "ERC1271": [ - 51902 + 51612 ], "ERC165Handler": [ - 51660 + 51370 ], "ERC721TokenReceiver": [ - 52455 + 52165 ], "ExtensibleBase": [ - 51302 + 51012 ], "ExtensibleFallbackHandler": [ - 50897 + 50607 ], "FallbackHandler": [ - 51782 + 51492 ], "HandlerContext": [ - 50928 + 50638 ], "IERC165": [ - 52487 + 52197 ], "IERC165Handler": [ - 51341 + 51051 ], "IFallbackHandler": [ - 51671 + 51381 ], "IFallbackMethod": [ - 51076 + 50786 ], "ISafeSignatureVerifier": [ - 51925 + 51635 ], "ISignatureValidator": [ - 52506 + 52216 ], "ISignatureValidatorConstants": [ - 52493 + 52203 ], "ISignatureVerifierMuxer": [ - 51945 + 51655 ], "IStaticFallbackMethod": [ - 51091 + 50801 ], "MarshalLib": [ - 51888 + 51598 ], "Safe": [ - 49141 + 48851 ], "SignatureVerifierMuxer": [ - 52294 + 52004 ], "TokenCallbacks": [ - 52400 + 52110 ] }, "nodeType": "SourceUnit", - "src": "42:1166:109", + "src": "42:1166:108", "nodes": [ { - "id": 50831, + "id": 50541, "nodeType": "PragmaDirective", - "src": "42:31:109", + "src": "42:31:108", "nodes": [], "literals": [ "solidity", @@ -1472,71 +1471,71 @@ ] }, { - "id": 50832, + "id": 50542, "nodeType": "ImportDirective", - "src": "75:42:109", + "src": "75:42:108", "nodes": [], "absolutePath": "lib/safe/contracts/handler/extensible/FallbackHandler.sol", "file": "./extensible/FallbackHandler.sol", "nameLocation": "-1:-1:-1", - "scope": 50898, - "sourceUnit": 51783, + "scope": 50608, + "sourceUnit": 51493, "symbolAliases": [], "unitAlias": "" }, { - "id": 50833, + "id": 50543, "nodeType": "ImportDirective", - "src": "118:49:109", + "src": "118:49:108", "nodes": [], "absolutePath": "lib/safe/contracts/handler/extensible/SignatureVerifierMuxer.sol", "file": "./extensible/SignatureVerifierMuxer.sol", "nameLocation": "-1:-1:-1", - "scope": 50898, - "sourceUnit": 52328, + "scope": 50608, + "sourceUnit": 52038, "symbolAliases": [], "unitAlias": "" }, { - "id": 50834, + "id": 50544, "nodeType": "ImportDirective", - "src": "168:41:109", + "src": "168:41:108", "nodes": [], "absolutePath": "lib/safe/contracts/handler/extensible/TokenCallbacks.sol", "file": "./extensible/TokenCallbacks.sol", "nameLocation": "-1:-1:-1", - "scope": 50898, - "sourceUnit": 52401, + "scope": 50608, + "sourceUnit": 52111, "symbolAliases": [], "unitAlias": "" }, { - "id": 50835, + "id": 50545, "nodeType": "ImportDirective", - "src": "210:40:109", + "src": "210:40:108", "nodes": [], "absolutePath": "lib/safe/contracts/handler/extensible/ERC165Handler.sol", "file": "./extensible/ERC165Handler.sol", "nameLocation": "-1:-1:-1", - "scope": 50898, - "sourceUnit": 51661, + "scope": 50608, + "sourceUnit": 51371, "symbolAliases": [], "unitAlias": "" }, { - "id": 50897, + "id": 50607, "nodeType": "ContractDefinition", - "src": "429:778:109", + "src": "429:778:108", "nodes": [ { - "id": 50896, + "id": 50606, "nodeType": "FunctionDefinition", - "src": "707:498:109", + "src": "707:498:108", "nodes": [], "body": { - "id": 50895, + "id": 50605, "nodeType": "Block", - "src": "793:412:109", + "src": "793:412:108", "nodes": [], "statements": [ { @@ -1545,7 +1544,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 50893, + "id": 50603, "isConstant": false, "isLValue": false, "isPure": false, @@ -1555,7 +1554,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 50886, + "id": 50596, "isConstant": false, "isLValue": false, "isPure": false, @@ -1565,7 +1564,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 50879, + "id": 50589, "isConstant": false, "isLValue": false, "isPure": false, @@ -1575,7 +1574,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 50872, + "id": 50582, "isConstant": false, "isLValue": false, "isPure": false, @@ -1585,7 +1584,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 50865, + "id": 50575, "isConstant": false, "isLValue": false, "isPure": false, @@ -1595,18 +1594,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 50858, + "id": 50568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 50853, + "id": 50563, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50847, - "src": "822:11:109", + "referencedDeclaration": 50557, + "src": "822:11:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -1618,14 +1617,14 @@ "expression": { "arguments": [ { - "id": 50855, + "id": 50565, "name": "ERC1271", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 51902, - "src": "842:7:109", + "referencedDeclaration": 51612, + "src": "842:7:108", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC1271_$51902_$", + "typeIdentifier": "t_type$_t_contract$_ERC1271_$51612_$", "typeString": "type(contract ERC1271)" } } @@ -1633,22 +1632,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_type$_t_contract$_ERC1271_$51902_$", + "typeIdentifier": "t_type$_t_contract$_ERC1271_$51612_$", "typeString": "type(contract ERC1271)" } ], - "id": 50854, + "id": 50564, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "837:4:109", + "src": "837:4:108", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 50856, + "id": 50566, "isConstant": false, "isLValue": false, "isPure": true, @@ -1657,28 +1656,28 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "837:13:109", + "src": "837:13:108", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_ERC1271_$51902", + "typeIdentifier": "t_magic_meta_type_t_contract$_ERC1271_$51612", "typeString": "type(contract ERC1271)" } }, - "id": 50857, + "id": 50567, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "851:11:109", + "memberLocation": "851:11:108", "memberName": "interfaceId", "nodeType": "MemberAccess", - "src": "837:25:109", + "src": "837:25:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "822:40:109", + "src": "822:40:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1691,18 +1690,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 50864, + "id": 50574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 50859, + "id": 50569, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50847, - "src": "878:11:109", + "referencedDeclaration": 50557, + "src": "878:11:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -1714,14 +1713,14 @@ "expression": { "arguments": [ { - "id": 50861, + "id": 50571, "name": "ISignatureVerifierMuxer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 51945, - "src": "898:23:109", + "referencedDeclaration": 51655, + "src": "898:23:108", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISignatureVerifierMuxer_$51945_$", + "typeIdentifier": "t_type$_t_contract$_ISignatureVerifierMuxer_$51655_$", "typeString": "type(contract ISignatureVerifierMuxer)" } } @@ -1729,22 +1728,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_type$_t_contract$_ISignatureVerifierMuxer_$51945_$", + "typeIdentifier": "t_type$_t_contract$_ISignatureVerifierMuxer_$51655_$", "typeString": "type(contract ISignatureVerifierMuxer)" } ], - "id": 50860, + "id": 50570, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "893:4:109", + "src": "893:4:108", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 50862, + "id": 50572, "isConstant": false, "isLValue": false, "isPure": true, @@ -1753,34 +1752,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "893:29:109", + "src": "893:29:108", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_ISignatureVerifierMuxer_$51945", + "typeIdentifier": "t_magic_meta_type_t_contract$_ISignatureVerifierMuxer_$51655", "typeString": "type(contract ISignatureVerifierMuxer)" } }, - "id": 50863, + "id": 50573, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "923:11:109", + "memberLocation": "923:11:108", "memberName": "interfaceId", "nodeType": "MemberAccess", - "src": "893:41:109", + "src": "893:41:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "878:56:109", + "src": "878:56:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "822:112:109", + "src": "822:112:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1793,18 +1792,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 50871, + "id": 50581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 50866, + "id": 50576, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50847, - "src": "950:11:109", + "referencedDeclaration": 50557, + "src": "950:11:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -1816,14 +1815,14 @@ "expression": { "arguments": [ { - "id": 50868, + "id": 50578, "name": "ERC165Handler", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 51660, - "src": "970:13:109", + "referencedDeclaration": 51370, + "src": "970:13:108", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC165Handler_$51660_$", + "typeIdentifier": "t_type$_t_contract$_ERC165Handler_$51370_$", "typeString": "type(contract ERC165Handler)" } } @@ -1831,22 +1830,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_type$_t_contract$_ERC165Handler_$51660_$", + "typeIdentifier": "t_type$_t_contract$_ERC165Handler_$51370_$", "typeString": "type(contract ERC165Handler)" } ], - "id": 50867, + "id": 50577, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "965:4:109", + "src": "965:4:108", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 50869, + "id": 50579, "isConstant": false, "isLValue": false, "isPure": true, @@ -1855,34 +1854,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "965:19:109", + "src": "965:19:108", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_ERC165Handler_$51660", + "typeIdentifier": "t_magic_meta_type_t_contract$_ERC165Handler_$51370", "typeString": "type(contract ERC165Handler)" } }, - "id": 50870, + "id": 50580, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "985:11:109", + "memberLocation": "985:11:108", "memberName": "interfaceId", "nodeType": "MemberAccess", - "src": "965:31:109", + "src": "965:31:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "950:46:109", + "src": "950:46:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "822:174:109", + "src": "822:174:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1895,18 +1894,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 50878, + "id": 50588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 50873, + "id": 50583, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50847, - "src": "1012:11:109", + "referencedDeclaration": 50557, + "src": "1012:11:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -1918,14 +1917,14 @@ "expression": { "arguments": [ { - "id": 50875, + "id": 50585, "name": "IFallbackHandler", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 51671, - "src": "1032:16:109", + "referencedDeclaration": 51381, + "src": "1032:16:108", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IFallbackHandler_$51671_$", + "typeIdentifier": "t_type$_t_contract$_IFallbackHandler_$51381_$", "typeString": "type(contract IFallbackHandler)" } } @@ -1933,22 +1932,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_type$_t_contract$_IFallbackHandler_$51671_$", + "typeIdentifier": "t_type$_t_contract$_IFallbackHandler_$51381_$", "typeString": "type(contract IFallbackHandler)" } ], - "id": 50874, + "id": 50584, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "1027:4:109", + "src": "1027:4:108", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 50876, + "id": 50586, "isConstant": false, "isLValue": false, "isPure": true, @@ -1957,34 +1956,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1027:22:109", + "src": "1027:22:108", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_IFallbackHandler_$51671", + "typeIdentifier": "t_magic_meta_type_t_contract$_IFallbackHandler_$51381", "typeString": "type(contract IFallbackHandler)" } }, - "id": 50877, + "id": 50587, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1050:11:109", + "memberLocation": "1050:11:108", "memberName": "interfaceId", "nodeType": "MemberAccess", - "src": "1027:34:109", + "src": "1027:34:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "1012:49:109", + "src": "1012:49:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "822:239:109", + "src": "822:239:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1997,18 +1996,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 50885, + "id": 50595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 50880, + "id": 50590, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50847, - "src": "1077:11:109", + "referencedDeclaration": 50557, + "src": "1077:11:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -2020,14 +2019,14 @@ "expression": { "arguments": [ { - "id": 50882, + "id": 50592, "name": "ERC721TokenReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52455, - "src": "1097:19:109", + "referencedDeclaration": 52165, + "src": "1097:19:108", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721TokenReceiver_$52455_$", + "typeIdentifier": "t_type$_t_contract$_ERC721TokenReceiver_$52165_$", "typeString": "type(contract ERC721TokenReceiver)" } } @@ -2035,22 +2034,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_type$_t_contract$_ERC721TokenReceiver_$52455_$", + "typeIdentifier": "t_type$_t_contract$_ERC721TokenReceiver_$52165_$", "typeString": "type(contract ERC721TokenReceiver)" } ], - "id": 50881, + "id": 50591, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "1092:4:109", + "src": "1092:4:108", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 50883, + "id": 50593, "isConstant": false, "isLValue": false, "isPure": true, @@ -2059,34 +2058,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1092:25:109", + "src": "1092:25:108", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_ERC721TokenReceiver_$52455", + "typeIdentifier": "t_magic_meta_type_t_contract$_ERC721TokenReceiver_$52165", "typeString": "type(contract ERC721TokenReceiver)" } }, - "id": 50884, + "id": 50594, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1118:11:109", + "memberLocation": "1118:11:108", "memberName": "interfaceId", "nodeType": "MemberAccess", - "src": "1092:37:109", + "src": "1092:37:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "1077:52:109", + "src": "1077:52:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "822:307:109", + "src": "822:307:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2099,18 +2098,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 50892, + "id": 50602, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 50887, + "id": 50597, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50847, - "src": "1145:11:109", + "referencedDeclaration": 50557, + "src": "1145:11:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -2122,14 +2121,14 @@ "expression": { "arguments": [ { - "id": 50889, + "id": 50599, "name": "ERC1155TokenReceiver", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52437, - "src": "1165:20:109", + "referencedDeclaration": 52147, + "src": "1165:20:108", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$52437_$", + "typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$52147_$", "typeString": "type(contract ERC1155TokenReceiver)" } } @@ -2137,22 +2136,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$52437_$", + "typeIdentifier": "t_type$_t_contract$_ERC1155TokenReceiver_$52147_$", "typeString": "type(contract ERC1155TokenReceiver)" } ], - "id": 50888, + "id": 50598, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "1160:4:109", + "src": "1160:4:108", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 50890, + "id": 50600, "isConstant": false, "isLValue": false, "isPure": true, @@ -2161,79 +2160,79 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1160:26:109", + "src": "1160:26:108", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_ERC1155TokenReceiver_$52437", + "typeIdentifier": "t_magic_meta_type_t_contract$_ERC1155TokenReceiver_$52147", "typeString": "type(contract ERC1155TokenReceiver)" } }, - "id": 50891, + "id": 50601, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1187:11:109", + "memberLocation": "1187:11:108", "memberName": "interfaceId", "nodeType": "MemberAccess", - "src": "1160:38:109", + "src": "1160:38:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "1145:53:109", + "src": "1145:53:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "822:376:109", + "src": "822:376:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 50852, - "id": 50894, + "functionReturnParameters": 50562, + "id": 50604, "nodeType": "Return", - "src": "803:395:109" + "src": "803:395:108" } ] }, "baseFunctions": [ - 51659 + 51369 ], "documentation": { - "id": 50845, + "id": 50555, "nodeType": "StructuredDocumentation", - "src": "544:158:109", + "src": "544:158:108", "text": " Specify specific interfaces (ERC721 + ERC1155) that this contract supports.\n @param interfaceId The interface ID to check for support" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_supportsInterface", - "nameLocation": "716:18:109", + "nameLocation": "716:18:108", "overrides": { - "id": 50849, + "id": 50559, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "769:8:109" + "src": "769:8:108" }, "parameters": { - "id": 50848, + "id": 50558, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 50847, + "id": 50557, "mutability": "mutable", "name": "interfaceId", - "nameLocation": "742:11:109", + "nameLocation": "742:11:108", "nodeType": "VariableDeclaration", - "scope": 50896, - "src": "735:18:109", + "scope": 50606, + "src": "735:18:108", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2241,10 +2240,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 50846, + "id": 50556, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "735:6:109", + "src": "735:6:108", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -2253,21 +2252,21 @@ "visibility": "internal" } ], - "src": "734:20:109" + "src": "734:20:108" }, "returnParameters": { - "id": 50852, + "id": 50562, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 50851, + "id": 50561, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 50896, - "src": "787:4:109", + "scope": 50606, + "src": "787:4:108", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2275,10 +2274,10 @@ "typeString": "bool" }, "typeName": { - "id": 50850, + "id": 50560, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "787:4:109", + "src": "787:4:108", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2287,9 +2286,9 @@ "visibility": "internal" } ], - "src": "786:6:109" + "src": "786:6:108" }, - "scope": 50897, + "scope": 50607, "stateMutability": "pure", "virtual": false, "visibility": "internal" @@ -2299,97 +2298,97 @@ "baseContracts": [ { "baseName": { - "id": 50837, + "id": 50547, "name": "FallbackHandler", "nameLocations": [ - "467:15:109" + "467:15:108" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 51782, - "src": "467:15:109" + "referencedDeclaration": 51492, + "src": "467:15:108" }, - "id": 50838, + "id": 50548, "nodeType": "InheritanceSpecifier", - "src": "467:15:109" + "src": "467:15:108" }, { "baseName": { - "id": 50839, + "id": 50549, "name": "SignatureVerifierMuxer", "nameLocations": [ - "484:22:109" + "484:22:108" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 52294, - "src": "484:22:109" + "referencedDeclaration": 52004, + "src": "484:22:108" }, - "id": 50840, + "id": 50550, "nodeType": "InheritanceSpecifier", - "src": "484:22:109" + "src": "484:22:108" }, { "baseName": { - "id": 50841, + "id": 50551, "name": "TokenCallbacks", "nameLocations": [ - "508:14:109" + "508:14:108" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 52400, - "src": "508:14:109" + "referencedDeclaration": 52110, + "src": "508:14:108" }, - "id": 50842, + "id": 50552, "nodeType": "InheritanceSpecifier", - "src": "508:14:109" + "src": "508:14:108" }, { "baseName": { - "id": 50843, + "id": 50553, "name": "ERC165Handler", "nameLocations": [ - "524:13:109" + "524:13:108" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 51660, - "src": "524:13:109" + "referencedDeclaration": 51370, + "src": "524:13:108" }, - "id": 50844, + "id": 50554, "nodeType": "InheritanceSpecifier", - "src": "524:13:109" + "src": "524:13:108" } ], "canonicalName": "ExtensibleFallbackHandler", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 50836, + "id": 50546, "nodeType": "StructuredDocumentation", - "src": "252:176:109", + "src": "252:176:108", "text": " @title ExtensibleFallbackHandler - A fully extensible fallback handler for Safes\n @dev Designed to be used with Safe >= 1.3.0.\n @author mfw78 " }, "fullyImplemented": true, "linearizedBaseContracts": [ - 50897, - 51660, - 51341, - 52400, - 52455, - 52437, - 52294, - 51945, - 51902, - 51782, - 51671, - 51302, - 50928 + 50607, + 51370, + 51051, + 52110, + 52165, + 52147, + 52004, + 51655, + 51612, + 51492, + 51381, + 51012, + 50638 ], "name": "ExtensibleFallbackHandler", - "nameLocation": "438:25:109", - "scope": 50898, + "nameLocation": "438:25:108", + "scope": 50608, "usedErrors": [] } ], "license": "LGPL-3.0-only" }, - "id": 109 + "id": 108 } \ No newline at end of file diff --git a/out/GoodAfterTime.sol/GoodAfterTime.json b/out/GoodAfterTime.sol/GoodAfterTime.json index 8afaa75..f2189b6 100644 --- a/out/GoodAfterTime.sol/GoodAfterTime.json +++ b/out/GoodAfterTime.sol/GoodAfterTime.json @@ -11,6 +11,60 @@ "name": "OrderNotValid", "type": "error" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollNever", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtBlock", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtEpoch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryNextBlock", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -167,6 +221,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "validateData", + "outputs": [], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -279,21 +346,22 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b50610fa2806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a71461004657806314a2a7841461006e578063b8296fc414610083575b600080fd5b610059610054366004610771565b6100a3565b60405190151581526020015b60405180910390f35b61008161007c366004610838565b61013c565b005b610096610091366004610926565b610259565b60405161006591906109c5565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061013657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061014d8b8b8989898989610259565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461024c57604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b21565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102c686860187610cab565b90508060a0015142101561033957604080518082018252600981527f746f6f206561726c790000000000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b21565b608081015181516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152909116906370a0823190602401602060405180830381865afa1580156103ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d19190610d96565b101561043c57604080518082018252601481527f62616c616e636520696e73756666696369656e74000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b21565b600061044a84860186610daf565b61010083015151909150156105a65760008261010001518060200190518101906104749190610dc8565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16630d1003ee85606001518660000151876020015186602001516040518563ffffffff1660e01b81526004016104cb9493929190610e8f565b602060405180830381865afa1580156104e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050c9190610d96565b905061271082604001516127106105239190610f07565b61052d9083610f1a565b6105379190610f31565b8310156105a357604080518082018252601481527f707269636520636865636b6572206661696c6564000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b21565b50505b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff1681526020018360600151815260200182815260200161062f8460c001516106d7565b63ffffffff1681526020018361012001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020018360e00151151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b600063ffffffff82111561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610243565b5090565b60006020828403121561078357600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146107b357600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146107dc57600080fd5b50565b80356107ea816107ba565b919050565b60008083601f84011261080157600080fd5b50813567ffffffffffffffff81111561081957600080fd5b60208301915083602082850101111561083157600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561085857600080fd5b6108628b356107ba565b8a35995060208b0135610874816107ba565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff808211156108a657600080fd5b6108b28e838f016107ef565b909750955060c08d01359150808211156108cb57600080fd5b506108d88d828e016107ef565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2001121561091157600080fd5b60e08b0190509295989b9194979a5092959850565b600080600080600080600060a0888a03121561094157600080fd5b873561094c816107ba565b9650602088013561095c816107ba565b955060408801359450606088013567ffffffffffffffff8082111561098057600080fd5b61098c8b838c016107ef565b909650945060808a01359150808211156109a557600080fd5b506109b28a828b016107ef565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610a0b602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610a33604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610a5f60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610a948285018215159052565b5050610140838101519083015261016092830151929091019190915290565b60005b83811015610ace578181015183820152602001610ab6565b50506000910152565b60008151808452610aef816020860160208601610ab3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006107b36020830184610ad7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610140810167ffffffffffffffff81118282101715610b8757610b87610b34565b60405290565b6040516060810167ffffffffffffffff81118282101715610b8757610b87610b34565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610bf757610bf7610b34565b604052919050565b803580151581146107ea57600080fd5b600067ffffffffffffffff821115610c2957610c29610b34565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112610c6657600080fd5b8135610c79610c7482610c0f565b610bb0565b818152846020838601011115610c8e57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610cbd57600080fd5b813567ffffffffffffffff80821115610cd557600080fd5b908301906101408286031215610cea57600080fd5b610cf2610b63565b610cfb836107df565b8152610d09602084016107df565b6020820152610d1a604084016107df565b6040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c0820152610d5360e08401610bff565b60e08201526101008084013583811115610d6c57600080fd5b610d7888828701610c55565b91830191909152506101209283013592810192909252509392505050565b600060208284031215610da857600080fd5b5051919050565b600060208284031215610dc157600080fd5b5035919050565b60006020808385031215610ddb57600080fd5b825167ffffffffffffffff80821115610df357600080fd5b9084019060608287031215610e0757600080fd5b610e0f610b8d565b8251610e1a816107ba565b81528284015182811115610e2d57600080fd5b83019150601f82018713610e4057600080fd5b8151610e4e610c7482610c0f565b8181528886838601011115610e6257600080fd5b610e7182878301888701610ab3565b80868401525050604083015160408201528094505050505092915050565b848152600073ffffffffffffffffffffffffffffffffffffffff808616602084015280851660408401525060806060830152610ece6080830184610ad7565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561013657610136610ed8565b808202811582820484141761013657610136610ed8565b600082610f67577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea264697066735822122035dc2f2b19fa5013e81263fdc060f99f34eaeb7dc2968d9eeb3e9b8306a1b2bd64736f6c63430008130033", - "sourceMap": "1384:2698:143:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b50610ff8806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806314a2a78414610079578063a6ffa36c1461008e578063b8296fc41461009f575b600080fd5b61006461005f36600461078d565b6100bf565b60405190151581526020015b60405180910390f35b61008c610087366004610851565b610158565b005b61008c61009c366004610aa6565b50565b6100b26100ad366004610ae3565b610275565b6040516100709190610b82565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061015257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101698b8b8989898989610275565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461026857604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cde565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102e286860187610d01565b90508060a0015142101561035557604080518082018252600981527f746f6f206561726c790000000000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cde565b608081015181516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152909116906370a0823190602401602060405180830381865afa1580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed9190610dec565b101561045857604080518082018252601481527f62616c616e636520696e73756666696369656e74000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cde565b600061046684860186610e05565b61010083015151909150156105c25760008261010001518060200190518101906104909190610e1e565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16630d1003ee85606001518660000151876020015186602001516040518563ffffffff1660e01b81526004016104e79493929190610ee5565b602060405180830381865afa158015610504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105289190610dec565b9050612710826040015161271061053f9190610f5d565b6105499083610f70565b6105539190610f87565b8310156105bf57604080518082018252601481527f707269636520636865636b6572206661696c6564000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cde565b50505b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff1681526020018360600151815260200182815260200161064b8460c001516106f3565b63ffffffff1681526020018361012001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020018360e00151151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b600063ffffffff821115610789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f3220626974730000000000000000000000000000000000000000000000000000606482015260840161025f565b5090565b60006020828403121561079f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146107cf57600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461009c57600080fd5b8035610803816107d6565b919050565b60008083601f84011261081a57600080fd5b50813567ffffffffffffffff81111561083257600080fd5b60208301915083602082850101111561084a57600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561087157600080fd5b61087b8b356107d6565b8a35995060208b013561088d816107d6565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff808211156108bf57600080fd5b6108cb8e838f01610808565b909750955060c08d01359150808211156108e457600080fd5b506108f18d828e01610808565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2001121561092a57600080fd5b60e08b0190509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610140810167ffffffffffffffff811182821017156109925761099261093f565b60405290565b6040516060810167ffffffffffffffff811182821017156109925761099261093f565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610a0257610a0261093f565b604052919050565b600067ffffffffffffffff821115610a2457610a2461093f565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112610a6157600080fd5b8135610a74610a6f82610a0a565b6109bb565b818152846020838601011115610a8957600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610ab857600080fd5b813567ffffffffffffffff811115610acf57600080fd5b610adb84828501610a50565b949350505050565b600080600080600080600060a0888a031215610afe57600080fd5b8735610b09816107d6565b96506020880135610b19816107d6565b955060408801359450606088013567ffffffffffffffff80821115610b3d57600080fd5b610b498b838c01610808565b909650945060808a0135915080821115610b6257600080fd5b50610b6f8a828b01610808565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610bc8602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610bf0604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610c1c60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610c518285018215159052565b5050610140838101519083015261016092830151929091019190915290565b60005b83811015610c8b578181015183820152602001610c73565b50506000910152565b60008151808452610cac816020860160208601610c70565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006107cf6020830184610c94565b8035801515811461080357600080fd5b600060208284031215610d1357600080fd5b813567ffffffffffffffff80821115610d2b57600080fd5b908301906101408286031215610d4057600080fd5b610d4861096e565b610d51836107f8565b8152610d5f602084016107f8565b6020820152610d70604084016107f8565b6040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c0820152610da960e08401610cf1565b60e08201526101008084013583811115610dc257600080fd5b610dce88828701610a50565b91830191909152506101209283013592810192909252509392505050565b600060208284031215610dfe57600080fd5b5051919050565b600060208284031215610e1757600080fd5b5035919050565b60006020808385031215610e3157600080fd5b825167ffffffffffffffff80821115610e4957600080fd5b9084019060608287031215610e5d57600080fd5b610e65610998565b8251610e70816107d6565b81528284015182811115610e8357600080fd5b83019150601f82018713610e9657600080fd5b8151610ea4610a6f82610a0a565b8181528886838601011115610eb857600080fd5b610ec782878301888701610c70565b80868401525050604083015160408201528094505050505092915050565b848152600073ffffffffffffffffffffffffffffffffffffffff808616602084015280851660408401525060806060830152610f246080830184610c94565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561015257610152610f2e565b808202811582820484141761015257610152610f2e565b600082610fbd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea2646970667358221220a11f7e9eff35f0a31d3ed3bbf599fe2028ce24d0696f19f509ca5639918c71f164736f6c63430008130033", + "sourceMap": "1404:2698:145:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a71461004657806314a2a7841461006e578063b8296fc414610083575b600080fd5b610059610054366004610771565b6100a3565b60405190151581526020015b60405180910390f35b61008161007c366004610838565b61013c565b005b610096610091366004610926565b610259565b60405161006591906109c5565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061013657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061014d8b8b8989898989610259565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461024c57604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b21565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102c686860187610cab565b90508060a0015142101561033957604080518082018252600981527f746f6f206561726c790000000000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b21565b608081015181516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152909116906370a0823190602401602060405180830381865afa1580156103ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d19190610d96565b101561043c57604080518082018252601481527f62616c616e636520696e73756666696369656e74000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b21565b600061044a84860186610daf565b61010083015151909150156105a65760008261010001518060200190518101906104749190610dc8565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16630d1003ee85606001518660000151876020015186602001516040518563ffffffff1660e01b81526004016104cb9493929190610e8f565b602060405180830381865afa1580156104e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050c9190610d96565b905061271082604001516127106105239190610f07565b61052d9083610f1a565b6105379190610f31565b8310156105a357604080518082018252601481527f707269636520636865636b6572206661696c6564000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b21565b50505b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff1681526020018360600151815260200182815260200161062f8460c001516106d7565b63ffffffff1681526020018361012001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020018360e00151151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b600063ffffffff82111561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610243565b5090565b60006020828403121561078357600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146107b357600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146107dc57600080fd5b50565b80356107ea816107ba565b919050565b60008083601f84011261080157600080fd5b50813567ffffffffffffffff81111561081957600080fd5b60208301915083602082850101111561083157600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561085857600080fd5b6108628b356107ba565b8a35995060208b0135610874816107ba565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff808211156108a657600080fd5b6108b28e838f016107ef565b909750955060c08d01359150808211156108cb57600080fd5b506108d88d828e016107ef565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2001121561091157600080fd5b60e08b0190509295989b9194979a5092959850565b600080600080600080600060a0888a03121561094157600080fd5b873561094c816107ba565b9650602088013561095c816107ba565b955060408801359450606088013567ffffffffffffffff8082111561098057600080fd5b61098c8b838c016107ef565b909650945060808a01359150808211156109a557600080fd5b506109b28a828b016107ef565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610a0b602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610a33604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610a5f60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610a948285018215159052565b5050610140838101519083015261016092830151929091019190915290565b60005b83811015610ace578181015183820152602001610ab6565b50506000910152565b60008151808452610aef816020860160208601610ab3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006107b36020830184610ad7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610140810167ffffffffffffffff81118282101715610b8757610b87610b34565b60405290565b6040516060810167ffffffffffffffff81118282101715610b8757610b87610b34565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610bf757610bf7610b34565b604052919050565b803580151581146107ea57600080fd5b600067ffffffffffffffff821115610c2957610c29610b34565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112610c6657600080fd5b8135610c79610c7482610c0f565b610bb0565b818152846020838601011115610c8e57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610cbd57600080fd5b813567ffffffffffffffff80821115610cd557600080fd5b908301906101408286031215610cea57600080fd5b610cf2610b63565b610cfb836107df565b8152610d09602084016107df565b6020820152610d1a604084016107df565b6040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c0820152610d5360e08401610bff565b60e08201526101008084013583811115610d6c57600080fd5b610d7888828701610c55565b91830191909152506101209283013592810192909252509392505050565b600060208284031215610da857600080fd5b5051919050565b600060208284031215610dc157600080fd5b5035919050565b60006020808385031215610ddb57600080fd5b825167ffffffffffffffff80821115610df357600080fd5b9084019060608287031215610e0757600080fd5b610e0f610b8d565b8251610e1a816107ba565b81528284015182811115610e2d57600080fd5b83019150601f82018713610e4057600080fd5b8151610e4e610c7482610c0f565b8181528886838601011115610e6257600080fd5b610e7182878301888701610ab3565b80868401525050604083015160408201528094505050505092915050565b848152600073ffffffffffffffffffffffffffffffffffffffff808616602084015280851660408401525060806060830152610ece6080830184610ad7565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561013657610136610ed8565b808202811582820484141761013657610136610ed8565b600082610f67577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea264697066735822122035dc2f2b19fa5013e81263fdc060f99f34eaeb7dc2968d9eeb3e9b8306a1b2bd64736f6c63430008130033", - "sourceMap": "1384:2698:143:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:220:133;;;;;;:::i;:::-;;:::i;:::-;;;612:14:168;;605:22;587:41;;575:2;560:18;1944:220:133;;;;;;;;867:634;;;;;;:::i;:::-;;:::i;:::-;;2045:2035:143;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1944:220:133:-;2031:4;2054:59;;;2069:44;2054:59;;:103;;-1:-1:-1;2117:40:133;;;2132:25;2117:40;2054:103;2047:110;1944:220;-1:-1:-1;;1944:220:133:o;867:634::-;1153:36;1192:65;1210:5;1217:6;1225:3;1230:11;;1243:13;;1192:17;:65::i;:::-;5434:14:63;;;5473:16;;5520:9;5502:28;;5578:3;5557:25;;5595:23;;6176:4;6170:11;6220:10;6194:37;;6274:1;6251:25;;6244:50;;;6337:2;6314:26;;6307:46;;;;6410:2;6381:32;;1153:104:133;;-1:-1:-1;1359:5:133;:56;1353:142;;1471:12;;;;;;;;;;;;;;;;1439:45;;;;;;;1471:12;1439:45;;;:::i;:::-;;;;;;;;1353:142;1143:358;867:634;;;;;;;;;;:::o;2045:2035:143:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:31:143;;;;;;:::i;:::-;2345:50;;2502:4;:14;;;2483:15;:33;;2477:116;;2572:9;;;;;;;;;;;;;;;;2540:42;;;;;;;2572:9;2540:42;;;:::i;2477:116::-;2713:19;;;;2678:14;;:31;;;;;:24;9386:55:168;;;2678:31:143;;;9368:74:168;2678:24:143;;;;;;9341:18:168;;2678:31:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;2672:148;;2788:20;;;;;;;;;;;;;;;;2756:53;;;;;;;2788:20;2756:53;;;:::i;2672:148::-;2830:17;2850:36;;;;2861:13;2850:36;:::i;:::-;2948:24;;;;:31;2830:56;;-1:-1:-1;2948:35:143;2944:700;;3068:28;3110:4;:24;;;3099:59;;;;;;;;;;;;:::i;:::-;3068:90;;3233:20;3256:1;:9;;;:24;;;3281:4;:15;;;3298:4;:14;;;3314:4;:13;;;3329:1;:9;;;3256:83;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3233:106;;271:5:142;3503:1:143;:17;;;271:5:142;3487:33:143;;;;:::i;:::-;3471:50;;:12;:50;:::i;:::-;3470:68;;;;:::i;:::-;3457:9;:81;;3451:183;;3598:20;;;;;;;;;;;;;;;;3566:53;;;;;;;3598:20;3566:53;;;:::i;3451:183::-;2985:659;;2944:700;3662:411;;;;;;;;3690:4;:14;;;3662:411;;;;;;3718:4;:13;;;3662:411;;;;;;3745:4;:13;;;3662:411;;;;;;3772:4;:15;;;3662:411;;;;3801:9;3662:411;;;;3824:23;:4;:12;;;:21;:23::i;:::-;3662:411;;;;;;3861:4;:12;;;3662:411;;;;3887:1;3662:411;;;;3935:19;3662:411;;;;3968:4;:21;;;3662:411;;;;;;4003:23;3662:411;;;;4040:23;3662:411;;;3654:419;;2268:1812;;2045:2035;;;;;;;;;:::o;15264:187:7:-;15320:6;15355:16;15346:25;;;15338:76;;;;;;;12490:2:168;15338:76:7;;;12472:21:168;12529:2;12509:18;;;12502:30;12568:34;12548:18;;;12541:62;12639:8;12619:18;;;12612:36;12665:19;;15338:76:7;12288:402:168;15338:76:7;-1:-1:-1;15438:5:7;15264:187::o;14:332:168:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:168:o;639:154::-;725:42;718:5;714:54;707:5;704:65;694:93;;783:1;780;773:12;694:93;639:154;:::o;798:134::-;866:20;;895:31;866:20;895:31;:::i;:::-;798:134;;;:::o;937:347::-;988:8;998:6;1052:3;1045:4;1037:6;1033:17;1029:27;1019:55;;1070:1;1067;1060:12;1019:55;-1:-1:-1;1093:20:168;;1136:18;1125:30;;1122:50;;;1168:1;1165;1158:12;1122:50;1205:4;1197:6;1193:17;1181:29;;1257:3;1250:4;1241:6;1233;1229:19;1225:30;1222:39;1219:59;;;1274:1;1271;1264:12;1219:59;937:347;;;;;:::o;1289:1401::-;1458:6;1466;1474;1482;1490;1498;1506;1514;1522;1530;1583:3;1571:9;1562:7;1558:23;1554:33;1551:53;;;1600:1;1597;1590:12;1551:53;1613:49;1651:9;1638:23;1613:49;:::i;:::-;1694:9;1681:23;1671:33;;1754:2;1743:9;1739:18;1726:32;1767:31;1792:5;1767:31;:::i;:::-;1817:5;-1:-1:-1;1869:2:168;1854:18;;1841:32;;-1:-1:-1;1920:2:168;1905:18;;1892:32;;-1:-1:-1;1971:3:168;1956:19;;1943:33;;-1:-1:-1;2027:3:168;2012:19;;1999:33;2051:18;2081:14;;;2078:34;;;2108:1;2105;2098:12;2078:34;2147:58;2197:7;2188:6;2177:9;2173:22;2147:58;:::i;:::-;2224:8;;-1:-1:-1;2121:84:168;-1:-1:-1;2312:3:168;2297:19;;2284:33;;-1:-1:-1;2329:16:168;;;2326:36;;;2358:1;2355;2348:12;2326:36;;2397:60;2449:7;2438:8;2427:9;2423:24;2397:60;:::i;:::-;2476:8;;-1:-1:-1;2371:86:168;-1:-1:-1;;2625:3:168;2531:23;;;2556:66;2527:96;2523:106;2520:126;;;2642:1;2639;2632:12;2520:126;2680:3;2669:9;2665:19;2655:29;;1289:1401;;;;;;;;;;;;;:::o;2695:1063::-;2812:6;2820;2828;2836;2844;2852;2860;2913:3;2901:9;2892:7;2888:23;2884:33;2881:53;;;2930:1;2927;2920:12;2881:53;2969:9;2956:23;2988:31;3013:5;2988:31;:::i;:::-;3038:5;-1:-1:-1;3095:2:168;3080:18;;3067:32;3108:33;3067:32;3108:33;:::i;:::-;3160:7;-1:-1:-1;3214:2:168;3199:18;;3186:32;;-1:-1:-1;3269:2:168;3254:18;;3241:32;3292:18;3322:14;;;3319:34;;;3349:1;3346;3339:12;3319:34;3388:58;3438:7;3429:6;3418:9;3414:22;3388:58;:::i;:::-;3465:8;;-1:-1:-1;3362:84:168;-1:-1:-1;3553:3:168;3538:19;;3525:33;;-1:-1:-1;3570:16:168;;;3567:36;;;3599:1;3596;3589:12;3567:36;;3638:60;3690:7;3679:8;3668:9;3664:24;3638:60;:::i;:::-;2695:1063;;;;-1:-1:-1;2695:1063:168;;-1:-1:-1;2695:1063:168;;;;3612:86;;-1:-1:-1;;;2695:1063:168:o;4002:1264::-;4222:13;;3848:42;3837:54;3825:67;;4182:3;4167:19;;4294:4;4286:6;4282:17;4276:24;4309:62;4365:4;4354:9;4350:20;4336:12;3848:42;3837:54;3825:67;;3763:135;4309:62;;4420:4;4412:6;4408:17;4402:24;4435:64;4493:4;4482:9;4478:20;4462:14;3848:42;3837:54;3825:67;;3763:135;4435:64;;4555:4;4547:6;4543:17;4537:24;4530:4;4519:9;4515:20;4508:54;4618:4;4610:6;4606:17;4600:24;4593:4;4582:9;4578:20;4571:54;4674:4;4666:6;4662:17;4656:24;4689:55;4738:4;4727:9;4723:20;4707:14;3979:10;3968:22;3956:35;;3903:94;4689:55;;4800:4;4792:6;4788:17;4782:24;4775:4;4764:9;4760:20;4753:54;4863:4;4855:6;4851:17;4845:24;4838:4;4827:9;4823:20;4816:54;4889:6;4949:2;4941:6;4937:15;4931:22;4926:2;4915:9;4911:18;4904:50;;4973:6;5028:2;5020:6;5016:15;5010:22;5041:51;5088:2;5077:9;5073:18;5057:14;421:13;414:21;402:34;;351:91;5041:51;-1:-1:-1;;5111:6:168;5159:15;;;5153:22;5133:18;;;5126:50;5195:6;5243:15;;;5237:22;5217:18;;;;5210:50;;;;4002:1264;:::o;5271:250::-;5356:1;5366:113;5380:6;5377:1;5374:13;5366:113;;;5456:11;;;5450:18;5437:11;;;5430:39;5402:2;5395:10;5366:113;;;-1:-1:-1;;5513:1:168;5495:16;;5488:27;5271:250::o;5526:330::-;5568:3;5606:5;5600:12;5633:6;5628:3;5621:19;5649:76;5718:6;5711:4;5706:3;5702:14;5695:4;5688:5;5684:16;5649:76;:::i;:::-;5770:2;5758:15;5775:66;5754:88;5745:98;;;;5845:4;5741:109;;5526:330;-1:-1:-1;;5526:330:168:o;5861:220::-;6010:2;5999:9;5992:21;5973:4;6030:45;6071:2;6060:9;6056:18;6048:6;6030:45;:::i;6086:184::-;6138:77;6135:1;6128:88;6235:4;6232:1;6225:15;6259:4;6256:1;6249:15;6275:255;6347:2;6341:9;6389:6;6377:19;;6426:18;6411:34;;6447:22;;;6408:62;6405:88;;;6473:18;;:::i;:::-;6509:2;6502:22;6275:255;:::o;6535:253::-;6607:2;6601:9;6649:4;6637:17;;6684:18;6669:34;;6705:22;;;6666:62;6663:88;;;6731:18;;:::i;6793:334::-;6864:2;6858:9;6920:2;6910:13;;6925:66;6906:86;6894:99;;7023:18;7008:34;;7044:22;;;7005:62;7002:88;;;7070:18;;:::i;:::-;7106:2;7099:22;6793:334;;-1:-1:-1;6793:334:168:o;7132:160::-;7197:20;;7253:13;;7246:21;7236:32;;7226:60;;7282:1;7279;7272:12;7297:245;7345:4;7378:18;7370:6;7367:30;7364:56;;;7400:18;;:::i;:::-;-1:-1:-1;7457:2:168;7445:15;7462:66;7441:88;7531:4;7437:99;;7297:245::o;7547:462::-;7589:5;7642:3;7635:4;7627:6;7623:17;7619:27;7609:55;;7660:1;7657;7650:12;7609:55;7696:6;7683:20;7727:48;7743:31;7771:2;7743:31;:::i;:::-;7727:48;:::i;:::-;7800:2;7791:7;7784:19;7846:3;7839:4;7834:2;7826:6;7822:15;7818:26;7815:35;7812:55;;;7863:1;7860;7853:12;7812:55;7928:2;7921:4;7913:6;7909:17;7902:4;7893:7;7889:18;7876:55;7976:1;7951:16;;;7969:4;7947:27;7940:38;;;;7955:7;7547:462;-1:-1:-1;;;7547:462:168:o;8014:1203::-;8096:6;8149:2;8137:9;8128:7;8124:23;8120:32;8117:52;;;8165:1;8162;8155:12;8117:52;8205:9;8192:23;8234:18;8275:2;8267:6;8264:14;8261:34;;;8291:1;8288;8281:12;8261:34;8314:22;;;;8370:6;8352:16;;;8348:29;8345:49;;;8390:1;8387;8380:12;8345:49;8416:22;;:::i;:::-;8461;8480:2;8461:22;:::i;:::-;8454:5;8447:37;8516:31;8543:2;8539;8535:11;8516:31;:::i;:::-;8511:2;8504:5;8500:14;8493:55;8580:31;8607:2;8603;8599:11;8580:31;:::i;:::-;8575:2;8568:5;8564:14;8557:55;8665:2;8661;8657:11;8644:25;8639:2;8632:5;8628:14;8621:49;8724:3;8720:2;8716:12;8703:26;8697:3;8690:5;8686:15;8679:51;8784:3;8780:2;8776:12;8763:26;8757:3;8750:5;8746:15;8739:51;8844:3;8840:2;8836:12;8823:26;8817:3;8810:5;8806:15;8799:51;8883:29;8907:3;8903:2;8899:12;8883:29;:::i;:::-;8877:3;8870:5;8866:15;8859:54;8932:3;8981:2;8977;8973:11;8960:25;9010:2;9000:8;8997:16;8994:36;;;9026:1;9023;9016:12;8994:36;9062:44;9098:7;9087:8;9083:2;9079:17;9062:44;:::i;:::-;9046:14;;;9039:68;;;;-1:-1:-1;9126:3:168;9174:11;;;9161:25;9145:14;;;9138:49;;;;-1:-1:-1;9050:5:168;8014:1203;-1:-1:-1;;;8014:1203:168:o;9453:184::-;9523:6;9576:2;9564:9;9555:7;9551:23;9547:32;9544:52;;;9592:1;9589;9582:12;9544:52;-1:-1:-1;9615:16:168;;9453:184;-1:-1:-1;9453:184:168:o;9642:180::-;9701:6;9754:2;9742:9;9733:7;9729:23;9725:32;9722:52;;;9770:1;9767;9760:12;9722:52;-1:-1:-1;9793:23:168;;9642:180;-1:-1:-1;9642:180:168:o;9827:1137::-;9935:6;9966:2;10009;9997:9;9988:7;9984:23;9980:32;9977:52;;;10025:1;10022;10015:12;9977:52;10058:9;10052:16;10087:18;10128:2;10120:6;10117:14;10114:34;;;10144:1;10141;10134:12;10114:34;10167:22;;;;10223:4;10205:16;;;10201:27;10198:47;;;10241:1;10238;10231:12;10198:47;10267:22;;:::i;:::-;10319:2;10313:9;10331:33;10356:7;10331:33;:::i;:::-;10373:22;;10426:11;;;10420:18;10450:16;;;10447:36;;;10479:1;10476;10469:12;10447:36;10502:17;;;-1:-1:-1;10550:4:168;10542:13;;10538:27;-1:-1:-1;10528:55:168;;10579:1;10576;10569:12;10528:55;10608:2;10602:9;10633:48;10649:31;10677:2;10649:31;:::i;10633:48::-;10704:2;10697:5;10690:17;10744:7;10739:2;10734;10730;10726:11;10722:20;10719:33;10716:53;;;10765:1;10762;10755:12;10716:53;10778:67;10842:2;10837;10830:5;10826:14;10821:2;10817;10813:11;10778:67;:::i;:::-;10877:5;10872:2;10865:5;10861:14;10854:29;;;10929:2;10925;10921:11;10915:18;10910:2;10903:5;10899:14;10892:42;10953:5;10943:15;;;;;;9827:1137;;;;:::o;10969:540::-;11228:6;11217:9;11210:25;11191:4;11254:42;11344:2;11336:6;11332:15;11327:2;11316:9;11312:18;11305:43;11396:2;11388:6;11384:15;11379:2;11368:9;11364:18;11357:43;;11436:3;11431:2;11420:9;11416:18;11409:31;11457:46;11498:3;11487:9;11483:19;11475:6;11457:46;:::i;:::-;11449:54;10969:540;-1:-1:-1;;;;;;10969:540:168:o;11514:184::-;11566:77;11563:1;11556:88;11663:4;11660:1;11653:15;11687:4;11684:1;11677:15;11703:128;11770:9;;;11791:11;;;11788:37;;;11805:18;;:::i;11836:168::-;11909:9;;;11940;;11957:15;;;11951:22;;11937:37;11927:71;;11978:18;;:::i;12009:274::-;12049:1;12075;12065:189;;12110:77;12107:1;12100:88;12211:4;12208:1;12201:15;12239:4;12236:1;12229:15;12065:189;-1:-1:-1;12268:9:168;;12009:274::o", + "object": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806314a2a78414610079578063a6ffa36c1461008e578063b8296fc41461009f575b600080fd5b61006461005f36600461078d565b6100bf565b60405190151581526020015b60405180910390f35b61008c610087366004610851565b610158565b005b61008c61009c366004610aa6565b50565b6100b26100ad366004610ae3565b610275565b6040516100709190610b82565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061015257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101698b8b8989898989610275565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461026857604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cde565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102e286860187610d01565b90508060a0015142101561035557604080518082018252600981527f746f6f206561726c790000000000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cde565b608081015181516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152909116906370a0823190602401602060405180830381865afa1580156103c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ed9190610dec565b101561045857604080518082018252601481527f62616c616e636520696e73756666696369656e74000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cde565b600061046684860186610e05565b61010083015151909150156105c25760008261010001518060200190518101906104909190610e1e565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16630d1003ee85606001518660000151876020015186602001516040518563ffffffff1660e01b81526004016104e79493929190610ee5565b602060405180830381865afa158015610504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105289190610dec565b9050612710826040015161271061053f9190610f5d565b6105499083610f70565b6105539190610f87565b8310156105bf57604080518082018252601481527f707269636520636865636b6572206661696c6564000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cde565b50505b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff1681526020018360600151815260200182815260200161064b8460c001516106f3565b63ffffffff1681526020018361012001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020018360e00151151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b600063ffffffff821115610789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f3220626974730000000000000000000000000000000000000000000000000000606482015260840161025f565b5090565b60006020828403121561079f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146107cf57600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461009c57600080fd5b8035610803816107d6565b919050565b60008083601f84011261081a57600080fd5b50813567ffffffffffffffff81111561083257600080fd5b60208301915083602082850101111561084a57600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561087157600080fd5b61087b8b356107d6565b8a35995060208b013561088d816107d6565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff808211156108bf57600080fd5b6108cb8e838f01610808565b909750955060c08d01359150808211156108e457600080fd5b506108f18d828e01610808565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2001121561092a57600080fd5b60e08b0190509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610140810167ffffffffffffffff811182821017156109925761099261093f565b60405290565b6040516060810167ffffffffffffffff811182821017156109925761099261093f565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610a0257610a0261093f565b604052919050565b600067ffffffffffffffff821115610a2457610a2461093f565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112610a6157600080fd5b8135610a74610a6f82610a0a565b6109bb565b818152846020838601011115610a8957600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610ab857600080fd5b813567ffffffffffffffff811115610acf57600080fd5b610adb84828501610a50565b949350505050565b600080600080600080600060a0888a031215610afe57600080fd5b8735610b09816107d6565b96506020880135610b19816107d6565b955060408801359450606088013567ffffffffffffffff80821115610b3d57600080fd5b610b498b838c01610808565b909650945060808a0135915080821115610b6257600080fd5b50610b6f8a828b01610808565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610bc8602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610bf0604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610c1c60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610c518285018215159052565b5050610140838101519083015261016092830151929091019190915290565b60005b83811015610c8b578181015183820152602001610c73565b50506000910152565b60008151808452610cac816020860160208601610c70565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006107cf6020830184610c94565b8035801515811461080357600080fd5b600060208284031215610d1357600080fd5b813567ffffffffffffffff80821115610d2b57600080fd5b908301906101408286031215610d4057600080fd5b610d4861096e565b610d51836107f8565b8152610d5f602084016107f8565b6020820152610d70604084016107f8565b6040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c0820152610da960e08401610cf1565b60e08201526101008084013583811115610dc257600080fd5b610dce88828701610a50565b91830191909152506101209283013592810192909252509392505050565b600060208284031215610dfe57600080fd5b5051919050565b600060208284031215610e1757600080fd5b5035919050565b60006020808385031215610e3157600080fd5b825167ffffffffffffffff80821115610e4957600080fd5b9084019060608287031215610e5d57600080fd5b610e65610998565b8251610e70816107d6565b81528284015182811115610e8357600080fd5b83019150601f82018713610e9657600080fd5b8151610ea4610a6f82610a0a565b8181528886838601011115610eb857600080fd5b610ec782878301888701610c70565b80868401525050604083015160408201528094505050505092915050565b848152600073ffffffffffffffffffffffffffffffffffffffff808616602084015280851660408401525060806060830152610f246080830184610c94565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561015257610152610f2e565b808202811582820484141761015257610152610f2e565b600082610fbd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea2646970667358221220a11f7e9eff35f0a31d3ed3bbf599fe2028ce24d0696f19f509ca5639918c71f164736f6c63430008130033", + "sourceMap": "1404:2698:145:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:220:135;;;;;;:::i;:::-;;:::i;:::-;;;612:14:170;;605:22;587:41;;575:2;560:18;1944:220:135;;;;;;;;867:634;;;;;;:::i;:::-;;:::i;:::-;;2170:100;;;;;;:::i;:::-;;;2065:2035:145;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1944:220:135:-;2031:4;2054:59;;;2069:44;2054:59;;:103;;-1:-1:-1;2117:40:135;;;2132:25;2117:40;2054:103;2047:110;1944:220;-1:-1:-1;;1944:220:135:o;867:634::-;1153:36;1192:65;1210:5;1217:6;1225:3;1230:11;;1243:13;;1192:17;:65::i;:::-;5434:14:55;;;5473:16;;5520:9;5502:28;;5578:3;5557:25;;5595:23;;6176:4;6170:11;6220:10;6194:37;;6274:1;6251:25;;6244:50;;;6337:2;6314:26;;6307:46;;;;6410:2;6381:32;;1153:104:135;;-1:-1:-1;1359:5:135;:56;1353:142;;1471:12;;;;;;;;;;;;;;;;1439:45;;;;;;;1471:12;1439:45;;;:::i;:::-;;;;;;;;1353:142;1143:358;867:634;;;;;;;;;;:::o;2065:2035:145:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2384:31:145;;;;;;:::i;:::-;2365:50;;2522:4;:14;;;2503:15;:33;;2497:116;;2592:9;;;;;;;;;;;;;;;;2560:42;;;;;;;2592:9;2560:42;;;:::i;2497:116::-;2733:19;;;;2698:14;;:31;;;;;:24;9711:55:170;;;2698:31:145;;;9693:74:170;2698:24:145;;;;;;9666:18:170;;2698:31:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;2692:148;;2808:20;;;;;;;;;;;;;;;;2776:53;;;;;;;2808:20;2776:53;;;:::i;2692:148::-;2850:17;2870:36;;;;2881:13;2870:36;:::i;:::-;2968:24;;;;:31;2850:56;;-1:-1:-1;2968:35:145;2964:700;;3088:28;3130:4;:24;;;3119:59;;;;;;;;;;;;:::i;:::-;3088:90;;3253:20;3276:1;:9;;;:24;;;3301:4;:15;;;3318:4;:14;;;3334:4;:13;;;3349:1;:9;;;3276:83;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3253:106;;271:5:144;3523:1:145;:17;;;271:5:144;3507:33:145;;;;:::i;:::-;3491:50;;:12;:50;:::i;:::-;3490:68;;;;:::i;:::-;3477:9;:81;;3471:183;;3618:20;;;;;;;;;;;;;;;;3586:53;;;;;;;3618:20;3586:53;;;:::i;3471:183::-;3005:659;;2964:700;3682:411;;;;;;;;3710:4;:14;;;3682:411;;;;;;3738:4;:13;;;3682:411;;;;;;3765:4;:13;;;3682:411;;;;;;3792:4;:15;;;3682:411;;;;3821:9;3682:411;;;;3844:23;:4;:12;;;:21;:23::i;:::-;3682:411;;;;;;3881:4;:12;;;3682:411;;;;3907:1;3682:411;;;;3955:19;3682:411;;;;3988:4;:21;;;3682:411;;;;;;4023:23;3682:411;;;;4060:23;3682:411;;;3674:419;;2288:1812;;2065:2035;;;;;;;;;:::o;15264:187:92:-;15320:6;15355:16;15346:25;;;15338:76;;;;;;;12819:2:170;15338:76:92;;;12801:21:170;12858:2;12838:18;;;12831:30;12897:34;12877:18;;;12870:62;12968:8;12948:18;;;12941:36;12994:19;;15338:76:92;12617:402:170;15338:76:92;-1:-1:-1;15438:5:92;15264:187::o;14:332:170:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:170:o;639:154::-;725:42;718:5;714:54;707:5;704:65;694:93;;783:1;780;773:12;798:134;866:20;;895:31;866:20;895:31;:::i;:::-;798:134;;;:::o;937:347::-;988:8;998:6;1052:3;1045:4;1037:6;1033:17;1029:27;1019:55;;1070:1;1067;1060:12;1019:55;-1:-1:-1;1093:20:170;;1136:18;1125:30;;1122:50;;;1168:1;1165;1158:12;1122:50;1205:4;1197:6;1193:17;1181:29;;1257:3;1250:4;1241:6;1233;1229:19;1225:30;1222:39;1219:59;;;1274:1;1271;1264:12;1219:59;937:347;;;;;:::o;1289:1401::-;1458:6;1466;1474;1482;1490;1498;1506;1514;1522;1530;1583:3;1571:9;1562:7;1558:23;1554:33;1551:53;;;1600:1;1597;1590:12;1551:53;1613:49;1651:9;1638:23;1613:49;:::i;:::-;1694:9;1681:23;1671:33;;1754:2;1743:9;1739:18;1726:32;1767:31;1792:5;1767:31;:::i;:::-;1817:5;-1:-1:-1;1869:2:170;1854:18;;1841:32;;-1:-1:-1;1920:2:170;1905:18;;1892:32;;-1:-1:-1;1971:3:170;1956:19;;1943:33;;-1:-1:-1;2027:3:170;2012:19;;1999:33;2051:18;2081:14;;;2078:34;;;2108:1;2105;2098:12;2078:34;2147:58;2197:7;2188:6;2177:9;2173:22;2147:58;:::i;:::-;2224:8;;-1:-1:-1;2121:84:170;-1:-1:-1;2312:3:170;2297:19;;2284:33;;-1:-1:-1;2329:16:170;;;2326:36;;;2358:1;2355;2348:12;2326:36;;2397:60;2449:7;2438:8;2427:9;2423:24;2397:60;:::i;:::-;2476:8;;-1:-1:-1;2371:86:170;-1:-1:-1;;2625:3:170;2531:23;;;2556:66;2527:96;2523:106;2520:126;;;2642:1;2639;2632:12;2520:126;2680:3;2669:9;2665:19;2655:29;;1289:1401;;;;;;;;;;;;;:::o;2695:184::-;2747:77;2744:1;2737:88;2844:4;2841:1;2834:15;2868:4;2865:1;2858:15;2884:255;2956:2;2950:9;2998:6;2986:19;;3035:18;3020:34;;3056:22;;;3017:62;3014:88;;;3082:18;;:::i;:::-;3118:2;3111:22;2884:255;:::o;3144:253::-;3216:2;3210:9;3258:4;3246:17;;3293:18;3278:34;;3314:22;;;3275:62;3272:88;;;3340:18;;:::i;3402:334::-;3473:2;3467:9;3529:2;3519:13;;3534:66;3515:86;3503:99;;3632:18;3617:34;;3653:22;;;3614:62;3611:88;;;3679:18;;:::i;:::-;3715:2;3708:22;3402:334;;-1:-1:-1;3402:334:170:o;3741:245::-;3789:4;3822:18;3814:6;3811:30;3808:56;;;3844:18;;:::i;:::-;-1:-1:-1;3901:2:170;3889:15;3906:66;3885:88;3975:4;3881:99;;3741:245::o;3991:462::-;4033:5;4086:3;4079:4;4071:6;4067:17;4063:27;4053:55;;4104:1;4101;4094:12;4053:55;4140:6;4127:20;4171:48;4187:31;4215:2;4187:31;:::i;:::-;4171:48;:::i;:::-;4244:2;4235:7;4228:19;4290:3;4283:4;4278:2;4270:6;4266:15;4262:26;4259:35;4256:55;;;4307:1;4304;4297:12;4256:55;4372:2;4365:4;4357:6;4353:17;4346:4;4337:7;4333:18;4320:55;4420:1;4395:16;;;4413:4;4391:27;4384:38;;;;4399:7;3991:462;-1:-1:-1;;;3991:462:170:o;4458:320::-;4526:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:52;;;4595:1;4592;4585:12;4547:52;4635:9;4622:23;4668:18;4660:6;4657:30;4654:50;;;4700:1;4697;4690:12;4654:50;4723:49;4764:7;4755:6;4744:9;4740:22;4723:49;:::i;:::-;4713:59;4458:320;-1:-1:-1;;;;4458:320:170:o;4783:1063::-;4900:6;4908;4916;4924;4932;4940;4948;5001:3;4989:9;4980:7;4976:23;4972:33;4969:53;;;5018:1;5015;5008:12;4969:53;5057:9;5044:23;5076:31;5101:5;5076:31;:::i;:::-;5126:5;-1:-1:-1;5183:2:170;5168:18;;5155:32;5196:33;5155:32;5196:33;:::i;:::-;5248:7;-1:-1:-1;5302:2:170;5287:18;;5274:32;;-1:-1:-1;5357:2:170;5342:18;;5329:32;5380:18;5410:14;;;5407:34;;;5437:1;5434;5427:12;5407:34;5476:58;5526:7;5517:6;5506:9;5502:22;5476:58;:::i;:::-;5553:8;;-1:-1:-1;5450:84:170;-1:-1:-1;5641:3:170;5626:19;;5613:33;;-1:-1:-1;5658:16:170;;;5655:36;;;5687:1;5684;5677:12;5655:36;;5726:60;5778:7;5767:8;5756:9;5752:24;5726:60;:::i;:::-;4783:1063;;;;-1:-1:-1;4783:1063:170;;-1:-1:-1;4783:1063:170;;;;5700:86;;-1:-1:-1;;;4783:1063:170:o;6090:1264::-;6310:13;;5936:42;5925:54;5913:67;;6270:3;6255:19;;6382:4;6374:6;6370:17;6364:24;6397:62;6453:4;6442:9;6438:20;6424:12;5936:42;5925:54;5913:67;;5851:135;6397:62;;6508:4;6500:6;6496:17;6490:24;6523:64;6581:4;6570:9;6566:20;6550:14;5936:42;5925:54;5913:67;;5851:135;6523:64;;6643:4;6635:6;6631:17;6625:24;6618:4;6607:9;6603:20;6596:54;6706:4;6698:6;6694:17;6688:24;6681:4;6670:9;6666:20;6659:54;6762:4;6754:6;6750:17;6744:24;6777:55;6826:4;6815:9;6811:20;6795:14;6067:10;6056:22;6044:35;;5991:94;6777:55;;6888:4;6880:6;6876:17;6870:24;6863:4;6852:9;6848:20;6841:54;6951:4;6943:6;6939:17;6933:24;6926:4;6915:9;6911:20;6904:54;6977:6;7037:2;7029:6;7025:15;7019:22;7014:2;7003:9;6999:18;6992:50;;7061:6;7116:2;7108:6;7104:15;7098:22;7129:51;7176:2;7165:9;7161:18;7145:14;421:13;414:21;402:34;;351:91;7129:51;-1:-1:-1;;7199:6:170;7247:15;;;7241:22;7221:18;;;7214:50;7283:6;7331:15;;;7325:22;7305:18;;;;7298:50;;;;6090:1264;:::o;7359:250::-;7444:1;7454:113;7468:6;7465:1;7462:13;7454:113;;;7544:11;;;7538:18;7525:11;;;7518:39;7490:2;7483:10;7454:113;;;-1:-1:-1;;7601:1:170;7583:16;;7576:27;7359:250::o;7614:330::-;7656:3;7694:5;7688:12;7721:6;7716:3;7709:19;7737:76;7806:6;7799:4;7794:3;7790:14;7783:4;7776:5;7772:16;7737:76;:::i;:::-;7858:2;7846:15;7863:66;7842:88;7833:98;;;;7933:4;7829:109;;7614:330;-1:-1:-1;;7614:330:170:o;7949:220::-;8098:2;8087:9;8080:21;8061:4;8118:45;8159:2;8148:9;8144:18;8136:6;8118:45;:::i;8174:160::-;8239:20;;8295:13;;8288:21;8278:32;;8268:60;;8324:1;8321;8314:12;8339:1203;8421:6;8474:2;8462:9;8453:7;8449:23;8445:32;8442:52;;;8490:1;8487;8480:12;8442:52;8530:9;8517:23;8559:18;8600:2;8592:6;8589:14;8586:34;;;8616:1;8613;8606:12;8586:34;8639:22;;;;8695:6;8677:16;;;8673:29;8670:49;;;8715:1;8712;8705:12;8670:49;8741:22;;:::i;:::-;8786;8805:2;8786:22;:::i;:::-;8779:5;8772:37;8841:31;8868:2;8864;8860:11;8841:31;:::i;:::-;8836:2;8829:5;8825:14;8818:55;8905:31;8932:2;8928;8924:11;8905:31;:::i;:::-;8900:2;8893:5;8889:14;8882:55;8990:2;8986;8982:11;8969:25;8964:2;8957:5;8953:14;8946:49;9049:3;9045:2;9041:12;9028:26;9022:3;9015:5;9011:15;9004:51;9109:3;9105:2;9101:12;9088:26;9082:3;9075:5;9071:15;9064:51;9169:3;9165:2;9161:12;9148:26;9142:3;9135:5;9131:15;9124:51;9208:29;9232:3;9228:2;9224:12;9208:29;:::i;:::-;9202:3;9195:5;9191:15;9184:54;9257:3;9306:2;9302;9298:11;9285:25;9335:2;9325:8;9322:16;9319:36;;;9351:1;9348;9341:12;9319:36;9387:44;9423:7;9412:8;9408:2;9404:17;9387:44;:::i;:::-;9371:14;;;9364:68;;;;-1:-1:-1;9451:3:170;9499:11;;;9486:25;9470:14;;;9463:49;;;;-1:-1:-1;9375:5:170;8339:1203;-1:-1:-1;;;8339:1203:170:o;9778:184::-;9848:6;9901:2;9889:9;9880:7;9876:23;9872:32;9869:52;;;9917:1;9914;9907:12;9869:52;-1:-1:-1;9940:16:170;;9778:184;-1:-1:-1;9778:184:170:o;9967:180::-;10026:6;10079:2;10067:9;10058:7;10054:23;10050:32;10047:52;;;10095:1;10092;10085:12;10047:52;-1:-1:-1;10118:23:170;;9967:180;-1:-1:-1;9967:180:170:o;10152:1137::-;10260:6;10291:2;10334;10322:9;10313:7;10309:23;10305:32;10302:52;;;10350:1;10347;10340:12;10302:52;10383:9;10377:16;10412:18;10453:2;10445:6;10442:14;10439:34;;;10469:1;10466;10459:12;10439:34;10492:22;;;;10548:4;10530:16;;;10526:27;10523:47;;;10566:1;10563;10556:12;10523:47;10592:22;;:::i;:::-;10644:2;10638:9;10656:33;10681:7;10656:33;:::i;:::-;10698:22;;10751:11;;;10745:18;10775:16;;;10772:36;;;10804:1;10801;10794:12;10772:36;10827:17;;;-1:-1:-1;10875:4:170;10867:13;;10863:27;-1:-1:-1;10853:55:170;;10904:1;10901;10894:12;10853:55;10933:2;10927:9;10958:48;10974:31;11002:2;10974:31;:::i;10958:48::-;11029:2;11022:5;11015:17;11069:7;11064:2;11059;11055;11051:11;11047:20;11044:33;11041:53;;;11090:1;11087;11080:12;11041:53;11103:67;11167:2;11162;11155:5;11151:14;11146:2;11142;11138:11;11103:67;:::i;:::-;11202:5;11197:2;11190:5;11186:14;11179:29;;;11254:2;11250;11246:11;11240:18;11235:2;11228:5;11224:14;11217:42;11278:5;11268:15;;;;;;10152:1137;;;;:::o;11294:544::-;11557:6;11546:9;11539:25;11520:4;11583:42;11673:2;11665:6;11661:15;11656:2;11645:9;11641:18;11634:43;11725:2;11717:6;11713:15;11708:2;11697:9;11693:18;11686:43;;11765:3;11760:2;11749:9;11745:18;11738:31;11786:46;11827:3;11816:9;11812:19;11804:6;11786:46;:::i;:::-;11778:54;11294:544;-1:-1:-1;;;;;;11294:544:170:o;11843:184::-;11895:77;11892:1;11885:88;11992:4;11989:1;11982:15;12016:4;12013:1;12006:15;12032:128;12099:9;;;12120:11;;;12117:37;;;12134:18;;:::i;12165:168::-;12238:9;;;12269;;12286:15;;;12280:22;;12266:37;12256:71;;12307:18;;:::i;12338:274::-;12378:1;12404;12394:189;;12439:77;12436:1;12429:88;12540:4;12537:1;12530:15;12568:4;12565:1;12558:15;12394:189;-1:-1:-1;12597:9:170;;12338:274::o", "linkReferences": {} }, "methodIdentifiers": { "getTradeableOrder(address,address,bytes32,bytes,bytes)": "b8296fc4", "supportsInterface(bytes4)": "01ffc9a7", + "validateData(bytes)": "a6ffa36c", "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": "14a2a784" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\":\"\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Designed to be used with the CoW Protocol Conditional Order Framework. This order type allows for placing an order that is valid after a certain time and that has an optional minimum `sellAmount` determined by a price checker. The actual `buyAmount` is determined by off chain input. As changing the `buyAmount` changes the `orderUid` of the order, this allows for placing multiple orders. To ensure that the order is not filled multiple times, a `minSellBalance` is checked before the order is placed.\",\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"Good After Time (GAT) Conditional Order - with Milkman price checkers\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/GoodAfterTime.sol\":\"GoodAfterTime\"},\"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/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"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/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/BaseConditionalOrder.sol\":{\"keccak256\":\"0x510558386b92b1d5961d8158ae6e3288a1d520c03123d109042a5ec3290b9588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e071465250cbc11d946f422f4ff774d757291cac00f4c69fbac1d1e34cdae402\",\"dweb:/ipfs/QmUF2qNwJhvs3GeWmsWnL6y21eL6mb3QEW7EPYY7NZc25v\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699\",\"dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ\"]},\"src/types/ConditionalOrdersUtilsLib.sol\":{\"keccak256\":\"0x38e4ce4fc58c018f510ee45d78ae49253e8aa70fdf559d83ebb6c838c6b47aae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a38ccd5b8ce2895a77b7474b1ac36ebfccc975b3839f6d3bfef72700f8f6f777\",\"dweb:/ipfs/QmSfs5zZ4U14NkZYSqAFUBcuKGjyfMM5Dp2sbj14FmVYPf\"]},\"src/types/GoodAfterTime.sol\":{\"keccak256\":\"0x5c6c0aa4d3eec87053b8b1b80957cc64efcffa2fcb68a35f1c7f8332a2884643\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ae24374d4c5a47713e45d1ef31697708619af6325db73267088ebcd026ac2bc8\",\"dweb:/ipfs/QmciGxpggSCkkAuavUQhmUisi29sohSDVvkZ4a4YBgrSDm\"]},\"src/vendored/Milkman.sol\":{\"keccak256\":\"0x7795717dc0007aea88681ea4a2a84a32db865d97b59513ff77d00c879fb15b66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90628089a4a76a7e8ef0319425f15d974543383c5f875638fba315d24c4bc753\",\"dweb:/ipfs/Qmb7yJyxQJvmx6uQ1z9ptzJ1X7W58LPFH8pTicDfyNzyZQ\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollNever\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtBlock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtEpoch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryNextBlock\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateData\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\":\"\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Designed to be used with the CoW Protocol Conditional Order Framework. This order type allows for placing an order that is valid after a certain time and that has an optional minimum `sellAmount` determined by a price checker. The actual `buyAmount` is determined by off chain input. As changing the `buyAmount` changes the `orderUid` of the order, this allows for placing multiple orders. To ensure that the order is not filled multiple times, a `minSellBalance` is checked before the order is placed.\",\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"validateData(bytes)\":{\"details\":\"Throws if the data is invalid.\",\"params\":{\"data\":\"The ABI-encoded concrete order type's `Data` struct to be validated.\"}},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"Good After Time (GAT) Conditional Order - with Milkman price checkers\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"validateData(bytes)\":{\"notice\":\"A helper function for SDK users to verify if a given conditional order's data is valid.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/GoodAfterTime.sol\":\"GoodAfterTime\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/safe/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/BaseConditionalOrder.sol\":{\"keccak256\":\"0x83d14b5411a5a1adc00da2d3e17703cd7be15de3f5637b2a3f77501df14c5e9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c007603000bb506c58265f61863bb90966a210429f2985a2632d4f00c7bbc1f\",\"dweb:/ipfs/QmUz7ikMYiS8MGNsMxvcHzpkX2yYiPidxvcfG97Vpqs73j\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]},\"src/types/ConditionalOrdersUtilsLib.sol\":{\"keccak256\":\"0x38e4ce4fc58c018f510ee45d78ae49253e8aa70fdf559d83ebb6c838c6b47aae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a38ccd5b8ce2895a77b7474b1ac36ebfccc975b3839f6d3bfef72700f8f6f777\",\"dweb:/ipfs/QmSfs5zZ4U14NkZYSqAFUBcuKGjyfMM5Dp2sbj14FmVYPf\"]},\"src/types/GoodAfterTime.sol\":{\"keccak256\":\"0xf46af01221ffa5064a5acb7de5b9b8f1b2fc963dc83350211a0f061105d7a45a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6048f3c4d39662759022c4f99a53c234d71d07bb08acd77623ba7738657f00ca\",\"dweb:/ipfs/QmPSYbLk5QsvUZGqMY2dgDtqbHNLSa8dw3QGLYBvrHTQK5\"]},\"src/vendored/Milkman.sol\":{\"keccak256\":\"0x79357bd8fc886e4de7fb7228ee2b7eafce7dfefc8dfa60c4f4e59046a67bb44b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c39a03abcd4b9813478020f30e8f286c778272f878a2556f4d392ac7d5aebeb\",\"dweb:/ipfs/QmUzj7RphTdxvXeLqaevz3D7DYZTsMBqsovnibcxP5qbB5\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -312,6 +380,60 @@ "type": "error", "name": "OrderNotValid" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollNever" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtBlock" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtEpoch" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryNextBlock" + }, { "inputs": [ { @@ -468,6 +590,18 @@ } ] }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function", + "name": "validateData" + }, { "inputs": [ { @@ -584,6 +718,12 @@ "supportsInterface(bytes4)": { "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas." }, + "validateData(bytes)": { + "details": "Throws if the data is invalid.", + "params": { + "data": "The ABI-encoded concrete order type's `Data` struct to be validated." + } + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "details": "As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.", "params": { @@ -603,6 +743,9 @@ "userdoc": { "kind": "user", "methods": { + "validateData(bytes)": { + "notice": "A helper function for SDK users to verify if a given conditional order's data is valid." + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "notice": "Verify if a given discrete order is valid." } @@ -612,20 +755,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -640,7 +782,23 @@ "libraries": {} }, "sources": { - "lib/@openzeppelin/contracts/interfaces/IERC20.sol": { + "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/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", "urls": [ "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", @@ -648,7 +806,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", "urls": [ "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", @@ -656,7 +814,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/utils/math/SafeCast.sol": { + "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": { "keccak256": "0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad", "urls": [ "bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278", @@ -664,22 +822,6 @@ ], "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/interfaces/IERC165.sol": { "keccak256": "0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb", "urls": [ @@ -689,18 +831,18 @@ "license": "LGPL-3.0-only" }, "src/BaseConditionalOrder.sol": { - "keccak256": "0x510558386b92b1d5961d8158ae6e3288a1d520c03123d109042a5ec3290b9588", + "keccak256": "0x83d14b5411a5a1adc00da2d3e17703cd7be15de3f5637b2a3f77501df14c5e9c", "urls": [ - "bzz-raw://e071465250cbc11d946f422f4ff774d757291cac00f4c69fbac1d1e34cdae402", - "dweb:/ipfs/QmUF2qNwJhvs3GeWmsWnL6y21eL6mb3QEW7EPYY7NZc25v" + "bzz-raw://4c007603000bb506c58265f61863bb90966a210429f2985a2632d4f00c7bbc1f", + "dweb:/ipfs/QmUz7ikMYiS8MGNsMxvcHzpkX2yYiPidxvcfG97Vpqs73j" ], "license": "MIT" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" }, @@ -713,18 +855,18 @@ "license": "MIT" }, "src/types/GoodAfterTime.sol": { - "keccak256": "0x5c6c0aa4d3eec87053b8b1b80957cc64efcffa2fcb68a35f1c7f8332a2884643", + "keccak256": "0xf46af01221ffa5064a5acb7de5b9b8f1b2fc963dc83350211a0f061105d7a45a", "urls": [ - "bzz-raw://ae24374d4c5a47713e45d1ef31697708619af6325db73267088ebcd026ac2bc8", - "dweb:/ipfs/QmciGxpggSCkkAuavUQhmUisi29sohSDVvkZ4a4YBgrSDm" + "bzz-raw://6048f3c4d39662759022c4f99a53c234d71d07bb08acd77623ba7738657f00ca", + "dweb:/ipfs/QmPSYbLk5QsvUZGqMY2dgDtqbHNLSa8dw3QGLYBvrHTQK5" ], "license": "GPL-3.0" }, "src/vendored/Milkman.sol": { - "keccak256": "0x7795717dc0007aea88681ea4a2a84a32db865d97b59513ff77d00c879fb15b66", + "keccak256": "0x79357bd8fc886e4de7fb7228ee2b7eafce7dfefc8dfa60c4f4e59046a67bb44b", "urls": [ - "bzz-raw://90628089a4a76a7e8ef0319425f15d974543383c5f875638fba315d24c4bc753", - "dweb:/ipfs/Qmb7yJyxQJvmx6uQ1z9ptzJ1X7W58LPFH8pTicDfyNzyZQ" + "bzz-raw://1c39a03abcd4b9813478020f30e8f286c778272f878a2556f4d392ac7d5aebeb", + "dweb:/ipfs/QmUzj7RphTdxvXeLqaevz3D7DYZTsMBqsovnibcxP5qbB5" ], "license": "MIT" } @@ -733,61 +875,61 @@ }, "ast": { "absolutePath": "src/types/GoodAfterTime.sol", - "id": 54812, + "id": 54915, "exportedSymbols": { "BALANCE_INSUFFICIENT": [ - 54611 + 54714 ], "BaseConditionalOrder": [ - 53501 + 53578 ], "GPv2Interaction": [ - 17090 + 14303 ], "GPv2Order": [ - 17246 + 14459 ], "GoodAfterTime": [ - 54811 + 54914 ], "IConditionalOrder": [ - 54437 + 54540 ], "IConditionalOrderGenerator": [ - 54468 + 54571 ], "IERC165": [ 52197 ], "IERC20": [ - 670 + 45820 ], "IExpectedOutCalculator": [ - 55992 + 56152 ], "INVALID_HASH": [ - 53402 + 53472 ], "PRICE_CHECKER_FAILED": [ - 54615 + 54718 ], "SafeCast": [ - 2786 + 47936 ], "TOO_EARLY": [ - 54607 + 54710 ], "Utils": [ - 54593 + 54696 ] }, "nodeType": "SourceUnit", - "src": "36:4047:143", + "src": "36:4067:145", "nodes": [ { - "id": 54595, + "id": 54698, "nodeType": "PragmaDirective", - "src": "36:31:143", + "src": "36:31:145", "nodes": [], "literals": [ "solidity", @@ -800,24 +942,24 @@ ] }, { - "id": 54597, + "id": 54700, "nodeType": "ImportDirective", - "src": "69:59:143", + "src": "69:69:145", "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/interfaces/IERC20.sol", - "file": "@openzeppelin/interfaces/IERC20.sol", + "absolutePath": "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol", + "file": "@openzeppelin/contracts/interfaces/IERC20.sol", "nameLocation": "-1:-1:-1", - "scope": 54812, - "sourceUnit": 3, + "scope": 54915, + "sourceUnit": 45153, "symbolAliases": [ { "foreign": { - "id": 54596, + "id": 54699, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "77:6:143", + "referencedDeclaration": 45820, + "src": "77:6:145", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -826,24 +968,24 @@ "unitAlias": "" }, { - "id": 54599, + "id": 54702, "nodeType": "ImportDirective", - "src": "129:63:143", + "src": "139:73:145", "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/utils/math/SafeCast.sol", - "file": "@openzeppelin/utils/math/SafeCast.sol", + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol", + "file": "@openzeppelin/contracts/utils/math/SafeCast.sol", "nameLocation": "-1:-1:-1", - "scope": 54812, - "sourceUnit": 2787, + "scope": 54915, + "sourceUnit": 47937, "symbolAliases": [ { "foreign": { - "id": 54598, + "id": 54701, "name": "SafeCast", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2786, - "src": "137:8:143", + "referencedDeclaration": 47936, + "src": "147:8:145", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -852,50 +994,50 @@ "unitAlias": "" }, { - "id": 54600, + "id": 54703, "nodeType": "ImportDirective", - "src": "194:33:143", + "src": "214:33:145", "nodes": [], "absolutePath": "src/vendored/Milkman.sol", "file": "../vendored/Milkman.sol", "nameLocation": "-1:-1:-1", - "scope": 54812, - "sourceUnit": 55993, + "scope": 54915, + "sourceUnit": 56153, "symbolAliases": [], "unitAlias": "" }, { - "id": 54601, + "id": 54704, "nodeType": "ImportDirective", - "src": "228:37:143", + "src": "248:37:145", "nodes": [], "absolutePath": "src/BaseConditionalOrder.sol", "file": "../BaseConditionalOrder.sol", "nameLocation": "-1:-1:-1", - "scope": 54812, - "sourceUnit": 53502, + "scope": 54915, + "sourceUnit": 53579, "symbolAliases": [], "unitAlias": "" }, { - "id": 54603, + "id": 54706, "nodeType": "ImportDirective", - "src": "266:83:143", + "src": "286:83:145", "nodes": [], "absolutePath": "src/types/ConditionalOrdersUtilsLib.sol", "file": "./ConditionalOrdersUtilsLib.sol", "nameLocation": "-1:-1:-1", - "scope": 54812, - "sourceUnit": 54594, + "scope": 54915, + "sourceUnit": 54697, "symbolAliases": [ { "foreign": { - "id": 54602, + "id": 54705, "name": "ConditionalOrdersUtilsLib", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "274:25:143", + "referencedDeclaration": 54696, + "src": "294:25:145", "typeDescriptions": {} }, "local": "Utils", @@ -905,15 +1047,15 @@ "unitAlias": "" }, { - "id": 54607, + "id": 54710, "nodeType": "VariableDeclaration", - "src": "438:39:143", + "src": "458:39:145", "nodes": [], "constant": true, "mutability": "constant", "name": "TOO_EARLY", - "nameLocation": "454:9:143", - "scope": 54812, + "nameLocation": "474:9:145", + "scope": 54915, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -921,10 +1063,10 @@ "typeString": "string" }, "typeName": { - "id": 54605, + "id": 54708, "name": "string", "nodeType": "ElementaryTypeName", - "src": "438:6:143", + "src": "458:6:145", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -932,14 +1074,14 @@ }, "value": { "hexValue": "746f6f206561726c79", - "id": 54606, + "id": 54709, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "466:11:143", + "src": "486:11:145", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d87d05e52726880c4bb1003e00ed00463d214b7b936d9983b909b11b18ccd468", "typeString": "literal_string \"too early\"" @@ -949,15 +1091,15 @@ "visibility": "internal" }, { - "id": 54611, + "id": 54714, "nodeType": "VariableDeclaration", - "src": "536:61:143", + "src": "556:61:145", "nodes": [], "constant": true, "mutability": "constant", "name": "BALANCE_INSUFFICIENT", - "nameLocation": "552:20:143", - "scope": 54812, + "nameLocation": "572:20:145", + "scope": 54915, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -965,10 +1107,10 @@ "typeString": "string" }, "typeName": { - "id": 54609, + "id": 54712, "name": "string", "nodeType": "ElementaryTypeName", - "src": "536:6:143", + "src": "556:6:145", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -976,14 +1118,14 @@ }, "value": { "hexValue": "62616c616e636520696e73756666696369656e74", - "id": 54610, + "id": 54713, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "575:22:143", + "src": "595:22:145", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a9ef3b4d07292ad1e9ff9cf86a951bcf260ed39b4c9f3962ba7c62aae85e2c4f", "typeString": "literal_string \"balance insufficient\"" @@ -993,15 +1135,15 @@ "visibility": "internal" }, { - "id": 54615, + "id": 54718, "nodeType": "VariableDeclaration", - "src": "636:61:143", + "src": "656:61:145", "nodes": [], "constant": true, "mutability": "constant", "name": "PRICE_CHECKER_FAILED", - "nameLocation": "652:20:143", - "scope": 54812, + "nameLocation": "672:20:145", + "scope": 54915, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1009,10 +1151,10 @@ "typeString": "string" }, "typeName": { - "id": 54613, + "id": 54716, "name": "string", "nodeType": "ElementaryTypeName", - "src": "636:6:143", + "src": "656:6:145", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1020,14 +1162,14 @@ }, "value": { "hexValue": "707269636520636865636b6572206661696c6564", - "id": 54614, + "id": 54717, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "675:22:143", + "src": "695:22:145", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5d01b0e3386345eb7eea4e021ec7bc264b1830cdfa164e963e50273f975d315e", "typeString": "literal_string \"price checker failed\"" @@ -1037,31 +1179,31 @@ "visibility": "internal" }, { - "id": 54811, + "id": 54914, "nodeType": "ContractDefinition", - "src": "1384:2698:143", + "src": "1404:2698:145", "nodes": [ { - "id": 54621, + "id": 54724, "nodeType": "UsingForDirective", - "src": "1437:27:143", + "src": "1457:27:145", "nodes": [], "global": false, "libraryName": { - "id": 54619, + "id": 54722, "name": "SafeCast", "nameLocations": [ - "1443:8:143" + "1463:8:145" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2786, - "src": "1443:8:143" + "referencedDeclaration": 47936, + "src": "1463:8:145" }, "typeName": { - "id": 54620, + "id": 54723, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1456:7:143", + "src": "1476:7:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1069,44 +1211,44 @@ } }, { - "id": 54644, + "id": 54747, "nodeType": "StructDefinition", - "src": "1488:396:143", + "src": "1508:396:145", "nodes": [], "canonicalName": "GoodAfterTime.Data", "members": [ { "constant": false, - "id": 54624, + "id": 54727, "mutability": "mutable", "name": "sellToken", - "nameLocation": "1517:9:143", + "nameLocation": "1537:9:145", "nodeType": "VariableDeclaration", - "scope": 54644, - "src": "1510:16:143", + "scope": 54747, + "src": "1530:16:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 54623, + "id": 54726, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54622, + "id": 54725, "name": "IERC20", "nameLocations": [ - "1510:6:143" + "1530:6:145" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "1510:6:143" + "referencedDeclaration": 45820, + "src": "1530:6:145" }, - "referencedDeclaration": 670, - "src": "1510:6:143", + "referencedDeclaration": 45820, + "src": "1530:6:145", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -1114,36 +1256,36 @@ }, { "constant": false, - "id": 54627, + "id": 54730, "mutability": "mutable", "name": "buyToken", - "nameLocation": "1543:8:143", + "nameLocation": "1563:8:145", "nodeType": "VariableDeclaration", - "scope": 54644, - "src": "1536:15:143", + "scope": 54747, + "src": "1556:15:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 54626, + "id": 54729, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54625, + "id": 54728, "name": "IERC20", "nameLocations": [ - "1536:6:143" + "1556:6:145" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "1536:6:143" + "referencedDeclaration": 45820, + "src": "1556:6:145" }, - "referencedDeclaration": 670, - "src": "1536:6:143", + "referencedDeclaration": 45820, + "src": "1556:6:145", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -1151,13 +1293,13 @@ }, { "constant": false, - "id": 54629, + "id": 54732, "mutability": "mutable", "name": "receiver", - "nameLocation": "1569:8:143", + "nameLocation": "1589:8:145", "nodeType": "VariableDeclaration", - "scope": 54644, - "src": "1561:16:143", + "scope": 54747, + "src": "1581:16:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1165,10 +1307,10 @@ "typeString": "address" }, "typeName": { - "id": 54628, + "id": 54731, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1561:7:143", + "src": "1581:7:145", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1179,13 +1321,13 @@ }, { "constant": false, - "id": 54631, + "id": 54734, "mutability": "mutable", "name": "sellAmount", - "nameLocation": "1595:10:143", + "nameLocation": "1615:10:145", "nodeType": "VariableDeclaration", - "scope": 54644, - "src": "1587:18:143", + "scope": 54747, + "src": "1607:18:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1193,10 +1335,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54630, + "id": 54733, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1587:7:143", + "src": "1607:7:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1206,13 +1348,13 @@ }, { "constant": false, - "id": 54633, + "id": 54736, "mutability": "mutable", "name": "minSellBalance", - "nameLocation": "1662:14:143", + "nameLocation": "1682:14:145", "nodeType": "VariableDeclaration", - "scope": 54644, - "src": "1654:22:143", + "scope": 54747, + "src": "1674:22:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1220,10 +1362,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54632, + "id": 54735, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1654:7:143", + "src": "1674:7:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1233,13 +1375,13 @@ }, { "constant": false, - "id": 54635, + "id": 54738, "mutability": "mutable", "name": "startTime", - "nameLocation": "1694:9:143", + "nameLocation": "1714:9:145", "nodeType": "VariableDeclaration", - "scope": 54644, - "src": "1686:17:143", + "scope": 54747, + "src": "1706:17:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1247,10 +1389,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54634, + "id": 54737, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1686:7:143", + "src": "1706:7:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1260,13 +1402,13 @@ }, { "constant": false, - "id": 54637, + "id": 54740, "mutability": "mutable", "name": "endTime", - "nameLocation": "1753:7:143", + "nameLocation": "1773:7:145", "nodeType": "VariableDeclaration", - "scope": 54644, - "src": "1745:15:143", + "scope": 54747, + "src": "1765:15:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1274,10 +1416,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54636, + "id": 54739, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1745:7:143", + "src": "1765:7:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1287,13 +1429,13 @@ }, { "constant": false, - "id": 54639, + "id": 54742, "mutability": "mutable", "name": "allowPartialFill", - "nameLocation": "1801:16:143", + "nameLocation": "1821:16:145", "nodeType": "VariableDeclaration", - "scope": 54644, - "src": "1796:21:143", + "scope": 54747, + "src": "1816:21:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1301,10 +1443,10 @@ "typeString": "bool" }, "typeName": { - "id": 54638, + "id": 54741, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1796:4:143", + "src": "1816:4:145", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1314,13 +1456,13 @@ }, { "constant": false, - "id": 54641, + "id": 54744, "mutability": "mutable", "name": "priceCheckerPayload", - "nameLocation": "1833:19:143", + "nameLocation": "1853:19:145", "nodeType": "VariableDeclaration", - "scope": 54644, - "src": "1827:25:143", + "scope": 54747, + "src": "1847:25:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1328,10 +1470,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54640, + "id": 54743, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1827:5:143", + "src": "1847:5:145", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1341,13 +1483,13 @@ }, { "constant": false, - "id": 54643, + "id": 54746, "mutability": "mutable", "name": "appData", - "nameLocation": "1870:7:143", + "nameLocation": "1890:7:145", "nodeType": "VariableDeclaration", - "scope": 54644, - "src": "1862:15:143", + "scope": 54747, + "src": "1882:15:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1355,10 +1497,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54642, + "id": 54745, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1862:7:143", + "src": "1882:7:145", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1368,49 +1510,49 @@ } ], "name": "Data", - "nameLocation": "1495:4:143", - "scope": 54811, + "nameLocation": "1515:4:145", + "scope": 54914, "visibility": "public" }, { - "id": 54652, + "id": 54755, "nodeType": "StructDefinition", - "src": "1890:149:143", + "src": "1910:149:145", "nodes": [], "canonicalName": "GoodAfterTime.PriceCheckerPayload", "members": [ { "constant": false, - "id": 54647, + "id": 54750, "mutability": "mutable", "name": "checker", - "nameLocation": "1950:7:143", + "nameLocation": "1970:7:145", "nodeType": "VariableDeclaration", - "scope": 54652, - "src": "1927:30:143", + "scope": 54755, + "src": "1947:30:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IExpectedOutCalculator_$55992", + "typeIdentifier": "t_contract$_IExpectedOutCalculator_$56152", "typeString": "contract IExpectedOutCalculator" }, "typeName": { - "id": 54646, + "id": 54749, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54645, + "id": 54748, "name": "IExpectedOutCalculator", "nameLocations": [ - "1927:22:143" + "1947:22:145" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 55992, - "src": "1927:22:143" + "referencedDeclaration": 56152, + "src": "1947:22:145" }, - "referencedDeclaration": 55992, - "src": "1927:22:143", + "referencedDeclaration": 56152, + "src": "1947:22:145", "typeDescriptions": { - "typeIdentifier": "t_contract$_IExpectedOutCalculator_$55992", + "typeIdentifier": "t_contract$_IExpectedOutCalculator_$56152", "typeString": "contract IExpectedOutCalculator" } }, @@ -1418,13 +1560,13 @@ }, { "constant": false, - "id": 54649, + "id": 54752, "mutability": "mutable", "name": "payload", - "nameLocation": "1973:7:143", + "nameLocation": "1993:7:145", "nodeType": "VariableDeclaration", - "scope": 54652, - "src": "1967:13:143", + "scope": 54755, + "src": "1987:13:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1432,10 +1574,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54648, + "id": 54751, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1967:5:143", + "src": "1987:5:145", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1445,13 +1587,13 @@ }, { "constant": false, - "id": 54651, + "id": 54754, "mutability": "mutable", "name": "allowedSlippage", - "nameLocation": "1998:15:143", + "nameLocation": "2018:15:145", "nodeType": "VariableDeclaration", - "scope": 54652, - "src": "1990:23:143", + "scope": 54755, + "src": "2010:23:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1459,10 +1601,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54650, + "id": 54753, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1990:7:143", + "src": "2010:7:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1472,74 +1614,74 @@ } ], "name": "PriceCheckerPayload", - "nameLocation": "1897:19:143", - "scope": 54811, + "nameLocation": "1917:19:145", + "scope": 54914, "visibility": "public" }, { - "id": 54810, + "id": 54913, "nodeType": "FunctionDefinition", - "src": "2045:2035:143", + "src": "2065:2035:145", "nodes": [], "body": { - "id": 54809, + "id": 54912, "nodeType": "Block", - "src": "2268:1812:143", + "src": "2288:1812:145", "nodes": [], "statements": [ { "assignments": [ - 54671 + 54774 ], "declarations": [ { "constant": false, - "id": 54671, + "id": 54774, "mutability": "mutable", "name": "data", - "nameLocation": "2357:4:143", + "nameLocation": "2377:4:145", "nodeType": "VariableDeclaration", - "scope": 54809, - "src": "2345:16:143", + "scope": 54912, + "src": "2365:16:145", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data" }, "typeName": { - "id": 54670, + "id": 54773, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54669, + "id": 54772, "name": "Data", "nameLocations": [ - "2345:4:143" + "2365:4:145" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54644, - "src": "2345:4:143" + "referencedDeclaration": 54747, + "src": "2365:4:145" }, - "referencedDeclaration": 54644, - "src": "2345:4:143", + "referencedDeclaration": 54747, + "src": "2365:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_storage_ptr", + "typeIdentifier": "t_struct$_Data_$54747_storage_ptr", "typeString": "struct GoodAfterTime.Data" } }, "visibility": "internal" } ], - "id": 54678, + "id": 54781, "initialValue": { "arguments": [ { - "id": 54674, + "id": 54777, "name": "staticInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54660, - "src": "2375:11:143", + "referencedDeclaration": 54763, + "src": "2395:11:145", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -1548,28 +1690,28 @@ { "components": [ { - "id": 54675, + "id": 54778, "name": "Data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54644, - "src": "2389:4:143", + "referencedDeclaration": 54747, + "src": "2409:4:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$54644_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$54747_storage_ptr_$", "typeString": "type(struct GoodAfterTime.Data storage pointer)" } } ], - "id": 54676, + "id": 54779, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2388:6:143", + "src": "2408:6:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$54644_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$54747_storage_ptr_$", "typeString": "type(struct GoodAfterTime.Data storage pointer)" } } @@ -1581,37 +1723,37 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_type$_t_struct$_Data_$54644_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$54747_storage_ptr_$", "typeString": "type(struct GoodAfterTime.Data storage pointer)" } ], "expression": { - "id": 54672, + "id": 54775, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "2364:3:143", + "src": "2384:3:145", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 54673, + "id": 54776, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2368:6:143", + "memberLocation": "2388:6:145", "memberName": "decode", "nodeType": "MemberAccess", - "src": "2364:10:143", + "src": "2384:10:145", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 54677, + "id": 54780, "isConstant": false, "isLValue": false, "isPure": false, @@ -1620,19 +1762,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2364:31:143", + "src": "2384:31:145", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2345:50:143" + "src": "2365:50:145" }, { "condition": { - "id": 54685, + "id": 54788, "isConstant": false, "isLValue": false, "isPure": false, @@ -1640,7 +1782,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2481:36:143", + "src": "2501:36:145", "subExpression": { "components": [ { @@ -1648,33 +1790,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 54683, + "id": 54786, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 54679, + "id": 54782, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2483:5:143", + "src": "2503:5:145", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 54680, + "id": 54783, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2489:9:143", + "memberLocation": "2509:9:145", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "2483:15:143", + "src": "2503:15:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1684,47 +1826,47 @@ "operator": ">=", "rightExpression": { "expression": { - "id": 54681, + "id": 54784, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "2502:4:143", + "referencedDeclaration": 54774, + "src": "2522:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54682, + "id": 54785, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2507:9:143", + "memberLocation": "2527:9:145", "memberName": "startTime", "nodeType": "MemberAccess", - "referencedDeclaration": 54635, - "src": "2502:14:143", + "referencedDeclaration": 54738, + "src": "2522:14:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2483:33:143", + "src": "2503:33:145", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 54684, + "id": 54787, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2482:35:143", + "src": "2502:35:145", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1735,24 +1877,24 @@ "typeString": "bool" } }, - "id": 54693, + "id": 54796, "nodeType": "IfStatement", - "src": "2477:116:143", + "src": "2497:116:145", "trueBody": { - "id": 54692, + "id": 54795, "nodeType": "Block", - "src": "2519:74:143", + "src": "2539:74:145", "statements": [ { "errorCall": { "arguments": [ { - "id": 54689, + "id": 54792, "name": "TOO_EARLY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54607, - "src": "2572:9:143", + "referencedDeclaration": 54710, + "src": "2592:9:145", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1767,33 +1909,33 @@ } ], "expression": { - "id": 54686, + "id": 54789, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "2540:17:143", + "referencedDeclaration": 54540, + "src": "2560:17:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 54688, + "id": 54791, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2558:13:143", + "memberLocation": "2578:13:145", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "2540:31:143", + "referencedDeclaration": 54484, + "src": "2560:31:145", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 54690, + "id": 54793, "isConstant": false, "isLValue": false, "isPure": false, @@ -1802,23 +1944,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2540:42:143", + "src": "2560:42:145", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 54691, + "id": 54794, "nodeType": "RevertStatement", - "src": "2533:49:143" + "src": "2553:49:145" } ] } }, { "condition": { - "id": 54703, + "id": 54806, "isConstant": false, "isLValue": false, "isPure": false, @@ -1826,7 +1968,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2676:57:143", + "src": "2696:57:145", "subExpression": { "components": [ { @@ -1834,7 +1976,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 54701, + "id": 54804, "isConstant": false, "isLValue": false, "isPure": false, @@ -1842,12 +1984,12 @@ "leftExpression": { "arguments": [ { - "id": 54697, + "id": 54800, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54654, - "src": "2703:5:143", + "referencedDeclaration": 54757, + "src": "2723:5:145", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1863,48 +2005,48 @@ ], "expression": { "expression": { - "id": 54694, + "id": 54797, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "2678:4:143", + "referencedDeclaration": 54774, + "src": "2698:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54695, + "id": 54798, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2683:9:143", + "memberLocation": "2703:9:145", "memberName": "sellToken", "nodeType": "MemberAccess", - "referencedDeclaration": 54624, - "src": "2678:14:143", + "referencedDeclaration": 54727, + "src": "2698:14:145", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, - "id": 54696, + "id": 54799, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2693:9:143", + "memberLocation": "2713:9:145", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 627, - "src": "2678:24:143", + "referencedDeclaration": 45777, + "src": "2698:24:145", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 54698, + "id": 54801, "isConstant": false, "isLValue": false, "isPure": false, @@ -1913,7 +2055,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2678:31:143", + "src": "2698:31:145", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1924,47 +2066,47 @@ "operator": ">=", "rightExpression": { "expression": { - "id": 54699, + "id": 54802, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "2713:4:143", + "referencedDeclaration": 54774, + "src": "2733:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54700, + "id": 54803, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2718:14:143", + "memberLocation": "2738:14:145", "memberName": "minSellBalance", "nodeType": "MemberAccess", - "referencedDeclaration": 54633, - "src": "2713:19:143", + "referencedDeclaration": 54736, + "src": "2733:19:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2678:54:143", + "src": "2698:54:145", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 54702, + "id": 54805, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2677:56:143", + "src": "2697:56:145", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1975,24 +2117,24 @@ "typeString": "bool" } }, - "id": 54711, + "id": 54814, "nodeType": "IfStatement", - "src": "2672:148:143", + "src": "2692:148:145", "trueBody": { - "id": 54710, + "id": 54813, "nodeType": "Block", - "src": "2735:85:143", + "src": "2755:85:145", "statements": [ { "errorCall": { "arguments": [ { - "id": 54707, + "id": 54810, "name": "BALANCE_INSUFFICIENT", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54611, - "src": "2788:20:143", + "referencedDeclaration": 54714, + "src": "2808:20:145", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -2007,33 +2149,33 @@ } ], "expression": { - "id": 54704, + "id": 54807, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "2756:17:143", + "referencedDeclaration": 54540, + "src": "2776:17:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 54706, + "id": 54809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2774:13:143", + "memberLocation": "2794:13:145", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "2756:31:143", + "referencedDeclaration": 54484, + "src": "2776:31:145", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 54708, + "id": 54811, "isConstant": false, "isLValue": false, "isPure": false, @@ -2042,34 +2184,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2756:53:143", + "src": "2776:53:145", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 54709, + "id": 54812, "nodeType": "RevertStatement", - "src": "2749:60:143" + "src": "2769:60:145" } ] } }, { "assignments": [ - 54713 + 54816 ], "declarations": [ { "constant": false, - "id": 54713, + "id": 54816, "mutability": "mutable", "name": "buyAmount", - "nameLocation": "2838:9:143", + "nameLocation": "2858:9:145", "nodeType": "VariableDeclaration", - "scope": 54809, - "src": "2830:17:143", + "scope": 54912, + "src": "2850:17:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2077,10 +2219,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54712, + "id": 54815, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2830:7:143", + "src": "2850:7:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2089,16 +2231,16 @@ "visibility": "internal" } ], - "id": 54721, + "id": 54824, "initialValue": { "arguments": [ { - "id": 54716, + "id": 54819, "name": "offchainInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54662, - "src": "2861:13:143", + "referencedDeclaration": 54765, + "src": "2881:13:145", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -2107,34 +2249,34 @@ { "components": [ { - "id": 54718, + "id": 54821, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2877:7:143", + "src": "2897:7:145", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 54717, + "id": 54820, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2877:7:143", + "src": "2897:7:145", "typeDescriptions": {} } } ], - "id": 54719, + "id": 54822, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2876:9:143", + "src": "2896:9:145", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" @@ -2153,32 +2295,32 @@ } ], "expression": { - "id": 54714, + "id": 54817, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "2850:3:143", + "src": "2870:3:145", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 54715, + "id": 54818, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2854:6:143", + "memberLocation": "2874:6:145", "memberName": "decode", "nodeType": "MemberAccess", - "src": "2850:10:143", + "src": "2870:10:145", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 54720, + "id": 54823, "isConstant": false, "isLValue": false, "isPure": false, @@ -2187,7 +2329,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2850:36:143", + "src": "2870:36:145", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2195,7 +2337,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2830:56:143" + "src": "2850:56:145" }, { "condition": { @@ -2203,7 +2345,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 54726, + "id": 54829, "isConstant": false, "isLValue": false, "isPure": false, @@ -2211,41 +2353,41 @@ "leftExpression": { "expression": { "expression": { - "id": 54722, + "id": 54825, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "2948:4:143", + "referencedDeclaration": 54774, + "src": "2968:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54723, + "id": 54826, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2953:19:143", + "memberLocation": "2973:19:145", "memberName": "priceCheckerPayload", "nodeType": "MemberAccess", - "referencedDeclaration": 54641, - "src": "2948:24:143", + "referencedDeclaration": 54744, + "src": "2968:24:145", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 54724, + "id": 54827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2973:6:143", + "memberLocation": "2993:6:145", "memberName": "length", "nodeType": "MemberAccess", - "src": "2948:31:143", + "src": "2968:31:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2255,103 +2397,103 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 54725, + "id": 54828, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2982:1:143", + "src": "3002:1:145", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2948:35:143", + "src": "2968:35:145", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 54778, + "id": 54881, "nodeType": "IfStatement", - "src": "2944:700:143", + "src": "2964:700:145", "trueBody": { - "id": 54777, + "id": 54880, "nodeType": "Block", - "src": "2985:659:143", + "src": "3005:659:145", "statements": [ { "assignments": [ - 54729 + 54832 ], "declarations": [ { "constant": false, - "id": 54729, + "id": 54832, "mutability": "mutable", "name": "p", - "nameLocation": "3095:1:143", + "nameLocation": "3115:1:145", "nodeType": "VariableDeclaration", - "scope": 54777, - "src": "3068:28:143", + "scope": 54880, + "src": "3088:28:145", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_PriceCheckerPayload_$54652_memory_ptr", + "typeIdentifier": "t_struct$_PriceCheckerPayload_$54755_memory_ptr", "typeString": "struct GoodAfterTime.PriceCheckerPayload" }, "typeName": { - "id": 54728, + "id": 54831, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54727, + "id": 54830, "name": "PriceCheckerPayload", "nameLocations": [ - "3068:19:143" + "3088:19:145" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54652, - "src": "3068:19:143" + "referencedDeclaration": 54755, + "src": "3088:19:145" }, - "referencedDeclaration": 54652, - "src": "3068:19:143", + "referencedDeclaration": 54755, + "src": "3088:19:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_PriceCheckerPayload_$54652_storage_ptr", + "typeIdentifier": "t_struct$_PriceCheckerPayload_$54755_storage_ptr", "typeString": "struct GoodAfterTime.PriceCheckerPayload" } }, "visibility": "internal" } ], - "id": 54737, + "id": 54840, "initialValue": { "arguments": [ { "expression": { - "id": 54732, + "id": 54835, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "3110:4:143", + "referencedDeclaration": 54774, + "src": "3130:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54733, + "id": 54836, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3115:19:143", + "memberLocation": "3135:19:145", "memberName": "priceCheckerPayload", "nodeType": "MemberAccess", - "referencedDeclaration": 54641, - "src": "3110:24:143", + "referencedDeclaration": 54744, + "src": "3130:24:145", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2360,28 +2502,28 @@ { "components": [ { - "id": 54734, + "id": 54837, "name": "PriceCheckerPayload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54652, - "src": "3137:19:143", + "referencedDeclaration": 54755, + "src": "3157:19:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PriceCheckerPayload_$54652_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_PriceCheckerPayload_$54755_storage_ptr_$", "typeString": "type(struct GoodAfterTime.PriceCheckerPayload storage pointer)" } } ], - "id": 54735, + "id": 54838, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3136:21:143", + "src": "3156:21:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_PriceCheckerPayload_$54652_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_PriceCheckerPayload_$54755_storage_ptr_$", "typeString": "type(struct GoodAfterTime.PriceCheckerPayload storage pointer)" } } @@ -2393,37 +2535,37 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_type$_t_struct$_PriceCheckerPayload_$54652_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_PriceCheckerPayload_$54755_storage_ptr_$", "typeString": "type(struct GoodAfterTime.PriceCheckerPayload storage pointer)" } ], "expression": { - "id": 54730, + "id": 54833, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "3099:3:143", + "src": "3119:3:145", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 54731, + "id": 54834, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3103:6:143", + "memberLocation": "3123:6:145", "memberName": "decode", "nodeType": "MemberAccess", - "src": "3099:10:143", + "src": "3119:10:145", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 54736, + "id": 54839, "isConstant": false, "isLValue": false, "isPure": false, @@ -2432,30 +2574,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3099:59:143", + "src": "3119:59:145", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_PriceCheckerPayload_$54652_memory_ptr", + "typeIdentifier": "t_struct$_PriceCheckerPayload_$54755_memory_ptr", "typeString": "struct GoodAfterTime.PriceCheckerPayload memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3068:90:143" + "src": "3088:90:145" }, { "assignments": [ - 54739 + 54842 ], "declarations": [ { "constant": false, - "id": 54739, + "id": 54842, "mutability": "mutable", "name": "_expectedOut", - "nameLocation": "3241:12:143", + "nameLocation": "3261:12:145", "nodeType": "VariableDeclaration", - "scope": 54777, - "src": "3233:20:143", + "scope": 54880, + "src": "3253:20:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2463,10 +2605,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54738, + "id": 54841, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3233:7:143", + "src": "3253:7:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2475,32 +2617,32 @@ "visibility": "internal" } ], - "id": 54752, + "id": 54855, "initialValue": { "arguments": [ { "expression": { - "id": 54743, + "id": 54846, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "3281:4:143", + "referencedDeclaration": 54774, + "src": "3301:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54744, + "id": 54847, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3286:10:143", + "memberLocation": "3306:10:145", "memberName": "sellAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 54631, - "src": "3281:15:143", + "referencedDeclaration": 54734, + "src": "3301:15:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2508,83 +2650,83 @@ }, { "expression": { - "id": 54745, + "id": 54848, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "3298:4:143", + "referencedDeclaration": 54774, + "src": "3318:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54746, + "id": 54849, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3303:9:143", + "memberLocation": "3323:9:145", "memberName": "sellToken", "nodeType": "MemberAccess", - "referencedDeclaration": 54624, - "src": "3298:14:143", + "referencedDeclaration": 54727, + "src": "3318:14:145", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, { "expression": { - "id": 54747, + "id": 54850, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "3314:4:143", + "referencedDeclaration": 54774, + "src": "3334:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54748, + "id": 54851, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3319:8:143", + "memberLocation": "3339:8:145", "memberName": "buyToken", "nodeType": "MemberAccess", - "referencedDeclaration": 54627, - "src": "3314:13:143", + "referencedDeclaration": 54730, + "src": "3334:13:145", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, { "expression": { - "id": 54749, + "id": 54852, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54729, - "src": "3329:1:143", + "referencedDeclaration": 54832, + "src": "3349:1:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_PriceCheckerPayload_$54652_memory_ptr", + "typeIdentifier": "t_struct$_PriceCheckerPayload_$54755_memory_ptr", "typeString": "struct GoodAfterTime.PriceCheckerPayload memory" } }, - "id": 54750, + "id": 54853, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3331:7:143", + "memberLocation": "3351:7:145", "memberName": "payload", "nodeType": "MemberAccess", - "referencedDeclaration": 54649, - "src": "3329:9:143", + "referencedDeclaration": 54752, + "src": "3349:9:145", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2598,11 +2740,11 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { @@ -2612,48 +2754,48 @@ ], "expression": { "expression": { - "id": 54740, + "id": 54843, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54729, - "src": "3256:1:143", + "referencedDeclaration": 54832, + "src": "3276:1:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_PriceCheckerPayload_$54652_memory_ptr", + "typeIdentifier": "t_struct$_PriceCheckerPayload_$54755_memory_ptr", "typeString": "struct GoodAfterTime.PriceCheckerPayload memory" } }, - "id": 54741, + "id": 54844, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3258:7:143", + "memberLocation": "3278:7:145", "memberName": "checker", "nodeType": "MemberAccess", - "referencedDeclaration": 54647, - "src": "3256:9:143", + "referencedDeclaration": 54750, + "src": "3276:9:145", "typeDescriptions": { - "typeIdentifier": "t_contract$_IExpectedOutCalculator_$55992", + "typeIdentifier": "t_contract$_IExpectedOutCalculator_$56152", "typeString": "contract IExpectedOutCalculator" } }, - "id": 54742, + "id": 54845, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3266:14:143", + "memberLocation": "3286:14:145", "memberName": "getExpectedOut", "nodeType": "MemberAccess", - "referencedDeclaration": 55991, - "src": "3256:24:143", + "referencedDeclaration": 56151, + "src": "3276:24:145", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$_t_contract$_IERC20_$670_$_t_contract$_IERC20_$670_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeIdentifier": "t_function_external_view$_t_uint256_$_t_contract$_IERC20_$45820_$_t_contract$_IERC20_$45820_$_t_bytes_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,contract IERC20,contract IERC20,bytes memory) view external returns (uint256)" } }, - "id": 54751, + "id": 54854, "isConstant": false, "isLValue": false, "isPure": false, @@ -2662,7 +2804,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3256:83:143", + "src": "3276:83:145", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2670,11 +2812,11 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3233:106:143" + "src": "3253:106:145" }, { "condition": { - "id": 54768, + "id": 54871, "isConstant": false, "isLValue": false, "isPure": false, @@ -2682,7 +2824,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3455:84:143", + "src": "3475:84:145", "subExpression": { "components": [ { @@ -2690,18 +2832,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 54766, + "id": 54869, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 54753, + "id": 54856, "name": "buyAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54713, - "src": "3457:9:143", + "referencedDeclaration": 54816, + "src": "3477:9:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2714,7 +2856,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 54765, + "id": 54868, "isConstant": false, "isLValue": false, "isPure": false, @@ -2726,18 +2868,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 54761, + "id": 54864, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 54754, + "id": 54857, "name": "_expectedOut", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54739, - "src": "3471:12:143", + "referencedDeclaration": 54842, + "src": "3491:12:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2752,34 +2894,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 54759, + "id": 54862, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 54755, + "id": 54858, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "3487:5:143", + "referencedDeclaration": 54696, + "src": "3507:5:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54593_$", + "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54696_$", "typeString": "type(library ConditionalOrdersUtilsLib)" } }, - "id": 54756, + "id": 54859, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3493:7:143", + "memberLocation": "3513:7:145", "memberName": "MAX_BPS", "nodeType": "MemberAccess", - "referencedDeclaration": 54514, - "src": "3487:13:143", + "referencedDeclaration": 54617, + "src": "3507:13:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2789,67 +2931,67 @@ "operator": "-", "rightExpression": { "expression": { - "id": 54757, + "id": 54860, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54729, - "src": "3503:1:143", + "referencedDeclaration": 54832, + "src": "3523:1:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_PriceCheckerPayload_$54652_memory_ptr", + "typeIdentifier": "t_struct$_PriceCheckerPayload_$54755_memory_ptr", "typeString": "struct GoodAfterTime.PriceCheckerPayload memory" } }, - "id": 54758, + "id": 54861, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3505:15:143", + "memberLocation": "3525:15:145", "memberName": "allowedSlippage", "nodeType": "MemberAccess", - "referencedDeclaration": 54651, - "src": "3503:17:143", + "referencedDeclaration": 54754, + "src": "3523:17:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3487:33:143", + "src": "3507:33:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 54760, + "id": 54863, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3486:35:143", + "src": "3506:35:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3471:50:143", + "src": "3491:50:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 54762, + "id": 54865, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3470:52:143", + "src": "3490:52:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2859,53 +3001,53 @@ "operator": "/", "rightExpression": { "expression": { - "id": 54763, + "id": 54866, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "3525:5:143", + "referencedDeclaration": 54696, + "src": "3545:5:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54593_$", + "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54696_$", "typeString": "type(library ConditionalOrdersUtilsLib)" } }, - "id": 54764, + "id": 54867, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3531:7:143", + "memberLocation": "3551:7:145", "memberName": "MAX_BPS", "nodeType": "MemberAccess", - "referencedDeclaration": 54514, - "src": "3525:13:143", + "referencedDeclaration": 54617, + "src": "3545:13:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3470:68:143", + "src": "3490:68:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3457:81:143", + "src": "3477:81:145", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 54767, + "id": 54870, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3456:83:143", + "src": "3476:83:145", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2916,24 +3058,24 @@ "typeString": "bool" } }, - "id": 54776, + "id": 54879, "nodeType": "IfStatement", - "src": "3451:183:143", + "src": "3471:183:145", "trueBody": { - "id": 54775, + "id": 54878, "nodeType": "Block", - "src": "3541:93:143", + "src": "3561:93:145", "statements": [ { "errorCall": { "arguments": [ { - "id": 54772, + "id": 54875, "name": "PRICE_CHECKER_FAILED", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54615, - "src": "3598:20:143", + "referencedDeclaration": 54718, + "src": "3618:20:145", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -2948,33 +3090,33 @@ } ], "expression": { - "id": 54769, + "id": 54872, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "3566:17:143", + "referencedDeclaration": 54540, + "src": "3586:17:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 54771, + "id": 54874, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3584:13:143", + "memberLocation": "3604:13:145", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "3566:31:143", + "referencedDeclaration": 54484, + "src": "3586:31:145", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 54773, + "id": 54876, "isConstant": false, "isLValue": false, "isPure": false, @@ -2983,16 +3125,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3566:53:143", + "src": "3586:53:145", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 54774, + "id": 54877, "nodeType": "RevertStatement", - "src": "3559:60:143" + "src": "3579:60:145" } ] } @@ -3002,20 +3144,20 @@ }, { "expression": { - "id": 54807, + "id": 54910, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 54779, + "id": 54882, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54667, - "src": "3654:5:143", + "referencedDeclaration": 54770, + "src": "3674:5:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, @@ -3025,83 +3167,83 @@ "arguments": [ { "expression": { - "id": 54782, + "id": 54885, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "3690:4:143", + "referencedDeclaration": 54774, + "src": "3710:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54783, + "id": 54886, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3695:9:143", + "memberLocation": "3715:9:145", "memberName": "sellToken", "nodeType": "MemberAccess", - "referencedDeclaration": 54624, - "src": "3690:14:143", + "referencedDeclaration": 54727, + "src": "3710:14:145", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, { "expression": { - "id": 54784, + "id": 54887, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "3718:4:143", + "referencedDeclaration": 54774, + "src": "3738:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54785, + "id": 54888, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3723:8:143", + "memberLocation": "3743:8:145", "memberName": "buyToken", "nodeType": "MemberAccess", - "referencedDeclaration": 54627, - "src": "3718:13:143", + "referencedDeclaration": 54730, + "src": "3738:13:145", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, { "expression": { - "id": 54786, + "id": 54889, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "3745:4:143", + "referencedDeclaration": 54774, + "src": "3765:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54787, + "id": 54890, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3750:8:143", + "memberLocation": "3770:8:145", "memberName": "receiver", "nodeType": "MemberAccess", - "referencedDeclaration": 54629, - "src": "3745:13:143", + "referencedDeclaration": 54732, + "src": "3765:13:145", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3109,39 +3251,39 @@ }, { "expression": { - "id": 54788, + "id": 54891, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "3772:4:143", + "referencedDeclaration": 54774, + "src": "3792:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54789, + "id": 54892, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3777:10:143", + "memberLocation": "3797:10:145", "memberName": "sellAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 54631, - "src": "3772:15:143", + "referencedDeclaration": 54734, + "src": "3792:15:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 54790, + "id": 54893, "name": "buyAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54713, - "src": "3801:9:143", + "referencedDeclaration": 54816, + "src": "3821:9:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3153,48 +3295,48 @@ "argumentTypes": [], "expression": { "expression": { - "id": 54791, + "id": 54894, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "3824:4:143", + "referencedDeclaration": 54774, + "src": "3844:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54792, + "id": 54895, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3829:7:143", + "memberLocation": "3849:7:145", "memberName": "endTime", "nodeType": "MemberAccess", - "referencedDeclaration": 54637, - "src": "3824:12:143", + "referencedDeclaration": 54740, + "src": "3844:12:145", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 54793, + "id": 54896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3837:8:143", + "memberLocation": "3857:8:145", "memberName": "toUint32", "nodeType": "MemberAccess", - "referencedDeclaration": 1948, - "src": "3824:21:143", + "referencedDeclaration": 47098, + "src": "3844:21:145", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint32_$attached_to$_t_uint256_$", "typeString": "function (uint256) pure returns (uint32)" } }, - "id": 54794, + "id": 54897, "isConstant": false, "isLValue": false, "isPure": false, @@ -3203,7 +3345,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3824:23:143", + "src": "3844:23:145", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -3212,27 +3354,27 @@ }, { "expression": { - "id": 54795, + "id": 54898, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "3861:4:143", + "referencedDeclaration": 54774, + "src": "3881:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54796, + "id": 54899, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3866:7:143", + "memberLocation": "3886:7:145", "memberName": "appData", "nodeType": "MemberAccess", - "referencedDeclaration": 54643, - "src": "3861:12:143", + "referencedDeclaration": 54746, + "src": "3881:12:145", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3240,14 +3382,14 @@ }, { "hexValue": "30", - "id": 54797, + "id": 54900, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3887:1:143", + "src": "3907:1:145", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3256,27 +3398,27 @@ }, { "expression": { - "id": 54798, + "id": 54901, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "3935:9:143", + "referencedDeclaration": 14459, + "src": "3955:9:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 54799, + "id": 54902, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3945:9:143", + "memberLocation": "3965:9:145", "memberName": "KIND_SELL", "nodeType": "MemberAccess", - "referencedDeclaration": 17129, - "src": "3935:19:143", + "referencedDeclaration": 14342, + "src": "3955:19:145", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3284,27 +3426,27 @@ }, { "expression": { - "id": 54800, + "id": 54903, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54671, - "src": "3968:4:143", + "referencedDeclaration": 54774, + "src": "3988:4:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54644_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54747_memory_ptr", "typeString": "struct GoodAfterTime.Data memory" } }, - "id": 54801, + "id": 54904, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3973:16:143", + "memberLocation": "3993:16:145", "memberName": "allowPartialFill", "nodeType": "MemberAccess", - "referencedDeclaration": 54639, - "src": "3968:21:143", + "referencedDeclaration": 54742, + "src": "3988:21:145", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3312,27 +3454,27 @@ }, { "expression": { - "id": 54802, + "id": 54905, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "4003:9:143", + "referencedDeclaration": 14459, + "src": "4023:9:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 54803, + "id": 54906, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "4013:13:143", + "memberLocation": "4033:13:145", "memberName": "BALANCE_ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 17137, - "src": "4003:23:143", + "referencedDeclaration": 14350, + "src": "4023:23:145", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3340,27 +3482,27 @@ }, { "expression": { - "id": 54804, + "id": 54907, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "4040:9:143", + "referencedDeclaration": 14459, + "src": "4060:9:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 54805, + "id": 54908, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "4050:13:143", + "memberLocation": "4070:13:145", "memberName": "BALANCE_ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 17137, - "src": "4040:23:143", + "referencedDeclaration": 14350, + "src": "4060:23:145", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3370,11 +3512,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { @@ -3419,33 +3561,33 @@ } ], "expression": { - "id": 54780, + "id": 54883, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "3662:9:143", + "referencedDeclaration": 14459, + "src": "3682:9:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 54781, + "id": 54884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3672:4:143", + "memberLocation": "3692:4:145", "memberName": "Data", "nodeType": "MemberAccess", - "referencedDeclaration": 17121, - "src": "3662:14:143", + "referencedDeclaration": 14334, + "src": "3682:14:145", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$17121_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$14334_storage_ptr_$", "typeString": "type(struct GPv2Order.Data storage pointer)" } }, - "id": 54806, + "id": 54909, "isConstant": false, "isLValue": false, "isPure": false, @@ -3454,53 +3596,53 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3662:411:143", + "src": "3682:411:145", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "src": "3654:419:143", + "src": "3674:419:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "id": 54808, + "id": 54911, "nodeType": "ExpressionStatement", - "src": "3654:419:143" + "src": "3674:419:145" } ] }, "baseFunctions": [ - 53476 + 53546 ], "functionSelector": "b8296fc4", "implemented": true, "kind": "function", "modifiers": [], "name": "getTradeableOrder", - "nameLocation": "2054:17:143", + "nameLocation": "2074:17:145", "overrides": { - "id": 54664, + "id": 54767, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "2221:8:143" + "src": "2241:8:145" }, "parameters": { - "id": 54663, + "id": 54766, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54654, + "id": 54757, "mutability": "mutable", "name": "owner", - "nameLocation": "2089:5:143", + "nameLocation": "2109:5:145", "nodeType": "VariableDeclaration", - "scope": 54810, - "src": "2081:13:143", + "scope": 54913, + "src": "2101:13:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3508,10 +3650,10 @@ "typeString": "address" }, "typeName": { - "id": 54653, + "id": 54756, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2081:7:143", + "src": "2101:7:145", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3522,13 +3664,13 @@ }, { "constant": false, - "id": 54656, + "id": 54759, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54810, - "src": "2104:7:143", + "scope": 54913, + "src": "2124:7:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3536,10 +3678,10 @@ "typeString": "address" }, "typeName": { - "id": 54655, + "id": 54758, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2104:7:143", + "src": "2124:7:145", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3550,13 +3692,13 @@ }, { "constant": false, - "id": 54658, + "id": 54761, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54810, - "src": "2121:7:143", + "scope": 54913, + "src": "2141:7:145", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3564,10 +3706,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54657, + "id": 54760, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2121:7:143", + "src": "2141:7:145", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3577,13 +3719,13 @@ }, { "constant": false, - "id": 54660, + "id": 54763, "mutability": "mutable", "name": "staticInput", - "nameLocation": "2153:11:143", + "nameLocation": "2173:11:145", "nodeType": "VariableDeclaration", - "scope": 54810, - "src": "2138:26:143", + "scope": 54913, + "src": "2158:26:145", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -3591,10 +3733,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54659, + "id": 54762, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2138:5:143", + "src": "2158:5:145", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3604,13 +3746,13 @@ }, { "constant": false, - "id": 54662, + "id": 54765, "mutability": "mutable", "name": "offchainInput", - "nameLocation": "2189:13:143", + "nameLocation": "2209:13:145", "nodeType": "VariableDeclaration", - "scope": 54810, - "src": "2174:28:143", + "scope": 54913, + "src": "2194:28:145", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -3618,10 +3760,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54661, + "id": 54764, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2174:5:143", + "src": "2194:5:145", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3630,54 +3772,54 @@ "visibility": "internal" } ], - "src": "2071:137:143" + "src": "2091:137:145" }, "returnParameters": { - "id": 54668, + "id": 54771, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54667, + "id": 54770, "mutability": "mutable", "name": "order", - "nameLocation": "2261:5:143", + "nameLocation": "2281:5:145", "nodeType": "VariableDeclaration", - "scope": 54810, - "src": "2239:27:143", + "scope": 54913, + "src": "2259:27:145", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 54666, + "id": 54769, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54665, + "id": 54768, "name": "GPv2Order.Data", "nameLocations": [ - "2239:9:143", - "2249:4:143" + "2259:9:145", + "2269:4:145" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "2239:14:143" + "referencedDeclaration": 14334, + "src": "2259:14:145" }, - "referencedDeclaration": 17121, - "src": "2239:14:143", + "referencedDeclaration": 14334, + "src": "2259:14:145", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "src": "2238:29:143" + "src": "2258:29:145" }, - "scope": 54811, + "scope": 54914, "stateMutability": "view", "virtual": false, "visibility": "public" @@ -3687,46 +3829,50 @@ "baseContracts": [ { "baseName": { - "id": 54617, + "id": 54720, "name": "BaseConditionalOrder", "nameLocations": [ - "1410:20:143" + "1430:20:145" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53501, - "src": "1410:20:143" + "referencedDeclaration": 53578, + "src": "1430:20:145" }, - "id": 54618, + "id": 54721, "nodeType": "InheritanceSpecifier", - "src": "1410:20:143" + "src": "1430:20:145" } ], "canonicalName": "GoodAfterTime", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 54616, + "id": 54719, "nodeType": "StructuredDocumentation", - "src": "700:683:143", + "src": "720:683:145", "text": " @title Good After Time (GAT) Conditional Order - with Milkman price checkers\n @author mfw78 \n @dev Designed to be used with the CoW Protocol Conditional Order Framework.\n This order type allows for placing an order that is valid after a certain time\n and that has an optional minimum `sellAmount` determined by a price checker. The\n actual `buyAmount` is determined by off chain input. As changing the `buyAmount`\n changes the `orderUid` of the order, this allows for placing multiple orders. To\n ensure that the order is not filled multiple times, a `minSellBalance` is\n checked before the order is placed." }, "fullyImplemented": true, "linearizedBaseContracts": [ - 54811, - 53501, - 54468, + 54914, + 53578, + 54571, 52197, - 54437 + 54540 ], "name": "GoodAfterTime", - "nameLocation": "1393:13:143", - "scope": 54812, + "nameLocation": "1413:13:145", + "scope": 54915, "usedErrors": [ - 54407 + 54484, + 54488, + 54494, + 54500, + 54504 ] } ], "license": "GPL-3.0" }, - "id": 143 + "id": 145 } \ No newline at end of file diff --git a/out/IConditionalOrder.sol/IConditionalOrder.json b/out/IConditionalOrder.sol/IConditionalOrder.json index 5a0aa87..4d20648 100644 --- a/out/IConditionalOrder.sol/IConditionalOrder.json +++ b/out/IConditionalOrder.sol/IConditionalOrder.json @@ -11,6 +11,73 @@ "name": "OrderNotValid", "type": "error" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollNever", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtBlock", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtEpoch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryNextBlock", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "validateData", + "outputs": [], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -133,9 +200,10 @@ "linkReferences": {} }, "methodIdentifiers": { + "validateData(bytes)": "a6ffa36c", "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": "14a2a784" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"CoW Protocol Developers + mfw78 \",\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"kind\":\"dev\",\"methods\":{\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"Used in combination with `isValidSafeSignature` to verify that the order is signed by the Safe. **MUST** revert if the order condition is not met.The `order` parameter is ignored / not validated by the `IConditionalOrderGenerator` implementation. This parameter is included to allow more granular control over the order verification logic, and to allow a watch tower / user to propose a discrete order without it being generated by on-chain logic.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"Conditional Order Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IConditionalOrder.sol\":\"IConditionalOrder\"},\"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/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/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699\",\"dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollNever\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtBlock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtEpoch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryNextBlock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateData\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"CoW Protocol Developers + mfw78 \",\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"kind\":\"dev\",\"methods\":{\"validateData(bytes)\":{\"details\":\"Throws if the data is invalid.\",\"params\":{\"data\":\"The ABI-encoded concrete order type's `Data` struct to be validated.\"}},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"Used in combination with `isValidSafeSignature` to verify that the order is signed by the Safe. **MUST** revert if the order condition is not met.The `order` parameter is ignored / not validated by the `IConditionalOrderGenerator` implementation. This parameter is included to allow more granular control over the order verification logic, and to allow a watch tower / user to propose a discrete order without it being generated by on-chain logic.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"Conditional Order Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"validateData(bytes)\":{\"notice\":\"A helper function for SDK users to verify if a given conditional order's data is valid.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IConditionalOrder.sol\":\"IConditionalOrder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/safe/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -154,6 +222,72 @@ "type": "error", "name": "OrderNotValid" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollNever" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtBlock" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtEpoch" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryNextBlock" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function", + "name": "validateData" + }, { "inputs": [ { @@ -267,6 +401,12 @@ "devdoc": { "kind": "dev", "methods": { + "validateData(bytes)": { + "details": "Throws if the data is invalid.", + "params": { + "data": "The ABI-encoded concrete order type's `Data` struct to be validated." + } + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "details": "Used in combination with `isValidSafeSignature` to verify that the order is signed by the Safe. **MUST** revert if the order condition is not met.The `order` parameter is ignored / not validated by the `IConditionalOrderGenerator` implementation. This parameter is included to allow more granular control over the order verification logic, and to allow a watch tower / user to propose a discrete order without it being generated by on-chain logic.", "params": { @@ -286,6 +426,9 @@ "userdoc": { "kind": "user", "methods": { + "validateData(bytes)": { + "notice": "A helper function for SDK users to verify if a given conditional order's data is valid." + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "notice": "Verify if a given discrete order is valid." } @@ -295,20 +438,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -323,22 +465,6 @@ "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/libraries/GPv2Interaction.sol": { "keccak256": "0xb950f05f76ac8044b82314ea5510941fdbc0f0e76e7f159023d435652b429528", "urls": [ @@ -355,6 +481,22 @@ ], "license": "LGPL-3.0-or-later" }, + "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { + "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", + "urls": [ + "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", + "dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", + "urls": [ + "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", + "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" + ], + "license": "MIT" + }, "lib/safe/contracts/interfaces/IERC165.sol": { "keccak256": "0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb", "urls": [ @@ -364,10 +506,10 @@ "license": "LGPL-3.0-only" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" } @@ -376,31 +518,31 @@ }, "ast": { "absolutePath": "src/interfaces/IConditionalOrder.sol", - "id": 54469, + "id": 54572, "exportedSymbols": { "GPv2Interaction": [ - 17090 + 14303 ], "GPv2Order": [ - 17246 + 14459 ], "IConditionalOrder": [ - 54437 + 54540 ], "IConditionalOrderGenerator": [ - 54468 + 54571 ], "IERC165": [ 52197 ] }, "nodeType": "SourceUnit", - "src": "36:3924:139", + "src": "36:4840:141", "nodes": [ { - "id": 54395, + "id": 54472, "nodeType": "PragmaDirective", - "src": "36:31:139", + "src": "36:31:141", "nodes": [], "literals": [ "solidity", @@ -413,24 +555,24 @@ ] }, { - "id": 54397, + "id": 54474, "nodeType": "ImportDirective", - "src": "69:62:139", + "src": "69:62:141", "nodes": [], "absolutePath": "lib/cowprotocol/src/contracts/libraries/GPv2Order.sol", "file": "cowprotocol/libraries/GPv2Order.sol", "nameLocation": "-1:-1:-1", - "scope": 54469, - "sourceUnit": 17247, + "scope": 54572, + "sourceUnit": 14460, "symbolAliases": [ { "foreign": { - "id": 54396, + "id": 54473, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "77:9:139", + "referencedDeclaration": 14459, + "src": "77:9:141", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -439,24 +581,24 @@ "unitAlias": "" }, { - "id": 54399, + "id": 54476, "nodeType": "ImportDirective", - "src": "132:74:139", + "src": "132:74:141", "nodes": [], "absolutePath": "lib/cowprotocol/src/contracts/libraries/GPv2Interaction.sol", "file": "cowprotocol/libraries/GPv2Interaction.sol", "nameLocation": "-1:-1:-1", - "scope": 54469, - "sourceUnit": 17091, + "scope": 54572, + "sourceUnit": 14304, "symbolAliases": [ { "foreign": { - "id": 54398, + "id": 54475, "name": "GPv2Interaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17090, - "src": "140:15:139", + "referencedDeclaration": 14303, + "src": "140:15:141", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -465,24 +607,24 @@ "unitAlias": "" }, { - "id": 54401, + "id": 54478, "nodeType": "ImportDirective", - "src": "207:52:139", + "src": "207:52:141", "nodes": [], "absolutePath": "lib/safe/contracts/interfaces/IERC165.sol", "file": "safe/interfaces/IERC165.sol", "nameLocation": "-1:-1:-1", - "scope": 54469, + "scope": 54572, "sourceUnit": 52198, "symbolAliases": [ { "foreign": { - "id": 54400, + "id": 54477, "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52197, - "src": "215:7:139", + "src": "215:7:141", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -491,37 +633,220 @@ "unitAlias": "" }, { - "id": 54437, + "id": 54540, "nodeType": "ContractDefinition", - "src": "370:2142:139", + "src": "370:3058:141", "nodes": [ { - "id": 54407, + "id": 54484, "nodeType": "ErrorDefinition", - "src": "624:28:139", + "src": "624:28:141", "nodes": [], "documentation": { - "id": 54403, + "id": 54480, "nodeType": "StructuredDocumentation", - "src": "404:215:139", + "src": "404:215:141", "text": "@dev This error is returned by the `getTradeableOrder` function if the order condition is not met.\n A parameter of `string` type is included to allow the caller to specify the reason for the failure." }, "errorSelector": "c8fc2725", "name": "OrderNotValid", - "nameLocation": "630:13:139", + "nameLocation": "630:13:141", "parameters": { - "id": 54406, + "id": 54483, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54405, + "id": 54482, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54407, - "src": "644:6:139", + "scope": 54484, + "src": "644:6:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 54481, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "644:6:141", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "643:8:141" + } + }, + { + "id": 54488, + "nodeType": "ErrorDefinition", + "src": "768:38:141", + "nodes": [], + "errorSelector": "d05f3065", + "name": "PollTryNextBlock", + "nameLocation": "774:16:141", + "parameters": { + "id": 54487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54486, + "mutability": "mutable", + "name": "reason", + "nameLocation": "798:6:141", + "nodeType": "VariableDeclaration", + "scope": 54488, + "src": "791:13:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 54485, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "791:6:141", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "790:15:141" + } + }, + { + "id": 54494, + "nodeType": "ErrorDefinition", + "src": "909:57:141", + "nodes": [], + "errorSelector": "1fe8506e", + "name": "PollTryAtBlock", + "nameLocation": "915:14:141", + "parameters": { + "id": 54493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54490, + "mutability": "mutable", + "name": "blockNumber", + "nameLocation": "938:11:141", + "nodeType": "VariableDeclaration", + "scope": 54494, + "src": "930:19:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54489, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "930:7:141", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 54492, + "mutability": "mutable", + "name": "reason", + "nameLocation": "958:6:141", + "nodeType": "VariableDeclaration", + "scope": 54494, + "src": "951:13:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 54491, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "951:6:141", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "929:36:141" + } + }, + { + "id": 54500, + "nodeType": "ErrorDefinition", + "src": "1079:55:141", + "nodes": [], + "errorSelector": "7e334637", + "name": "PollTryAtEpoch", + "nameLocation": "1085:14:141", + "parameters": { + "id": 54499, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54496, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "1108:9:141", + "nodeType": "VariableDeclaration", + "scope": 54500, + "src": "1100:17:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1100:7:141", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 54498, + "mutability": "mutable", + "name": "reason", + "nameLocation": "1126:6:141", + "nodeType": "VariableDeclaration", + "scope": 54500, + "src": "1119:13:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -529,10 +854,10 @@ "typeString": "string" }, "typeName": { - "id": 54404, + "id": 54497, "name": "string", "nodeType": "ElementaryTypeName", - "src": "644:6:139", + "src": "1119:6:141", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -541,48 +866,91 @@ "visibility": "internal" } ], - "src": "643:8:139" + "src": "1099:34:141" } }, { - "id": 54415, + "id": 54504, + "nodeType": "ErrorDefinition", + "src": "1234:31:141", + "nodes": [], + "errorSelector": "981b64cd", + "name": "PollNever", + "nameLocation": "1240:9:141", + "parameters": { + "id": 54503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54502, + "mutability": "mutable", + "name": "reason", + "nameLocation": "1257:6:141", + "nodeType": "VariableDeclaration", + "scope": 54504, + "src": "1250:13:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 54501, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1250:6:141", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1249:15:141" + } + }, + { + "id": 54512, "nodeType": "StructDefinition", - "src": "840:121:139", + "src": "1453:121:141", "nodes": [], "canonicalName": "IConditionalOrder.ConditionalOrderParams", "members": [ { "constant": false, - "id": 54410, + "id": 54507, "mutability": "mutable", "name": "handler", - "nameLocation": "898:7:139", + "nameLocation": "1511:7:141", "nodeType": "VariableDeclaration", - "scope": 54415, - "src": "880:25:139", + "scope": 54512, + "src": "1493:25:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", + "typeIdentifier": "t_contract$_IConditionalOrder_$54540", "typeString": "contract IConditionalOrder" }, "typeName": { - "id": 54409, + "id": 54506, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54408, + "id": 54505, "name": "IConditionalOrder", "nameLocations": [ - "880:17:139" + "1493:17:141" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54437, - "src": "880:17:139" + "referencedDeclaration": 54540, + "src": "1493:17:141" }, - "referencedDeclaration": 54437, - "src": "880:17:139", + "referencedDeclaration": 54540, + "src": "1493:17:141", "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", + "typeIdentifier": "t_contract$_IConditionalOrder_$54540", "typeString": "contract IConditionalOrder" } }, @@ -590,13 +958,13 @@ }, { "constant": false, - "id": 54412, + "id": 54509, "mutability": "mutable", "name": "salt", - "nameLocation": "923:4:139", + "nameLocation": "1536:4:141", "nodeType": "VariableDeclaration", - "scope": 54415, - "src": "915:12:139", + "scope": 54512, + "src": "1528:12:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -604,10 +972,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54411, + "id": 54508, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "915:7:139", + "src": "1528:7:141", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -617,13 +985,13 @@ }, { "constant": false, - "id": 54414, + "id": 54511, "mutability": "mutable", "name": "staticInput", - "nameLocation": "943:11:139", + "nameLocation": "1556:11:141", "nodeType": "VariableDeclaration", - "scope": 54415, - "src": "937:17:139", + "scope": 54512, + "src": "1550:17:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -631,10 +999,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54413, + "id": 54510, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "937:5:139", + "src": "1550:5:141", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -644,19 +1012,19 @@ } ], "name": "ConditionalOrderParams", - "nameLocation": "847:22:139", - "scope": 54437, + "nameLocation": "1460:22:141", + "scope": 54540, "visibility": "public" }, { - "id": 54436, + "id": 54533, "nodeType": "FunctionDefinition", - "src": "2237:273:139", + "src": "2850:273:141", "nodes": [], "documentation": { - "id": 54416, + "id": 54513, "nodeType": "StructuredDocumentation", - "src": "967:1265:139", + "src": "1580:1265:141", "text": " Verify if a given discrete order is valid.\n @dev Used in combination with `isValidSafeSignature` to verify that the order is signed by the Safe.\n **MUST** revert if the order condition is not met.\n @dev The `order` parameter is ignored / not validated by the `IConditionalOrderGenerator` implementation.\n This parameter is included to allow more granular control over the order verification logic, and to\n allow a watch tower / user to propose a discrete order without it being generated by on-chain logic.\n @param owner the contract who is the owner of the order\n @param sender the `msg.sender` of the transaction\n @param _hash the hash of the order\n @param domainSeparator the domain separator used to sign the order\n @param ctx the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\n @param staticInput the static input for all discrete orders cut from this conditional order\n @param offchainInput dynamic off-chain input for a discrete order cut from this conditional order\n @param order `GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`)." }, "functionSelector": "14a2a784", @@ -664,20 +1032,20 @@ "kind": "function", "modifiers": [], "name": "verify", - "nameLocation": "2246:6:139", + "nameLocation": "2859:6:141", "parameters": { - "id": 54434, + "id": 54531, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54418, + "id": 54515, "mutability": "mutable", "name": "owner", - "nameLocation": "2270:5:139", + "nameLocation": "2883:5:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2262:13:139", + "scope": 54533, + "src": "2875:13:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -685,10 +1053,10 @@ "typeString": "address" }, "typeName": { - "id": 54417, + "id": 54514, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2262:7:139", + "src": "2875:7:141", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -699,13 +1067,13 @@ }, { "constant": false, - "id": 54420, + "id": 54517, "mutability": "mutable", "name": "sender", - "nameLocation": "2293:6:139", + "nameLocation": "2906:6:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2285:14:139", + "scope": 54533, + "src": "2898:14:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -713,10 +1081,10 @@ "typeString": "address" }, "typeName": { - "id": 54419, + "id": 54516, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2285:7:139", + "src": "2898:7:141", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -727,13 +1095,13 @@ }, { "constant": false, - "id": 54422, + "id": 54519, "mutability": "mutable", "name": "_hash", - "nameLocation": "2317:5:139", + "nameLocation": "2930:5:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2309:13:139", + "scope": 54533, + "src": "2922:13:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -741,10 +1109,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54421, + "id": 54518, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2309:7:139", + "src": "2922:7:141", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -754,13 +1122,13 @@ }, { "constant": false, - "id": 54424, + "id": 54521, "mutability": "mutable", "name": "domainSeparator", - "nameLocation": "2340:15:139", + "nameLocation": "2953:15:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2332:23:139", + "scope": 54533, + "src": "2945:23:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -768,10 +1136,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54423, + "id": 54520, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2332:7:139", + "src": "2945:7:141", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -781,13 +1149,13 @@ }, { "constant": false, - "id": 54426, + "id": 54523, "mutability": "mutable", "name": "ctx", - "nameLocation": "2373:3:139", + "nameLocation": "2986:3:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2365:11:139", + "scope": 54533, + "src": "2978:11:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -795,10 +1163,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54425, + "id": 54522, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2365:7:139", + "src": "2978:7:141", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -808,13 +1176,13 @@ }, { "constant": false, - "id": 54428, + "id": 54525, "mutability": "mutable", "name": "staticInput", - "nameLocation": "2401:11:139", + "nameLocation": "3014:11:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2386:26:139", + "scope": 54533, + "src": "2999:26:141", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -822,10 +1190,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54427, + "id": 54524, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2386:5:139", + "src": "2999:5:141", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -835,13 +1203,13 @@ }, { "constant": false, - "id": 54430, + "id": 54527, "mutability": "mutable", "name": "offchainInput", - "nameLocation": "2437:13:139", + "nameLocation": "3050:13:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2422:28:139", + "scope": 54533, + "src": "3035:28:141", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -849,10 +1217,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54429, + "id": 54526, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2422:5:139", + "src": "3035:5:141", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -862,52 +1230,114 @@ }, { "constant": false, - "id": 54433, + "id": 54530, "mutability": "mutable", "name": "order", - "nameLocation": "2484:5:139", + "nameLocation": "3097:5:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2460:29:139", + "scope": 54533, + "src": "3073:29:141", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_calldata_ptr", + "typeIdentifier": "t_struct$_Data_$14334_calldata_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 54432, + "id": 54529, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54431, + "id": 54528, "name": "GPv2Order.Data", "nameLocations": [ - "2460:9:139", - "2470:4:139" + "3073:9:141", + "3083:4:141" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "2460:14:139" + "referencedDeclaration": 14334, + "src": "3073:14:141" }, - "referencedDeclaration": 17121, - "src": "2460:14:139", + "referencedDeclaration": 14334, + "src": "3073:14:141", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "src": "2252:243:139" + "src": "2865:243:141" + }, + "returnParameters": { + "id": 54532, + "nodeType": "ParameterList", + "parameters": [], + "src": "3122:0:141" + }, + "scope": 54540, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 54539, + "nodeType": "FunctionDefinition", + "src": "3371:55:141", + "nodes": [], + "documentation": { + "id": 54534, + "nodeType": "StructuredDocumentation", + "src": "3129:237:141", + "text": " A helper function for SDK users to verify if a given conditional order's data is valid.\n @param data The ABI-encoded concrete order type's `Data` struct to be validated.\n @dev Throws if the data is invalid." + }, + "functionSelector": "a6ffa36c", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "validateData", + "nameLocation": "3380:12:141", + "parameters": { + "id": 54537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54536, + "mutability": "mutable", + "name": "data", + "nameLocation": "3406:4:141", + "nodeType": "VariableDeclaration", + "scope": 54539, + "src": "3393:17:141", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 54535, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3393:5:141", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3392:19:141" }, "returnParameters": { - "id": 54435, + "id": 54538, "nodeType": "ParameterList", "parameters": [], - "src": "2509:0:139" + "src": "3425:0:141" }, - "scope": 54437, + "scope": 54540, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -919,56 +1349,60 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 54402, + "id": 54479, "nodeType": "StructuredDocumentation", - "src": "261:108:139", + "src": "261:108:141", "text": " @title Conditional Order Interface\n @author CoW Protocol Developers + mfw78 " }, "fullyImplemented": false, "linearizedBaseContracts": [ - 54437 + 54540 ], "name": "IConditionalOrder", - "nameLocation": "380:17:139", - "scope": 54469, + "nameLocation": "380:17:141", + "scope": 54572, "usedErrors": [ - 54407 + 54484, + 54488, + 54494, + 54500, + 54504 ] }, { - "id": 54468, + "id": 54571, "nodeType": "ContractDefinition", - "src": "2607:1352:139", + "src": "3523:1352:141", "nodes": [ { - "id": 54450, + "id": 54553, "nodeType": "EventDefinition", - "src": "2914:102:139", + "src": "3830:102:141", "nodes": [], "anonymous": false, "documentation": { - "id": 54443, + "id": 54546, "nodeType": "StructuredDocumentation", - "src": "2680:229:139", + "src": "3596:229:141", "text": " @dev This event is emitted when a new conditional order is created.\n @param owner the address that has created the conditional order\n @param params the address / salt / data of the conditional order" }, "eventSelector": "2cceac5555b0ca45a3744ced542f54b56ad2eb45e521962372eef212a2cbf361", "name": "ConditionalOrderCreated", - "nameLocation": "2920:23:139", + "nameLocation": "3836:23:141", "parameters": { - "id": 54449, + "id": 54552, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54445, + "id": 54548, "indexed": true, "mutability": "mutable", "name": "owner", - "nameLocation": "2960:5:139", + "nameLocation": "3876:5:141", "nodeType": "VariableDeclaration", - "scope": 54450, - "src": "2944:21:139", + "scope": 54553, + "src": "3860:21:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -976,10 +1410,10 @@ "typeString": "address" }, "typeName": { - "id": 54444, + "id": 54547, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2944:7:139", + "src": "3860:7:141", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -990,56 +1424,56 @@ }, { "constant": false, - "id": 54448, + "id": 54551, "indexed": false, "mutability": "mutable", "name": "params", - "nameLocation": "3008:6:139", + "nameLocation": "3924:6:141", "nodeType": "VariableDeclaration", - "scope": 54450, - "src": "2967:47:139", + "scope": 54553, + "src": "3883:47:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 54447, + "id": 54550, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54446, + "id": 54549, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "2967:17:139", - "2985:22:139" + "3883:17:141", + "3901:22:141" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "2967:40:139" + "referencedDeclaration": 54512, + "src": "3883:40:141" }, - "referencedDeclaration": 54415, - "src": "2967:40:139", + "referencedDeclaration": 54512, + "src": "3883:40:141", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, "visibility": "internal" } ], - "src": "2943:72:139" + "src": "3859:72:141" } }, { - "id": 54467, + "id": 54570, "nodeType": "FunctionDefinition", - "src": "3736:221:139", + "src": "4652:221:141", "nodes": [], "documentation": { - "id": 54451, + "id": 54554, "nodeType": "StructuredDocumentation", - "src": "3022:709:139", + "src": "3938:709:141", "text": " @dev Get a tradeable order that can be posted to the CoW Protocol API and would pass signature validation.\n **MUST** revert if the order condition is not met.\n @param owner the contract who is the owner of the order\n @param sender the `msg.sender` of the parent `isValidSignature` call\n @param ctx the context of the order (bytes32(0) if merkle tree is used, otherwise the H(params))\n @param staticInput the static input for all discrete orders cut from this conditional order\n @param offchainInput dynamic off-chain input for a discrete order cut from this conditional order\n @return the tradeable order for submission to the CoW Protocol API" }, "functionSelector": "b8296fc4", @@ -1047,20 +1481,20 @@ "kind": "function", "modifiers": [], "name": "getTradeableOrder", - "nameLocation": "3745:17:139", + "nameLocation": "4661:17:141", "parameters": { - "id": 54462, + "id": 54565, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54453, + "id": 54556, "mutability": "mutable", "name": "owner", - "nameLocation": "3780:5:139", + "nameLocation": "4696:5:141", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3772:13:139", + "scope": 54570, + "src": "4688:13:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1068,10 +1502,10 @@ "typeString": "address" }, "typeName": { - "id": 54452, + "id": 54555, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3772:7:139", + "src": "4688:7:141", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1082,13 +1516,13 @@ }, { "constant": false, - "id": 54455, + "id": 54558, "mutability": "mutable", "name": "sender", - "nameLocation": "3803:6:139", + "nameLocation": "4719:6:141", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3795:14:139", + "scope": 54570, + "src": "4711:14:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1096,10 +1530,10 @@ "typeString": "address" }, "typeName": { - "id": 54454, + "id": 54557, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3795:7:139", + "src": "4711:7:141", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1110,13 +1544,13 @@ }, { "constant": false, - "id": 54457, + "id": 54560, "mutability": "mutable", "name": "ctx", - "nameLocation": "3827:3:139", + "nameLocation": "4743:3:141", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3819:11:139", + "scope": 54570, + "src": "4735:11:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1124,10 +1558,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54456, + "id": 54559, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3819:7:139", + "src": "4735:7:141", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1137,13 +1571,13 @@ }, { "constant": false, - "id": 54459, + "id": 54562, "mutability": "mutable", "name": "staticInput", - "nameLocation": "3855:11:139", + "nameLocation": "4771:11:141", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3840:26:139", + "scope": 54570, + "src": "4756:26:141", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -1151,10 +1585,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54458, + "id": 54561, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3840:5:139", + "src": "4756:5:141", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1164,13 +1598,13 @@ }, { "constant": false, - "id": 54461, + "id": 54564, "mutability": "mutable", "name": "offchainInput", - "nameLocation": "3891:13:139", + "nameLocation": "4807:13:141", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3876:28:139", + "scope": 54570, + "src": "4792:28:141", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -1178,10 +1612,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54460, + "id": 54563, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3876:5:139", + "src": "4792:5:141", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1190,54 +1624,54 @@ "visibility": "internal" } ], - "src": "3762:148:139" + "src": "4678:148:141" }, "returnParameters": { - "id": 54466, + "id": 54569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54465, + "id": 54568, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3934:21:139", + "scope": 54570, + "src": "4850:21:141", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 54464, + "id": 54567, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54463, + "id": 54566, "name": "GPv2Order.Data", "nameLocations": [ - "3934:9:139", - "3944:4:139" + "4850:9:141", + "4860:4:141" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "3934:14:139" + "referencedDeclaration": 14334, + "src": "4850:14:141" }, - "referencedDeclaration": 17121, - "src": "3934:14:139", + "referencedDeclaration": 14334, + "src": "4850:14:141", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "src": "3933:23:139" + "src": "4849:23:141" }, - "scope": 54468, + "scope": 54571, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -1247,59 +1681,63 @@ "baseContracts": [ { "baseName": { - "id": 54439, + "id": 54542, "name": "IConditionalOrder", "nameLocations": [ - "2647:17:139" + "3563:17:141" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54437, - "src": "2647:17:139" + "referencedDeclaration": 54540, + "src": "3563:17:141" }, - "id": 54440, + "id": 54543, "nodeType": "InheritanceSpecifier", - "src": "2647:17:139" + "src": "3563:17:141" }, { "baseName": { - "id": 54441, + "id": 54544, "name": "IERC165", "nameLocations": [ - "2666:7:139" + "3582:7:141" ], "nodeType": "IdentifierPath", "referencedDeclaration": 52197, - "src": "2666:7:139" + "src": "3582:7:141" }, - "id": 54442, + "id": 54545, "nodeType": "InheritanceSpecifier", - "src": "2666:7:139" + "src": "3582:7:141" } ], "canonicalName": "IConditionalOrderGenerator", "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 54438, + "id": 54541, "nodeType": "StructuredDocumentation", - "src": "2514:92:139", + "src": "3430:92:141", "text": " @title Conditional Order Generator Interface\n @author mfw78 " }, "fullyImplemented": false, "linearizedBaseContracts": [ - 54468, + 54571, 52197, - 54437 + 54540 ], "name": "IConditionalOrderGenerator", - "nameLocation": "2617:26:139", - "scope": 54469, + "nameLocation": "3533:26:141", + "scope": 54572, "usedErrors": [ - 54407 + 54484, + 54488, + 54494, + 54500, + 54504 ] } ], "license": "GPL-3.0" }, - "id": 139 + "id": 141 } \ No newline at end of file diff --git a/out/IConditionalOrder.sol/IConditionalOrderGenerator.json b/out/IConditionalOrder.sol/IConditionalOrderGenerator.json index f67ed93..4db0760 100644 --- a/out/IConditionalOrder.sol/IConditionalOrderGenerator.json +++ b/out/IConditionalOrder.sol/IConditionalOrderGenerator.json @@ -11,6 +11,60 @@ "name": "OrderNotValid", "type": "error" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollNever", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtBlock", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtEpoch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryNextBlock", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -167,6 +221,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "validateData", + "outputs": [], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -291,9 +358,10 @@ "methodIdentifiers": { "getTradeableOrder(address,address,bytes32,bytes,bytes)": "b8296fc4", "supportsInterface(bytes4)": "01ffc9a7", + "validateData(bytes)": "a6ffa36c", "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": "14a2a784" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"getTradeableOrder(address,address,bytes32,bytes,bytes)\":{\"details\":\"Get a tradeable order that can be posted to the CoW Protocol API and would pass signature validation. **MUST** revert if the order condition is not met.\",\"params\":{\"ctx\":\"the context of the order (bytes32(0) if merkle tree is used, otherwise the H(params))\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the parent `isValidSignature` call\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"},\"returns\":{\"_0\":\"the tradeable order for submission to the CoW Protocol API\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"Used in combination with `isValidSafeSignature` to verify that the order is signed by the Safe. **MUST** revert if the order condition is not met.The `order` parameter is ignored / not validated by the `IConditionalOrderGenerator` implementation. This parameter is included to allow more granular control over the order verification logic, and to allow a watch tower / user to propose a discrete order without it being generated by on-chain logic.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"Conditional Order Generator Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IConditionalOrder.sol\":\"IConditionalOrderGenerator\"},\"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/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/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699\",\"dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollNever\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtBlock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtEpoch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryNextBlock\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateData\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"getTradeableOrder(address,address,bytes32,bytes,bytes)\":{\"details\":\"Get a tradeable order that can be posted to the CoW Protocol API and would pass signature validation. **MUST** revert if the order condition is not met.\",\"params\":{\"ctx\":\"the context of the order (bytes32(0) if merkle tree is used, otherwise the H(params))\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the parent `isValidSignature` call\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"},\"returns\":{\"_0\":\"the tradeable order for submission to the CoW Protocol API\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"validateData(bytes)\":{\"details\":\"Throws if the data is invalid.\",\"params\":{\"data\":\"The ABI-encoded concrete order type's `Data` struct to be validated.\"}},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"Used in combination with `isValidSafeSignature` to verify that the order is signed by the Safe. **MUST** revert if the order condition is not met.The `order` parameter is ignored / not validated by the `IConditionalOrderGenerator` implementation. This parameter is included to allow more granular control over the order verification logic, and to allow a watch tower / user to propose a discrete order without it being generated by on-chain logic.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"Conditional Order Generator Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"validateData(bytes)\":{\"notice\":\"A helper function for SDK users to verify if a given conditional order's data is valid.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IConditionalOrder.sol\":\"IConditionalOrderGenerator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/safe/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -312,6 +380,60 @@ "type": "error", "name": "OrderNotValid" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollNever" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtBlock" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtEpoch" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryNextBlock" + }, { "inputs": [ { @@ -468,6 +590,18 @@ } ] }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function", + "name": "validateData" + }, { "inputs": [ { @@ -597,6 +731,12 @@ "supportsInterface(bytes4)": { "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas." }, + "validateData(bytes)": { + "details": "Throws if the data is invalid.", + "params": { + "data": "The ABI-encoded concrete order type's `Data` struct to be validated." + } + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "details": "Used in combination with `isValidSafeSignature` to verify that the order is signed by the Safe. **MUST** revert if the order condition is not met.The `order` parameter is ignored / not validated by the `IConditionalOrderGenerator` implementation. This parameter is included to allow more granular control over the order verification logic, and to allow a watch tower / user to propose a discrete order without it being generated by on-chain logic.", "params": { @@ -616,6 +756,9 @@ "userdoc": { "kind": "user", "methods": { + "validateData(bytes)": { + "notice": "A helper function for SDK users to verify if a given conditional order's data is valid." + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "notice": "Verify if a given discrete order is valid." } @@ -625,20 +768,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -653,22 +795,6 @@ "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/libraries/GPv2Interaction.sol": { "keccak256": "0xb950f05f76ac8044b82314ea5510941fdbc0f0e76e7f159023d435652b429528", "urls": [ @@ -685,6 +811,22 @@ ], "license": "LGPL-3.0-or-later" }, + "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { + "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", + "urls": [ + "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", + "dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", + "urls": [ + "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", + "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" + ], + "license": "MIT" + }, "lib/safe/contracts/interfaces/IERC165.sol": { "keccak256": "0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb", "urls": [ @@ -694,10 +836,10 @@ "license": "LGPL-3.0-only" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" } @@ -706,31 +848,31 @@ }, "ast": { "absolutePath": "src/interfaces/IConditionalOrder.sol", - "id": 54469, + "id": 54572, "exportedSymbols": { "GPv2Interaction": [ - 17090 + 14303 ], "GPv2Order": [ - 17246 + 14459 ], "IConditionalOrder": [ - 54437 + 54540 ], "IConditionalOrderGenerator": [ - 54468 + 54571 ], "IERC165": [ 52197 ] }, "nodeType": "SourceUnit", - "src": "36:3924:139", + "src": "36:4840:141", "nodes": [ { - "id": 54395, + "id": 54472, "nodeType": "PragmaDirective", - "src": "36:31:139", + "src": "36:31:141", "nodes": [], "literals": [ "solidity", @@ -743,24 +885,24 @@ ] }, { - "id": 54397, + "id": 54474, "nodeType": "ImportDirective", - "src": "69:62:139", + "src": "69:62:141", "nodes": [], "absolutePath": "lib/cowprotocol/src/contracts/libraries/GPv2Order.sol", "file": "cowprotocol/libraries/GPv2Order.sol", "nameLocation": "-1:-1:-1", - "scope": 54469, - "sourceUnit": 17247, + "scope": 54572, + "sourceUnit": 14460, "symbolAliases": [ { "foreign": { - "id": 54396, + "id": 54473, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "77:9:139", + "referencedDeclaration": 14459, + "src": "77:9:141", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -769,24 +911,24 @@ "unitAlias": "" }, { - "id": 54399, + "id": 54476, "nodeType": "ImportDirective", - "src": "132:74:139", + "src": "132:74:141", "nodes": [], "absolutePath": "lib/cowprotocol/src/contracts/libraries/GPv2Interaction.sol", "file": "cowprotocol/libraries/GPv2Interaction.sol", "nameLocation": "-1:-1:-1", - "scope": 54469, - "sourceUnit": 17091, + "scope": 54572, + "sourceUnit": 14304, "symbolAliases": [ { "foreign": { - "id": 54398, + "id": 54475, "name": "GPv2Interaction", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17090, - "src": "140:15:139", + "referencedDeclaration": 14303, + "src": "140:15:141", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -795,24 +937,24 @@ "unitAlias": "" }, { - "id": 54401, + "id": 54478, "nodeType": "ImportDirective", - "src": "207:52:139", + "src": "207:52:141", "nodes": [], "absolutePath": "lib/safe/contracts/interfaces/IERC165.sol", "file": "safe/interfaces/IERC165.sol", "nameLocation": "-1:-1:-1", - "scope": 54469, + "scope": 54572, "sourceUnit": 52198, "symbolAliases": [ { "foreign": { - "id": 54400, + "id": 54477, "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52197, - "src": "215:7:139", + "src": "215:7:141", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -821,37 +963,220 @@ "unitAlias": "" }, { - "id": 54437, + "id": 54540, "nodeType": "ContractDefinition", - "src": "370:2142:139", + "src": "370:3058:141", "nodes": [ { - "id": 54407, + "id": 54484, "nodeType": "ErrorDefinition", - "src": "624:28:139", + "src": "624:28:141", "nodes": [], "documentation": { - "id": 54403, + "id": 54480, "nodeType": "StructuredDocumentation", - "src": "404:215:139", + "src": "404:215:141", "text": "@dev This error is returned by the `getTradeableOrder` function if the order condition is not met.\n A parameter of `string` type is included to allow the caller to specify the reason for the failure." }, "errorSelector": "c8fc2725", "name": "OrderNotValid", - "nameLocation": "630:13:139", + "nameLocation": "630:13:141", "parameters": { - "id": 54406, + "id": 54483, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54405, + "id": 54482, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54407, - "src": "644:6:139", + "scope": 54484, + "src": "644:6:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 54481, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "644:6:141", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "643:8:141" + } + }, + { + "id": 54488, + "nodeType": "ErrorDefinition", + "src": "768:38:141", + "nodes": [], + "errorSelector": "d05f3065", + "name": "PollTryNextBlock", + "nameLocation": "774:16:141", + "parameters": { + "id": 54487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54486, + "mutability": "mutable", + "name": "reason", + "nameLocation": "798:6:141", + "nodeType": "VariableDeclaration", + "scope": 54488, + "src": "791:13:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 54485, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "791:6:141", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "790:15:141" + } + }, + { + "id": 54494, + "nodeType": "ErrorDefinition", + "src": "909:57:141", + "nodes": [], + "errorSelector": "1fe8506e", + "name": "PollTryAtBlock", + "nameLocation": "915:14:141", + "parameters": { + "id": 54493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54490, + "mutability": "mutable", + "name": "blockNumber", + "nameLocation": "938:11:141", + "nodeType": "VariableDeclaration", + "scope": 54494, + "src": "930:19:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54489, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "930:7:141", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 54492, + "mutability": "mutable", + "name": "reason", + "nameLocation": "958:6:141", + "nodeType": "VariableDeclaration", + "scope": 54494, + "src": "951:13:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 54491, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "951:6:141", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "929:36:141" + } + }, + { + "id": 54500, + "nodeType": "ErrorDefinition", + "src": "1079:55:141", + "nodes": [], + "errorSelector": "7e334637", + "name": "PollTryAtEpoch", + "nameLocation": "1085:14:141", + "parameters": { + "id": 54499, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54496, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "1108:9:141", + "nodeType": "VariableDeclaration", + "scope": 54500, + "src": "1100:17:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1100:7:141", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 54498, + "mutability": "mutable", + "name": "reason", + "nameLocation": "1126:6:141", + "nodeType": "VariableDeclaration", + "scope": 54500, + "src": "1119:13:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -859,10 +1184,10 @@ "typeString": "string" }, "typeName": { - "id": 54404, + "id": 54497, "name": "string", "nodeType": "ElementaryTypeName", - "src": "644:6:139", + "src": "1119:6:141", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -871,48 +1196,91 @@ "visibility": "internal" } ], - "src": "643:8:139" + "src": "1099:34:141" } }, { - "id": 54415, + "id": 54504, + "nodeType": "ErrorDefinition", + "src": "1234:31:141", + "nodes": [], + "errorSelector": "981b64cd", + "name": "PollNever", + "nameLocation": "1240:9:141", + "parameters": { + "id": 54503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54502, + "mutability": "mutable", + "name": "reason", + "nameLocation": "1257:6:141", + "nodeType": "VariableDeclaration", + "scope": 54504, + "src": "1250:13:141", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 54501, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1250:6:141", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1249:15:141" + } + }, + { + "id": 54512, "nodeType": "StructDefinition", - "src": "840:121:139", + "src": "1453:121:141", "nodes": [], "canonicalName": "IConditionalOrder.ConditionalOrderParams", "members": [ { "constant": false, - "id": 54410, + "id": 54507, "mutability": "mutable", "name": "handler", - "nameLocation": "898:7:139", + "nameLocation": "1511:7:141", "nodeType": "VariableDeclaration", - "scope": 54415, - "src": "880:25:139", + "scope": 54512, + "src": "1493:25:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", + "typeIdentifier": "t_contract$_IConditionalOrder_$54540", "typeString": "contract IConditionalOrder" }, "typeName": { - "id": 54409, + "id": 54506, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54408, + "id": 54505, "name": "IConditionalOrder", "nameLocations": [ - "880:17:139" + "1493:17:141" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54437, - "src": "880:17:139" + "referencedDeclaration": 54540, + "src": "1493:17:141" }, - "referencedDeclaration": 54437, - "src": "880:17:139", + "referencedDeclaration": 54540, + "src": "1493:17:141", "typeDescriptions": { - "typeIdentifier": "t_contract$_IConditionalOrder_$54437", + "typeIdentifier": "t_contract$_IConditionalOrder_$54540", "typeString": "contract IConditionalOrder" } }, @@ -920,13 +1288,13 @@ }, { "constant": false, - "id": 54412, + "id": 54509, "mutability": "mutable", "name": "salt", - "nameLocation": "923:4:139", + "nameLocation": "1536:4:141", "nodeType": "VariableDeclaration", - "scope": 54415, - "src": "915:12:139", + "scope": 54512, + "src": "1528:12:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -934,10 +1302,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54411, + "id": 54508, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "915:7:139", + "src": "1528:7:141", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -947,13 +1315,13 @@ }, { "constant": false, - "id": 54414, + "id": 54511, "mutability": "mutable", "name": "staticInput", - "nameLocation": "943:11:139", + "nameLocation": "1556:11:141", "nodeType": "VariableDeclaration", - "scope": 54415, - "src": "937:17:139", + "scope": 54512, + "src": "1550:17:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -961,10 +1329,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54413, + "id": 54510, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "937:5:139", + "src": "1550:5:141", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -974,19 +1342,19 @@ } ], "name": "ConditionalOrderParams", - "nameLocation": "847:22:139", - "scope": 54437, + "nameLocation": "1460:22:141", + "scope": 54540, "visibility": "public" }, { - "id": 54436, + "id": 54533, "nodeType": "FunctionDefinition", - "src": "2237:273:139", + "src": "2850:273:141", "nodes": [], "documentation": { - "id": 54416, + "id": 54513, "nodeType": "StructuredDocumentation", - "src": "967:1265:139", + "src": "1580:1265:141", "text": " Verify if a given discrete order is valid.\n @dev Used in combination with `isValidSafeSignature` to verify that the order is signed by the Safe.\n **MUST** revert if the order condition is not met.\n @dev The `order` parameter is ignored / not validated by the `IConditionalOrderGenerator` implementation.\n This parameter is included to allow more granular control over the order verification logic, and to\n allow a watch tower / user to propose a discrete order without it being generated by on-chain logic.\n @param owner the contract who is the owner of the order\n @param sender the `msg.sender` of the transaction\n @param _hash the hash of the order\n @param domainSeparator the domain separator used to sign the order\n @param ctx the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\n @param staticInput the static input for all discrete orders cut from this conditional order\n @param offchainInput dynamic off-chain input for a discrete order cut from this conditional order\n @param order `GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`)." }, "functionSelector": "14a2a784", @@ -994,20 +1362,20 @@ "kind": "function", "modifiers": [], "name": "verify", - "nameLocation": "2246:6:139", + "nameLocation": "2859:6:141", "parameters": { - "id": 54434, + "id": 54531, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54418, + "id": 54515, "mutability": "mutable", "name": "owner", - "nameLocation": "2270:5:139", + "nameLocation": "2883:5:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2262:13:139", + "scope": 54533, + "src": "2875:13:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1015,10 +1383,10 @@ "typeString": "address" }, "typeName": { - "id": 54417, + "id": 54514, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2262:7:139", + "src": "2875:7:141", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1029,13 +1397,13 @@ }, { "constant": false, - "id": 54420, + "id": 54517, "mutability": "mutable", "name": "sender", - "nameLocation": "2293:6:139", + "nameLocation": "2906:6:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2285:14:139", + "scope": 54533, + "src": "2898:14:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1043,10 +1411,10 @@ "typeString": "address" }, "typeName": { - "id": 54419, + "id": 54516, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2285:7:139", + "src": "2898:7:141", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1057,13 +1425,13 @@ }, { "constant": false, - "id": 54422, + "id": 54519, "mutability": "mutable", "name": "_hash", - "nameLocation": "2317:5:139", + "nameLocation": "2930:5:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2309:13:139", + "scope": 54533, + "src": "2922:13:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1071,10 +1439,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54421, + "id": 54518, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2309:7:139", + "src": "2922:7:141", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1084,13 +1452,13 @@ }, { "constant": false, - "id": 54424, + "id": 54521, "mutability": "mutable", "name": "domainSeparator", - "nameLocation": "2340:15:139", + "nameLocation": "2953:15:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2332:23:139", + "scope": 54533, + "src": "2945:23:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1098,10 +1466,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54423, + "id": 54520, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2332:7:139", + "src": "2945:7:141", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1111,13 +1479,13 @@ }, { "constant": false, - "id": 54426, + "id": 54523, "mutability": "mutable", "name": "ctx", - "nameLocation": "2373:3:139", + "nameLocation": "2986:3:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2365:11:139", + "scope": 54533, + "src": "2978:11:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1125,10 +1493,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54425, + "id": 54522, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2365:7:139", + "src": "2978:7:141", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1138,13 +1506,13 @@ }, { "constant": false, - "id": 54428, + "id": 54525, "mutability": "mutable", "name": "staticInput", - "nameLocation": "2401:11:139", + "nameLocation": "3014:11:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2386:26:139", + "scope": 54533, + "src": "2999:26:141", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -1152,10 +1520,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54427, + "id": 54524, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2386:5:139", + "src": "2999:5:141", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1165,13 +1533,13 @@ }, { "constant": false, - "id": 54430, + "id": 54527, "mutability": "mutable", "name": "offchainInput", - "nameLocation": "2437:13:139", + "nameLocation": "3050:13:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2422:28:139", + "scope": 54533, + "src": "3035:28:141", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -1179,10 +1547,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54429, + "id": 54526, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2422:5:139", + "src": "3035:5:141", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1192,52 +1560,114 @@ }, { "constant": false, - "id": 54433, + "id": 54530, "mutability": "mutable", "name": "order", - "nameLocation": "2484:5:139", + "nameLocation": "3097:5:141", "nodeType": "VariableDeclaration", - "scope": 54436, - "src": "2460:29:139", + "scope": 54533, + "src": "3073:29:141", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_calldata_ptr", + "typeIdentifier": "t_struct$_Data_$14334_calldata_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 54432, + "id": 54529, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54431, + "id": 54528, "name": "GPv2Order.Data", "nameLocations": [ - "2460:9:139", - "2470:4:139" + "3073:9:141", + "3083:4:141" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "2460:14:139" + "referencedDeclaration": 14334, + "src": "3073:14:141" }, - "referencedDeclaration": 17121, - "src": "2460:14:139", + "referencedDeclaration": 14334, + "src": "3073:14:141", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "src": "2252:243:139" + "src": "2865:243:141" + }, + "returnParameters": { + "id": 54532, + "nodeType": "ParameterList", + "parameters": [], + "src": "3122:0:141" + }, + "scope": 54540, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 54539, + "nodeType": "FunctionDefinition", + "src": "3371:55:141", + "nodes": [], + "documentation": { + "id": 54534, + "nodeType": "StructuredDocumentation", + "src": "3129:237:141", + "text": " A helper function for SDK users to verify if a given conditional order's data is valid.\n @param data The ABI-encoded concrete order type's `Data` struct to be validated.\n @dev Throws if the data is invalid." + }, + "functionSelector": "a6ffa36c", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "validateData", + "nameLocation": "3380:12:141", + "parameters": { + "id": 54537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54536, + "mutability": "mutable", + "name": "data", + "nameLocation": "3406:4:141", + "nodeType": "VariableDeclaration", + "scope": 54539, + "src": "3393:17:141", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 54535, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3393:5:141", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3392:19:141" }, "returnParameters": { - "id": 54435, + "id": 54538, "nodeType": "ParameterList", "parameters": [], - "src": "2509:0:139" + "src": "3425:0:141" }, - "scope": 54437, + "scope": 54540, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -1249,56 +1679,60 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 54402, + "id": 54479, "nodeType": "StructuredDocumentation", - "src": "261:108:139", + "src": "261:108:141", "text": " @title Conditional Order Interface\n @author CoW Protocol Developers + mfw78 " }, "fullyImplemented": false, "linearizedBaseContracts": [ - 54437 + 54540 ], "name": "IConditionalOrder", - "nameLocation": "380:17:139", - "scope": 54469, + "nameLocation": "380:17:141", + "scope": 54572, "usedErrors": [ - 54407 + 54484, + 54488, + 54494, + 54500, + 54504 ] }, { - "id": 54468, + "id": 54571, "nodeType": "ContractDefinition", - "src": "2607:1352:139", + "src": "3523:1352:141", "nodes": [ { - "id": 54450, + "id": 54553, "nodeType": "EventDefinition", - "src": "2914:102:139", + "src": "3830:102:141", "nodes": [], "anonymous": false, "documentation": { - "id": 54443, + "id": 54546, "nodeType": "StructuredDocumentation", - "src": "2680:229:139", + "src": "3596:229:141", "text": " @dev This event is emitted when a new conditional order is created.\n @param owner the address that has created the conditional order\n @param params the address / salt / data of the conditional order" }, "eventSelector": "2cceac5555b0ca45a3744ced542f54b56ad2eb45e521962372eef212a2cbf361", "name": "ConditionalOrderCreated", - "nameLocation": "2920:23:139", + "nameLocation": "3836:23:141", "parameters": { - "id": 54449, + "id": 54552, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54445, + "id": 54548, "indexed": true, "mutability": "mutable", "name": "owner", - "nameLocation": "2960:5:139", + "nameLocation": "3876:5:141", "nodeType": "VariableDeclaration", - "scope": 54450, - "src": "2944:21:139", + "scope": 54553, + "src": "3860:21:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1306,10 +1740,10 @@ "typeString": "address" }, "typeName": { - "id": 54444, + "id": 54547, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2944:7:139", + "src": "3860:7:141", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1320,56 +1754,56 @@ }, { "constant": false, - "id": 54448, + "id": 54551, "indexed": false, "mutability": "mutable", "name": "params", - "nameLocation": "3008:6:139", + "nameLocation": "3924:6:141", "nodeType": "VariableDeclaration", - "scope": 54450, - "src": "2967:47:139", + "scope": 54553, + "src": "3883:47:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_memory_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_memory_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 54447, + "id": 54550, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54446, + "id": 54549, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "2967:17:139", - "2985:22:139" + "3883:17:141", + "3901:22:141" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "2967:40:139" + "referencedDeclaration": 54512, + "src": "3883:40:141" }, - "referencedDeclaration": 54415, - "src": "2967:40:139", + "referencedDeclaration": 54512, + "src": "3883:40:141", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, "visibility": "internal" } ], - "src": "2943:72:139" + "src": "3859:72:141" } }, { - "id": 54467, + "id": 54570, "nodeType": "FunctionDefinition", - "src": "3736:221:139", + "src": "4652:221:141", "nodes": [], "documentation": { - "id": 54451, + "id": 54554, "nodeType": "StructuredDocumentation", - "src": "3022:709:139", + "src": "3938:709:141", "text": " @dev Get a tradeable order that can be posted to the CoW Protocol API and would pass signature validation.\n **MUST** revert if the order condition is not met.\n @param owner the contract who is the owner of the order\n @param sender the `msg.sender` of the parent `isValidSignature` call\n @param ctx the context of the order (bytes32(0) if merkle tree is used, otherwise the H(params))\n @param staticInput the static input for all discrete orders cut from this conditional order\n @param offchainInput dynamic off-chain input for a discrete order cut from this conditional order\n @return the tradeable order for submission to the CoW Protocol API" }, "functionSelector": "b8296fc4", @@ -1377,20 +1811,20 @@ "kind": "function", "modifiers": [], "name": "getTradeableOrder", - "nameLocation": "3745:17:139", + "nameLocation": "4661:17:141", "parameters": { - "id": 54462, + "id": 54565, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54453, + "id": 54556, "mutability": "mutable", "name": "owner", - "nameLocation": "3780:5:139", + "nameLocation": "4696:5:141", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3772:13:139", + "scope": 54570, + "src": "4688:13:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1398,10 +1832,10 @@ "typeString": "address" }, "typeName": { - "id": 54452, + "id": 54555, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3772:7:139", + "src": "4688:7:141", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1412,13 +1846,13 @@ }, { "constant": false, - "id": 54455, + "id": 54558, "mutability": "mutable", "name": "sender", - "nameLocation": "3803:6:139", + "nameLocation": "4719:6:141", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3795:14:139", + "scope": 54570, + "src": "4711:14:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1426,10 +1860,10 @@ "typeString": "address" }, "typeName": { - "id": 54454, + "id": 54557, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3795:7:139", + "src": "4711:7:141", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1440,13 +1874,13 @@ }, { "constant": false, - "id": 54457, + "id": 54560, "mutability": "mutable", "name": "ctx", - "nameLocation": "3827:3:139", + "nameLocation": "4743:3:141", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3819:11:139", + "scope": 54570, + "src": "4735:11:141", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1454,10 +1888,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54456, + "id": 54559, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3819:7:139", + "src": "4735:7:141", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1467,13 +1901,13 @@ }, { "constant": false, - "id": 54459, + "id": 54562, "mutability": "mutable", "name": "staticInput", - "nameLocation": "3855:11:139", + "nameLocation": "4771:11:141", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3840:26:139", + "scope": 54570, + "src": "4756:26:141", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -1481,10 +1915,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54458, + "id": 54561, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3840:5:139", + "src": "4756:5:141", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1494,13 +1928,13 @@ }, { "constant": false, - "id": 54461, + "id": 54564, "mutability": "mutable", "name": "offchainInput", - "nameLocation": "3891:13:139", + "nameLocation": "4807:13:141", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3876:28:139", + "scope": 54570, + "src": "4792:28:141", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -1508,10 +1942,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54460, + "id": 54563, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3876:5:139", + "src": "4792:5:141", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1520,54 +1954,54 @@ "visibility": "internal" } ], - "src": "3762:148:139" + "src": "4678:148:141" }, "returnParameters": { - "id": 54466, + "id": 54569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54465, + "id": 54568, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54467, - "src": "3934:21:139", + "scope": 54570, + "src": "4850:21:141", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 54464, + "id": 54567, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54463, + "id": 54566, "name": "GPv2Order.Data", "nameLocations": [ - "3934:9:139", - "3944:4:139" + "4850:9:141", + "4860:4:141" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "3934:14:139" + "referencedDeclaration": 14334, + "src": "4850:14:141" }, - "referencedDeclaration": 17121, - "src": "3934:14:139", + "referencedDeclaration": 14334, + "src": "4850:14:141", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "src": "3933:23:139" + "src": "4849:23:141" }, - "scope": 54468, + "scope": 54571, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -1577,59 +2011,63 @@ "baseContracts": [ { "baseName": { - "id": 54439, + "id": 54542, "name": "IConditionalOrder", "nameLocations": [ - "2647:17:139" + "3563:17:141" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54437, - "src": "2647:17:139" + "referencedDeclaration": 54540, + "src": "3563:17:141" }, - "id": 54440, + "id": 54543, "nodeType": "InheritanceSpecifier", - "src": "2647:17:139" + "src": "3563:17:141" }, { "baseName": { - "id": 54441, + "id": 54544, "name": "IERC165", "nameLocations": [ - "2666:7:139" + "3582:7:141" ], "nodeType": "IdentifierPath", "referencedDeclaration": 52197, - "src": "2666:7:139" + "src": "3582:7:141" }, - "id": 54442, + "id": 54545, "nodeType": "InheritanceSpecifier", - "src": "2666:7:139" + "src": "3582:7:141" } ], "canonicalName": "IConditionalOrderGenerator", "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 54438, + "id": 54541, "nodeType": "StructuredDocumentation", - "src": "2514:92:139", + "src": "3430:92:141", "text": " @title Conditional Order Generator Interface\n @author mfw78 " }, "fullyImplemented": false, "linearizedBaseContracts": [ - 54468, + 54571, 52197, - 54437 + 54540 ], "name": "IConditionalOrderGenerator", - "nameLocation": "2617:26:139", - "scope": 54469, + "nameLocation": "3533:26:141", + "scope": 54572, "usedErrors": [ - 54407 + 54484, + 54488, + 54494, + 54500, + 54504 ] } ], "license": "GPL-3.0" }, - "id": 139 + "id": 141 } \ No newline at end of file diff --git a/out/ISwapGuard.sol/ISwapGuard.json b/out/ISwapGuard.sol/ISwapGuard.json index 809d31d..d4d5778 100644 --- a/out/ISwapGuard.sol/ISwapGuard.json +++ b/out/ISwapGuard.sol/ISwapGuard.json @@ -147,7 +147,7 @@ "supportsInterface(bytes4)": "01ffc9a7", "verify((address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32),bytes32,(address,bytes32,bytes),bytes)": "f9ae35a2" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"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\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"verify((address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32),bytes32,(address,bytes32,bytes),bytes)\":{\"params\":{\"ctx\":\"The context of the order (bytes32(0) if a merkle tree is used, otherwise H(params))\",\"offchainInput\":\"Any offchain input to verify.\",\"order\":\"The order to verify.\",\"params\":\"The conditional order parameters (handler, salt, staticInput).\"},\"returns\":{\"_0\":\"True if the order is allowed to be settled via CoW Protocol.\"}}},\"title\":\"SwapGuard Interface - Restrict CoW Protocol settlement for an account using `ComposableCoW`.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify((address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32),bytes32,(address,bytes32,bytes),bytes)\":{\"notice\":\"Verify that the order is allowed to be settled via CoW Protocol.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISwapGuard.sol\":\"ISwapGuard\"},\"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/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/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"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\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"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\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"verify((address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32),bytes32,(address,bytes32,bytes),bytes)\":{\"params\":{\"ctx\":\"The context of the order (bytes32(0) if a merkle tree is used, otherwise H(params))\",\"offchainInput\":\"Any offchain input to verify.\",\"order\":\"The order to verify.\",\"params\":\"The conditional order parameters (handler, salt, staticInput).\"},\"returns\":{\"_0\":\"True if the order is allowed to be settled via CoW Protocol.\"}}},\"title\":\"SwapGuard Interface - Restrict CoW Protocol settlement for an account using `ComposableCoW`.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify((address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32),bytes32,(address,bytes32,bytes),bytes)\":{\"notice\":\"Verify that the order is allowed to be settled via CoW Protocol.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISwapGuard.sol\":\"ISwapGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/safe/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]},\"src/interfaces/ISwapGuard.sol\":{\"keccak256\":\"0x60abdef709d22cb95e4b1d4680cb70d5286cfb5aa71ec65868cc44164ef8790f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7593245e22ffc533a073891affdbb003fa56eaa5ef7f0202a673b52968ad7ed5\",\"dweb:/ipfs/QmRhAvNzbHp8qfrw7eHZP6EDWw42tXMXSV3KuyhyxFy3Nx\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -320,20 +320,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -348,22 +347,6 @@ "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/libraries/GPv2Interaction.sol": { "keccak256": "0xb950f05f76ac8044b82314ea5510941fdbc0f0e76e7f159023d435652b429528", "urls": [ @@ -380,6 +363,22 @@ ], "license": "LGPL-3.0-or-later" }, + "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { + "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", + "urls": [ + "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", + "dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", + "urls": [ + "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", + "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" + ], + "license": "MIT" + }, "lib/safe/contracts/interfaces/IERC165.sol": { "keccak256": "0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb", "urls": [ @@ -389,10 +388,10 @@ "license": "LGPL-3.0-only" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" }, @@ -409,28 +408,28 @@ }, "ast": { "absolutePath": "src/interfaces/ISwapGuard.sol", - "id": 54497, + "id": 54600, "exportedSymbols": { "GPv2Order": [ - 17246 + 14459 ], "IConditionalOrder": [ - 54437 + 54540 ], "IERC165": [ 52197 ], "ISwapGuard": [ - 54496 + 54599 ] }, "nodeType": "SourceUnit", - "src": "36:1071:140", + "src": "36:1071:142", "nodes": [ { - "id": 54470, + "id": 54573, "nodeType": "PragmaDirective", - "src": "36:31:140", + "src": "36:31:142", "nodes": [], "literals": [ "solidity", @@ -443,24 +442,24 @@ ] }, { - "id": 54472, + "id": 54575, "nodeType": "ImportDirective", - "src": "69:62:140", + "src": "69:62:142", "nodes": [], "absolutePath": "lib/cowprotocol/src/contracts/libraries/GPv2Order.sol", "file": "cowprotocol/libraries/GPv2Order.sol", "nameLocation": "-1:-1:-1", - "scope": 54497, - "sourceUnit": 17247, + "scope": 54600, + "sourceUnit": 14460, "symbolAliases": [ { "foreign": { - "id": 54471, + "id": 54574, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "77:9:140", + "referencedDeclaration": 14459, + "src": "77:9:142", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -469,24 +468,24 @@ "unitAlias": "" }, { - "id": 54474, + "id": 54577, "nodeType": "ImportDirective", - "src": "132:52:140", + "src": "132:52:142", "nodes": [], "absolutePath": "lib/safe/contracts/interfaces/IERC165.sol", "file": "safe/interfaces/IERC165.sol", "nameLocation": "-1:-1:-1", - "scope": 54497, + "scope": 54600, "sourceUnit": 52198, "symbolAliases": [ { "foreign": { - "id": 54473, + "id": 54576, "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52197, - "src": "140:7:140", + "src": "140:7:142", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -495,24 +494,24 @@ "unitAlias": "" }, { - "id": 54476, + "id": 54579, "nodeType": "ImportDirective", - "src": "186:58:140", + "src": "186:58:142", "nodes": [], "absolutePath": "src/interfaces/IConditionalOrder.sol", "file": "./IConditionalOrder.sol", "nameLocation": "-1:-1:-1", - "scope": 54497, - "sourceUnit": 54469, + "scope": 54600, + "sourceUnit": 54572, "symbolAliases": [ { "foreign": { - "id": 54475, + "id": 54578, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "194:17:140", + "referencedDeclaration": 54540, + "src": "194:17:142", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -521,19 +520,19 @@ "unitAlias": "" }, { - "id": 54496, + "id": 54599, "nodeType": "ContractDefinition", - "src": "394:712:140", + "src": "394:712:142", "nodes": [ { - "id": 54495, + "id": 54598, "nodeType": "FunctionDefinition", - "src": "889:215:140", + "src": "889:215:142", "nodes": [], "documentation": { - "id": 54480, + "id": 54583, "nodeType": "StructuredDocumentation", - "src": "432:452:140", + "src": "432:452:142", "text": " @notice Verify that the order is allowed to be settled via CoW Protocol.\n @param order The order to verify.\n @param ctx The context of the order (bytes32(0) if a merkle tree is used, otherwise H(params))\n @param params The conditional order parameters (handler, salt, staticInput).\n @param offchainInput Any offchain input to verify.\n @return True if the order is allowed to be settled via CoW Protocol." }, "functionSelector": "f9ae35a2", @@ -541,44 +540,44 @@ "kind": "function", "modifiers": [], "name": "verify", - "nameLocation": "898:6:140", + "nameLocation": "898:6:142", "parameters": { - "id": 54491, + "id": 54594, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54483, + "id": 54586, "mutability": "mutable", "name": "order", - "nameLocation": "938:5:140", + "nameLocation": "938:5:142", "nodeType": "VariableDeclaration", - "scope": 54495, - "src": "914:29:140", + "scope": 54598, + "src": "914:29:142", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_calldata_ptr", + "typeIdentifier": "t_struct$_Data_$14334_calldata_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 54482, + "id": 54585, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54481, + "id": 54584, "name": "GPv2Order.Data", "nameLocations": [ - "914:9:140", - "924:4:140" + "914:9:142", + "924:4:142" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "914:14:140" + "referencedDeclaration": 14334, + "src": "914:14:142" }, - "referencedDeclaration": 17121, - "src": "914:14:140", + "referencedDeclaration": 14334, + "src": "914:14:142", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, @@ -586,13 +585,13 @@ }, { "constant": false, - "id": 54485, + "id": 54588, "mutability": "mutable", "name": "ctx", - "nameLocation": "961:3:140", + "nameLocation": "961:3:142", "nodeType": "VariableDeclaration", - "scope": 54495, - "src": "953:11:140", + "scope": 54598, + "src": "953:11:142", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -600,10 +599,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54484, + "id": 54587, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "953:7:140", + "src": "953:7:142", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -613,37 +612,37 @@ }, { "constant": false, - "id": 54488, + "id": 54591, "mutability": "mutable", "name": "params", - "nameLocation": "1024:6:140", + "nameLocation": "1024:6:142", "nodeType": "VariableDeclaration", - "scope": 54495, - "src": "974:56:140", + "scope": 54598, + "src": "974:56:142", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 54487, + "id": 54590, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54486, + "id": 54589, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "974:17:140", - "992:22:140" + "974:17:142", + "992:22:142" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "974:40:140" + "referencedDeclaration": 54512, + "src": "974:40:142" }, - "referencedDeclaration": 54415, - "src": "974:40:140", + "referencedDeclaration": 54512, + "src": "974:40:142", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, @@ -651,13 +650,13 @@ }, { "constant": false, - "id": 54490, + "id": 54593, "mutability": "mutable", "name": "offchainInput", - "nameLocation": "1055:13:140", + "nameLocation": "1055:13:142", "nodeType": "VariableDeclaration", - "scope": 54495, - "src": "1040:28:140", + "scope": 54598, + "src": "1040:28:142", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -665,10 +664,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54489, + "id": 54592, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1040:5:140", + "src": "1040:5:142", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -677,21 +676,21 @@ "visibility": "internal" } ], - "src": "904:170:140" + "src": "904:170:142" }, "returnParameters": { - "id": 54494, + "id": 54597, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54493, + "id": 54596, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54495, - "src": "1098:4:140", + "scope": 54598, + "src": "1098:4:142", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -699,10 +698,10 @@ "typeString": "bool" }, "typeName": { - "id": 54492, + "id": 54595, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1098:4:140", + "src": "1098:4:142", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -711,9 +710,9 @@ "visibility": "internal" } ], - "src": "1097:6:140" + "src": "1097:6:142" }, - "scope": 54496, + "scope": 54599, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -723,41 +722,41 @@ "baseContracts": [ { "baseName": { - "id": 54478, + "id": 54581, "name": "IERC165", "nameLocations": [ - "418:7:140" + "418:7:142" ], "nodeType": "IdentifierPath", "referencedDeclaration": 52197, - "src": "418:7:140" + "src": "418:7:142" }, - "id": 54479, + "id": 54582, "nodeType": "InheritanceSpecifier", - "src": "418:7:140" + "src": "418:7:142" } ], "canonicalName": "ISwapGuard", "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 54477, + "id": 54580, "nodeType": "StructuredDocumentation", - "src": "246:147:140", + "src": "246:147:142", "text": " @title SwapGuard Interface - Restrict CoW Protocol settlement for an account using `ComposableCoW`.\n @author mfw78 " }, "fullyImplemented": false, "linearizedBaseContracts": [ - 54496, + 54599, 52197 ], "name": "ISwapGuard", - "nameLocation": "404:10:140", - "scope": 54497, + "nameLocation": "404:10:142", + "scope": 54600, "usedErrors": [] } ], "license": "GPL-3.0" }, - "id": 140 + "id": 142 } \ No newline at end of file diff --git a/out/IValueFactory.sol/IValueFactory.json b/out/IValueFactory.sol/IValueFactory.json index d9931ca..9631b4e 100644 --- a/out/IValueFactory.sol/IValueFactory.json +++ b/out/IValueFactory.sol/IValueFactory.json @@ -33,7 +33,7 @@ "methodIdentifiers": { "getValue(bytes)": "b6576bdf" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"getValue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Designed to be used with Safe + ExtensibleFallbackHandler + ComposableCoW\",\"kind\":\"dev\",\"methods\":{\"getValue(bytes)\":{\"params\":{\"data\":\"Implementation specific off-chain data\"},\"returns\":{\"value\":\"The value at the time of the call\"}}},\"title\":\"IValueFactory - An interface for on-chain value determination\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getValue(bytes)\":{\"notice\":\"Return a value at the time of the call\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IValueFactory.sol\":\"IValueFactory\"},\"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\":{\"src/interfaces/IValueFactory.sol\":{\"keccak256\":\"0x3304ef8a0a1727258ac8278bf5426daeac37ece4653eaaff87b15143814a8122\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9934d278069dd9474065777833a81e65af227b85d350b6c1f012b812101be9de\",\"dweb:/ipfs/QmcMBdvY7wLs92FCyutDGQGtHnYryjnaykREvDNBNM8Yih\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"getValue\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Designed to be used with Safe + ExtensibleFallbackHandler + ComposableCoW\",\"kind\":\"dev\",\"methods\":{\"getValue(bytes)\":{\"params\":{\"data\":\"Implementation specific off-chain data\"},\"returns\":{\"value\":\"The value at the time of the call\"}}},\"title\":\"IValueFactory - An interface for on-chain value determination\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getValue(bytes)\":{\"notice\":\"Return a value at the time of the call\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IValueFactory.sol\":\"IValueFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"src/interfaces/IValueFactory.sol\":{\"keccak256\":\"0x3304ef8a0a1727258ac8278bf5426daeac37ece4653eaaff87b15143814a8122\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9934d278069dd9474065777833a81e65af227b85d350b6c1f012b812101be9de\",\"dweb:/ipfs/QmcMBdvY7wLs92FCyutDGQGtHnYryjnaykREvDNBNM8Yih\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -87,20 +87,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -128,19 +127,19 @@ }, "ast": { "absolutePath": "src/interfaces/IValueFactory.sol", - "id": 54596, + "id": 54612, "exportedSymbols": { "IValueFactory": [ - 54595 + 54611 ] }, "nodeType": "SourceUnit", - "src": "36:517:142", + "src": "36:517:143", "nodes": [ { - "id": 54585, + "id": 54601, "nodeType": "PragmaDirective", - "src": "36:31:142", + "src": "36:31:143", "nodes": [], "literals": [ "solidity", @@ -153,19 +152,19 @@ ] }, { - "id": 54595, + "id": 54611, "nodeType": "ContractDefinition", - "src": "268:284:142", + "src": "268:284:143", "nodes": [ { - "id": 54594, + "id": 54610, "nodeType": "FunctionDefinition", - "src": "473:77:142", + "src": "473:77:143", "nodes": [], "documentation": { - "id": 54587, + "id": 54603, "nodeType": "StructuredDocumentation", - "src": "298:170:142", + "src": "298:170:143", "text": " Return a value at the time of the call\n @param data Implementation specific off-chain data\n @return value The value at the time of the call" }, "functionSelector": "b6576bdf", @@ -173,20 +172,20 @@ "kind": "function", "modifiers": [], "name": "getValue", - "nameLocation": "482:8:142", + "nameLocation": "482:8:143", "parameters": { - "id": 54590, + "id": 54606, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54589, + "id": 54605, "mutability": "mutable", "name": "data", - "nameLocation": "506:4:142", + "nameLocation": "506:4:143", "nodeType": "VariableDeclaration", - "scope": 54594, - "src": "491:19:142", + "scope": 54610, + "src": "491:19:143", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -194,10 +193,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54588, + "id": 54604, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "491:5:142", + "src": "491:5:143", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -206,21 +205,21 @@ "visibility": "internal" } ], - "src": "490:21:142" + "src": "490:21:143" }, "returnParameters": { - "id": 54593, + "id": 54609, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54592, + "id": 54608, "mutability": "mutable", "name": "value", - "nameLocation": "543:5:142", + "nameLocation": "543:5:143", "nodeType": "VariableDeclaration", - "scope": 54594, - "src": "535:13:142", + "scope": 54610, + "src": "535:13:143", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -228,10 +227,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54591, + "id": 54607, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "535:7:142", + "src": "535:7:143", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -240,9 +239,9 @@ "visibility": "internal" } ], - "src": "534:15:142" + "src": "534:15:143" }, - "scope": 54595, + "scope": 54611, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -254,22 +253,22 @@ "contractDependencies": [], "contractKind": "interface", "documentation": { - "id": 54586, + "id": 54602, "nodeType": "StructuredDocumentation", - "src": "69:198:142", + "src": "69:198:143", "text": " @title IValueFactory - An interface for on-chain value determination\n @author mfw78 \n @dev Designed to be used with Safe + ExtensibleFallbackHandler + ComposableCoW" }, "fullyImplemented": false, "linearizedBaseContracts": [ - 54595 + 54611 ], "name": "IValueFactory", - "nameLocation": "278:13:142", - "scope": 54596, + "nameLocation": "278:13:143", + "scope": 54612, "usedErrors": [] } ], "license": "GPL-3.0" }, - "id": 142 + "id": 143 } \ No newline at end of file diff --git a/out/PerpetualStableSwap.sol/PerpetualStableSwap.json b/out/PerpetualStableSwap.sol/PerpetualStableSwap.json index 7365d9d..e7d21a2 100644 --- a/out/PerpetualStableSwap.sol/PerpetualStableSwap.json +++ b/out/PerpetualStableSwap.sol/PerpetualStableSwap.json @@ -11,6 +11,60 @@ "name": "OrderNotValid", "type": "error" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollNever", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtBlock", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtEpoch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryNextBlock", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -167,6 +221,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "validateData", + "outputs": [], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -279,21 +346,22 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b50610f82806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a71461004657806314a2a7841461006e578063b8296fc414610083575b600080fd5b610059610054366004610858565b6100a3565b60405190151581526020015b60405180910390f35b61008161007c36600461090f565b61013c565b005b6100966100913660046109fd565b610259565b6040516100659190610a9c565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061013657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061014d8b8b8989898989610259565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461024c57604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b8a565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102c686860187610c0f565b905060006102d48a83610475565b9050600081604001511161034757604080518082018252600a81527f6e6f742066756e64656400000000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b8a565b604051806101800160405280826000015173ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200182604001518152602001826060015181526020016103d184604001516106f0565b63ffffffff16815260200183608001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b604080516080810182526000808252602082018190529181018290526060810191909152815160208301516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152600091908416906370a0823190602401602060405180830381865afa158015610510573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105349190610cbd565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301529192506000918416906370a0823190602401602060405180830381865afa1580156105a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ca9190610cbd565b9050806105d8858486610712565b11156106645760405180608001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001612710886060015161271061063c9190610d05565b610647888789610712565b6106519190610d18565b61065b9190610d5e565b905294506106e6565b60405180608001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200182815260200161271088606001516127106106c29190610d05565b6106cd87868a610712565b6106d79190610d18565b6106e19190610d5e565b905294505b5050505092915050565b600081806106fe8142610d72565b6107089190610d95565b6101369190610dbd565b6000808473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107849190610de1565b905060008373ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f79190610de1565b90508060ff168260ff16111561082d576108118183610e04565b61081c90600a610f3d565b6108269086610d5e565b925061084f565b6108378282610e04565b61084290600a610f3d565b61084c9086610d18565b92505b50509392505050565b60006020828403121561086a57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461089a57600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146108c357600080fd5b50565b60008083601f8401126108d857600080fd5b50813567ffffffffffffffff8111156108f057600080fd5b60208301915083602082850101111561090857600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561092f57600080fd5b6109398b356108a1565b8a35995060208b013561094b816108a1565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561097d57600080fd5b6109898e838f016108c6565b909750955060c08d01359150808211156109a257600080fd5b506109af8d828e016108c6565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff200112156109e857600080fd5b60e08b0190509295989b9194979a5092959850565b600080600080600080600060a0888a031215610a1857600080fd5b8735610a23816108a1565b96506020880135610a33816108a1565b955060408801359450606088013567ffffffffffffffff80821115610a5757600080fd5b610a638b838c016108c6565b909650945060808a0135915080821115610a7c57600080fd5b50610a898a828b016108c6565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610ae2602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610b0a604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610b3660a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610b6b8285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b81811015610bb757858101830151858201604001528201610b9b565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803563ffffffff81168114610c0a57600080fd5b919050565b600060a08284031215610c2157600080fd5b60405160a0810181811067ffffffffffffffff82111715610c6b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040528235610c79816108a1565b81526020830135610c89816108a1565b6020820152610c9a60408401610bf6565b604082015260608301356060820152608083013560808201528091505092915050565b600060208284031215610ccf57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561013657610136610cd6565b808202811582820484141761013657610136610cd6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610d6d57610d6d610d2f565b500490565b600063ffffffff80841680610d8957610d89610d2f565b92169190910492915050565b63ffffffff818116838216028082169190828114610db557610db5610cd6565b505092915050565b63ffffffff818116838216019080821115610dda57610dda610cd6565b5092915050565b600060208284031215610df357600080fd5b815160ff8116811461089a57600080fd5b60ff828116828216039081111561013657610136610cd6565b600181815b80851115610e7657817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610e5c57610e5c610cd6565b80851615610e6957918102915b93841c9390800290610e22565b509250929050565b600082610e8d57506001610136565b81610e9a57506000610136565b8160018114610eb05760028114610eba57610ed6565b6001915050610136565b60ff841115610ecb57610ecb610cd6565b50506001821b610136565b5060208310610133831016604e8410600b8410161715610ef9575081810a610136565b610f038383610e1d565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610f3557610f35610cd6565b029392505050565b600061089a60ff841683610e7e56fea2646970667358221220c953943763ce3d3e068c860b503cfb8ae26ef3b1c526cf1e6dad8098e70e35f764736f6c63430008130033", - "sourceMap": "559:4317:144:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b50611063806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806314a2a78414610079578063a6ffa36c1461008e578063b8296fc41461009f575b600080fd5b61006461005f366004610874565b6100bf565b60405190151581526020015b60405180910390f35b61008c610087366004610928565b610158565b005b61008c61009c366004610a45565b50565b6100b26100ad366004610b14565b610275565b6040516100709190610bb3565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061015257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101698b8b8989898989610275565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461026857604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610ca1565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102e286860187610d0d565b905060006102f08a83610491565b9050600081604001511161036357604080518082018252600a81527f6e6f742066756e64656400000000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610ca1565b604051806101800160405280826000015173ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200182604001518152602001826060015181526020016103ed846040015161070c565b63ffffffff16815260200183608001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b604080516080810182526000808252602082018190529181018290526060810191909152815160208301516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152600091908416906370a0823190602401602060405180830381865afa15801561052c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105509190610d9e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301529192506000918416906370a0823190602401602060405180830381865afa1580156105c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e69190610d9e565b9050806105f485848661072e565b11156106805760405180608001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200161271088606001516127106106589190610de6565b61066388878961072e565b61066d9190610df9565b6106779190610e3f565b90529450610702565b60405180608001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200182815260200161271088606001516127106106de9190610de6565b6106e987868a61072e565b6106f39190610df9565b6106fd9190610e3f565b905294505b5050505092915050565b6000818061071a8142610e53565b6107249190610e76565b6101529190610e9e565b6000808473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190610ec2565b905060008373ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108139190610ec2565b90508060ff168260ff1611156108495761082d8183610ee5565b61083890600a61101e565b6108429086610e3f565b925061086b565b6108538282610ee5565b61085e90600a61101e565b6108689086610df9565b92505b50509392505050565b60006020828403121561088657600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146108b657600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461009c57600080fd5b60008083601f8401126108f157600080fd5b50813567ffffffffffffffff81111561090957600080fd5b60208301915083602082850101111561092157600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561094857600080fd5b6109528b356108bd565b8a35995060208b0135610964816108bd565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561099657600080fd5b6109a28e838f016108df565b909750955060c08d01359150808211156109bb57600080fd5b506109c88d828e016108df565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20011215610a0157600080fd5b60e08b0190509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610a5757600080fd5b813567ffffffffffffffff80821115610a6f57600080fd5b818401915084601f830112610a8357600080fd5b813581811115610a9557610a95610a16565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610adb57610adb610a16565b81604052828152876020848701011115610af457600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080600080600060a0888a031215610b2f57600080fd5b8735610b3a816108bd565b96506020880135610b4a816108bd565b955060408801359450606088013567ffffffffffffffff80821115610b6e57600080fd5b610b7a8b838c016108df565b909650945060808a0135915080821115610b9357600080fd5b50610ba08a828b016108df565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610bf9602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610c21604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610c4d60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610c828285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b81811015610cce57858101830151858201604001528201610cb2565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b600060a08284031215610d1f57600080fd5b60405160a0810181811067ffffffffffffffff82111715610d4257610d42610a16565b6040528235610d50816108bd565b81526020830135610d60816108bd565b6020820152604083013563ffffffff81168114610d7c57600080fd5b6040820152606083810135908201526080928301359281019290925250919050565b600060208284031215610db057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561015257610152610db7565b808202811582820484141761015257610152610db7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610e4e57610e4e610e10565b500490565b600063ffffffff80841680610e6a57610e6a610e10565b92169190910492915050565b63ffffffff818116838216028082169190828114610e9657610e96610db7565b505092915050565b63ffffffff818116838216019080821115610ebb57610ebb610db7565b5092915050565b600060208284031215610ed457600080fd5b815160ff811681146108b657600080fd5b60ff828116828216039081111561015257610152610db7565b600181815b80851115610f5757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610f3d57610f3d610db7565b80851615610f4a57918102915b93841c9390800290610f03565b509250929050565b600082610f6e57506001610152565b81610f7b57506000610152565b8160018114610f915760028114610f9b57610fb7565b6001915050610152565b60ff841115610fac57610fac610db7565b50506001821b610152565b5060208310610133831016604e8410600b8410161715610fda575081810a610152565b610fe48383610efe565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561101657611016610db7565b029392505050565b60006108b660ff841683610f5f56fea26469706673582212200c44b326291381ee4ba486b7a4e1347f461d327624ed67d5ca668becc2f1695b64736f6c63430008130033", + "sourceMap": "569:4317:146:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a71461004657806314a2a7841461006e578063b8296fc414610083575b600080fd5b610059610054366004610858565b6100a3565b60405190151581526020015b60405180910390f35b61008161007c36600461090f565b61013c565b005b6100966100913660046109fd565b610259565b6040516100659190610a9c565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061013657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061014d8b8b8989898989610259565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461024c57604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b8a565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102c686860187610c0f565b905060006102d48a83610475565b9050600081604001511161034757604080518082018252600a81527f6e6f742066756e64656400000000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b8a565b604051806101800160405280826000015173ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200182604001518152602001826060015181526020016103d184604001516106f0565b63ffffffff16815260200183608001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b604080516080810182526000808252602082018190529181018290526060810191909152815160208301516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152600091908416906370a0823190602401602060405180830381865afa158015610510573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105349190610cbd565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301529192506000918416906370a0823190602401602060405180830381865afa1580156105a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ca9190610cbd565b9050806105d8858486610712565b11156106645760405180608001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001612710886060015161271061063c9190610d05565b610647888789610712565b6106519190610d18565b61065b9190610d5e565b905294506106e6565b60405180608001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200182815260200161271088606001516127106106c29190610d05565b6106cd87868a610712565b6106d79190610d18565b6106e19190610d5e565b905294505b5050505092915050565b600081806106fe8142610d72565b6107089190610d95565b6101369190610dbd565b6000808473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107849190610de1565b905060008373ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f79190610de1565b90508060ff168260ff16111561082d576108118183610e04565b61081c90600a610f3d565b6108269086610d5e565b925061084f565b6108378282610e04565b61084290600a610f3d565b61084c9086610d18565b92505b50509392505050565b60006020828403121561086a57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461089a57600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146108c357600080fd5b50565b60008083601f8401126108d857600080fd5b50813567ffffffffffffffff8111156108f057600080fd5b60208301915083602082850101111561090857600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561092f57600080fd5b6109398b356108a1565b8a35995060208b013561094b816108a1565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561097d57600080fd5b6109898e838f016108c6565b909750955060c08d01359150808211156109a257600080fd5b506109af8d828e016108c6565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff200112156109e857600080fd5b60e08b0190509295989b9194979a5092959850565b600080600080600080600060a0888a031215610a1857600080fd5b8735610a23816108a1565b96506020880135610a33816108a1565b955060408801359450606088013567ffffffffffffffff80821115610a5757600080fd5b610a638b838c016108c6565b909650945060808a0135915080821115610a7c57600080fd5b50610a898a828b016108c6565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610ae2602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610b0a604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610b3660a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610b6b8285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b81811015610bb757858101830151858201604001528201610b9b565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803563ffffffff81168114610c0a57600080fd5b919050565b600060a08284031215610c2157600080fd5b60405160a0810181811067ffffffffffffffff82111715610c6b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040528235610c79816108a1565b81526020830135610c89816108a1565b6020820152610c9a60408401610bf6565b604082015260608301356060820152608083013560808201528091505092915050565b600060208284031215610ccf57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561013657610136610cd6565b808202811582820484141761013657610136610cd6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610d6d57610d6d610d2f565b500490565b600063ffffffff80841680610d8957610d89610d2f565b92169190910492915050565b63ffffffff818116838216028082169190828114610db557610db5610cd6565b505092915050565b63ffffffff818116838216019080821115610dda57610dda610cd6565b5092915050565b600060208284031215610df357600080fd5b815160ff8116811461089a57600080fd5b60ff828116828216039081111561013657610136610cd6565b600181815b80851115610e7657817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610e5c57610e5c610cd6565b80851615610e6957918102915b93841c9390800290610e22565b509250929050565b600082610e8d57506001610136565b81610e9a57506000610136565b8160018114610eb05760028114610eba57610ed6565b6001915050610136565b60ff841115610ecb57610ecb610cd6565b50506001821b610136565b5060208310610133831016604e8410600b8410161715610ef9575081810a610136565b610f038383610e1d565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610f3557610f35610cd6565b029392505050565b600061089a60ff841683610e7e56fea2646970667358221220c953943763ce3d3e068c860b503cfb8ae26ef3b1c526cf1e6dad8098e70e35f764736f6c63430008130033", - "sourceMap": "559:4317:144:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:220:133;;;;;;:::i;:::-;;:::i;:::-;;;612:14:168;;605:22;587:41;;575:2;560:18;1944:220:133;;;;;;;;867:634;;;;;;:::i;:::-;;:::i;:::-;;1661:1645:144;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1944:220:133:-;2031:4;2054:59;;;2069:44;2054:59;;:103;;-1:-1:-1;2117:40:133;;;2132:25;2117:40;2054:103;2047:110;1944:220;-1:-1:-1;;1944:220:133:o;867:634::-;1153:36;1192:65;1210:5;1217:6;1225:3;1230:11;;1243:13;;1192:17;:65::i;:::-;5434:14:63;;;5473:16;;5520:9;5502:28;;5578:3;5557:25;;5595:23;;6176:4;6170:11;6220:10;6194:37;;6274:1;6251:25;;6244:50;;;6337:2;6314:26;;6307:46;;;;6410:2;6381:32;;1153:104:133;;-1:-1:-1;1359:5:133;:56;1353:142;;1471:12;;;;;;;;;;;;;;;;1439:45;;;;;;;1471:12;1439:45;;;:::i;:::-;;;;;;;;1353:142;1143:358;867:634;;;;;;;;;;:::o;1661:1645:144:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1988:31:144;;;;;;:::i;:::-;1949:70;;2096:30;2129:17;2134:5;2141:4;2129;:17::i;:::-;2096:50;;2256:1;2231:11;:22;;;:26;2225:110;;2313:10;;;;;;;;;;;;;;;;2281:43;;;;;;;2313:10;2281:43;;;:::i;2225:110::-;2803:496;;;;;;;;2831:11;:21;;;2803:496;;;;;;2866:11;:20;;;2803:496;;;;;;2908:1;2803:496;;;;;;3004:11;:22;;;2803:496;;;;3040:11;:21;;;2803:496;;;;3075:47;3095:4;:26;;;3075:19;:47::i;:::-;2803:496;;;;;;3136:4;:12;;;2803:496;;;;3162:1;2803:496;;;;3177:19;2803:496;;;;3210:5;2803:496;;;;;;3229:23;2803:496;;;;3266:23;2803:496;;;2795:504;;1860:1446;;1661:1645;;;;;;;;;:::o;3312:1065::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3519:11:144;;3589;;;;3631:23;;;;;:16;7084:55:168;;;3631:23:144;;;7066:74:168;3472:21:144;;3631:16;;;;;;7039:18:168;;3631:23:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3683;;;;;:16;7084:55:168;;;3683:23:144;;;7066:74:168;3612:42:144;;-1:-1:-1;3664:16:144;;3683;;;;;7039:18:168;;3683:23:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3664:42;;3763:8;3721:39;3735:6;3743:8;3753:6;3721:13;:39::i;:::-;:50;3717:654;;;3801:257;;;;;;;;3842:6;3801:257;;;;;;3876:6;3801:257;;;;;;3912:8;3801:257;;;;271:5:142;4008:4:144;:18;;;271:5:142;3992:34:144;;;;:::i;:::-;3949:39;3963:6;3971:8;3981:6;3949:13;:39::i;:::-;:78;;;;:::i;:::-;:94;;;;:::i;:::-;3801:257;;3787:271;-1:-1:-1;3717:654:144;;;4103:257;;;;;;;;4144:6;4103:257;;;;;;4178:6;4103:257;;;;;;4214:8;4103:257;;;;271:5:142;4310:4:144;:18;;;271:5:142;4294:34:144;;;;:::i;:::-;4251:39;4265:6;4273:8;4283:6;4251:13;:39::i;:::-;:78;;;;:::i;:::-;:94;;;;:::i;:::-;4103:257;;4089:271;-1:-1:-1;3717:654:144;3462:915;;;;3312:1065;;;;:::o;463:166:142:-;526:14;614:8;;564:34;614:8;571:15;564:34;:::i;:::-;563:47;;;;:::i;:::-;562:60;;;;:::i;4383:491:144:-;4523:18;4557:17;4577:8;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4557:39;;4606:18;4627:9;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4606:41;;4676:12;4662:26;;:11;:26;;;4658:210;;;4737:26;4751:12;4737:11;:26;:::i;:::-;4730:34;;:2;:34;:::i;:::-;4717:48;;:9;:48;:::i;:::-;4704:61;;4658:210;;;4829:26;4844:11;4829:12;:26;:::i;:::-;4822:34;;:2;:34;:::i;:::-;4809:48;;:9;:48;:::i;:::-;4796:61;;4658:210;4547:327;;4383:491;;;;;:::o;14:332:168:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:168:o;639:154::-;725:42;718:5;714:54;707:5;704:65;694:93;;783:1;780;773:12;694:93;639:154;:::o;798:347::-;849:8;859:6;913:3;906:4;898:6;894:17;890:27;880:55;;931:1;928;921:12;880:55;-1:-1:-1;954:20:168;;997:18;986:30;;983:50;;;1029:1;1026;1019:12;983:50;1066:4;1058:6;1054:17;1042:29;;1118:3;1111:4;1102:6;1094;1090:19;1086:30;1083:39;1080:59;;;1135:1;1132;1125:12;1080:59;798:347;;;;;:::o;1150:1401::-;1319:6;1327;1335;1343;1351;1359;1367;1375;1383;1391;1444:3;1432:9;1423:7;1419:23;1415:33;1412:53;;;1461:1;1458;1451:12;1412:53;1474:49;1512:9;1499:23;1474:49;:::i;:::-;1555:9;1542:23;1532:33;;1615:2;1604:9;1600:18;1587:32;1628:31;1653:5;1628:31;:::i;:::-;1678:5;-1:-1:-1;1730:2:168;1715:18;;1702:32;;-1:-1:-1;1781:2:168;1766:18;;1753:32;;-1:-1:-1;1832:3:168;1817:19;;1804:33;;-1:-1:-1;1888:3:168;1873:19;;1860:33;1912:18;1942:14;;;1939:34;;;1969:1;1966;1959:12;1939:34;2008:58;2058:7;2049:6;2038:9;2034:22;2008:58;:::i;:::-;2085:8;;-1:-1:-1;1982:84:168;-1:-1:-1;2173:3:168;2158:19;;2145:33;;-1:-1:-1;2190:16:168;;;2187:36;;;2219:1;2216;2209:12;2187:36;;2258:60;2310:7;2299:8;2288:9;2284:24;2258:60;:::i;:::-;2337:8;;-1:-1:-1;2232:86:168;-1:-1:-1;;2486:3:168;2392:23;;;2417:66;2388:96;2384:106;2381:126;;;2503:1;2500;2493:12;2381:126;2541:3;2530:9;2526:19;2516:29;;1150:1401;;;;;;;;;;;;;:::o;2556:1063::-;2673:6;2681;2689;2697;2705;2713;2721;2774:3;2762:9;2753:7;2749:23;2745:33;2742:53;;;2791:1;2788;2781:12;2742:53;2830:9;2817:23;2849:31;2874:5;2849:31;:::i;:::-;2899:5;-1:-1:-1;2956:2:168;2941:18;;2928:32;2969:33;2928:32;2969:33;:::i;:::-;3021:7;-1:-1:-1;3075:2:168;3060:18;;3047:32;;-1:-1:-1;3130:2:168;3115:18;;3102:32;3153:18;3183:14;;;3180:34;;;3210:1;3207;3200:12;3180:34;3249:58;3299:7;3290:6;3279:9;3275:22;3249:58;:::i;:::-;3326:8;;-1:-1:-1;3223:84:168;-1:-1:-1;3414:3:168;3399:19;;3386:33;;-1:-1:-1;3431:16:168;;;3428:36;;;3460:1;3457;3450:12;3428:36;;3499:60;3551:7;3540:8;3529:9;3525:24;3499:60;:::i;:::-;2556:1063;;;;-1:-1:-1;2556:1063:168;;-1:-1:-1;2556:1063:168;;;;3473:86;;-1:-1:-1;;;2556:1063:168:o;3863:1264::-;4083:13;;3709:42;3698:54;3686:67;;4043:3;4028:19;;4155:4;4147:6;4143:17;4137:24;4170:62;4226:4;4215:9;4211:20;4197:12;3709:42;3698:54;3686:67;;3624:135;4170:62;;4281:4;4273:6;4269:17;4263:24;4296:64;4354:4;4343:9;4339:20;4323:14;3709:42;3698:54;3686:67;;3624:135;4296:64;;4416:4;4408:6;4404:17;4398:24;4391:4;4380:9;4376:20;4369:54;4479:4;4471:6;4467:17;4461:24;4454:4;4443:9;4439:20;4432:54;4535:4;4527:6;4523:17;4517:24;4550:55;4599:4;4588:9;4584:20;4568:14;3840:10;3829:22;3817:35;;3764:94;4550:55;;4661:4;4653:6;4649:17;4643:24;4636:4;4625:9;4621:20;4614:54;4724:4;4716:6;4712:17;4706:24;4699:4;4688:9;4684:20;4677:54;4750:6;4810:2;4802:6;4798:15;4792:22;4787:2;4776:9;4772:18;4765:50;;4834:6;4889:2;4881:6;4877:15;4871:22;4902:51;4949:2;4938:9;4934:18;4918:14;421:13;414:21;402:34;;351:91;4902:51;-1:-1:-1;;4972:6:168;5020:15;;;5014:22;4994:18;;;4987:50;5056:6;5104:15;;;5098:22;5078:18;;;;5071:50;;;;3863:1264;:::o;5132:607::-;5244:4;5273:2;5302;5291:9;5284:21;5334:6;5328:13;5377:6;5372:2;5361:9;5357:18;5350:34;5402:1;5412:140;5426:6;5423:1;5420:13;5412:140;;;5521:14;;;5517:23;;5511:30;5487:17;;;5506:2;5483:26;5476:66;5441:10;;5412:140;;;5416:3;5601:1;5596:2;5587:6;5576:9;5572:22;5568:31;5561:42;5730:2;5660:66;5655:2;5647:6;5643:15;5639:88;5628:9;5624:104;5620:113;5612:121;;;;5132:607;;;;:::o;5744:163::-;5811:20;;5871:10;5860:22;;5850:33;;5840:61;;5897:1;5894;5887:12;5840:61;5744:163;;;:::o;5912:1003::-;5994:6;6047:3;6035:9;6026:7;6022:23;6018:33;6015:53;;;6064:1;6061;6054:12;6015:53;6097:2;6091:9;6139:3;6131:6;6127:16;6209:6;6197:10;6194:22;6173:18;6161:10;6158:34;6155:62;6152:242;;;6250:77;6247:1;6240:88;6351:4;6348:1;6341:15;6379:4;6376:1;6369:15;6152:242;6410:2;6403:22;6447:23;;6479:31;6447:23;6479:31;:::i;:::-;6519:21;;6592:2;6577:18;;6564:32;6605:33;6564:32;6605:33;:::i;:::-;6666:2;6654:15;;6647:32;6712:37;6745:2;6730:18;;6712:37;:::i;:::-;6707:2;6699:6;6695:15;6688:62;6811:2;6800:9;6796:18;6783:32;6778:2;6770:6;6766:15;6759:57;6878:3;6867:9;6863:19;6850:33;6844:3;6836:6;6832:16;6825:59;6903:6;6893:16;;;5912:1003;;;;:::o;7151:184::-;7221:6;7274:2;7262:9;7253:7;7249:23;7245:32;7242:52;;;7290:1;7287;7280:12;7242:52;-1:-1:-1;7313:16:168;;7151:184;-1:-1:-1;7151:184:168:o;7340:::-;7392:77;7389:1;7382:88;7489:4;7486:1;7479:15;7513:4;7510:1;7503:15;7529:125;7594:9;;;7615:10;;;7612:36;;;7628:18;;:::i;7659:168::-;7732:9;;;7763;;7780:15;;;7774:22;;7760:37;7750:71;;7801:18;;:::i;7832:184::-;7884:77;7881:1;7874:88;7981:4;7978:1;7971:15;8005:4;8002:1;7995:15;8021:120;8061:1;8087;8077:35;;8092:18;;:::i;:::-;-1:-1:-1;8126:9:168;;8021:120::o;8146:191::-;8185:1;8211:10;8248:2;8245:1;8241:10;8270:3;8260:37;;8277:18;;:::i;:::-;8315:10;;8311:20;;;;;8146:191;-1:-1:-1;;8146:191:168:o;8342:249::-;8413:10;8455;;;8467;;;8451:27;8498:20;;;;8413:10;8537:24;;;8527:58;;8565:18;;:::i;:::-;8527:58;;8342:249;;;;:::o;8596:172::-;8663:10;8693;;;8705;;;8689:27;;8728:11;;;8725:37;;;8742:18;;:::i;:::-;8725:37;8596:172;;;;:::o;8773:273::-;8841:6;8894:2;8882:9;8873:7;8869:23;8865:32;8862:52;;;8910:1;8907;8900:12;8862:52;8942:9;8936:16;8992:4;8985:5;8981:16;8974:5;8971:27;8961:55;;9012:1;9009;9002:12;9051:151;9141:4;9134:12;;;9120;;;9116:31;;9159:14;;9156:40;;;9176:18;;:::i;9207:482::-;9296:1;9339:5;9296:1;9353:330;9374:7;9364:8;9361:21;9353:330;;;9493:4;9425:66;9421:77;9415:4;9412:87;9409:113;;;9502:18;;:::i;:::-;9552:7;9542:8;9538:22;9535:55;;;9572:16;;;;9535:55;9651:22;;;;9611:15;;;;9353:330;;;9357:3;9207:482;;;;;:::o;9694:866::-;9743:5;9773:8;9763:80;;-1:-1:-1;9814:1:168;9828:5;;9763:80;9862:4;9852:76;;-1:-1:-1;9899:1:168;9913:5;;9852:76;9944:4;9962:1;9957:59;;;;10030:1;10025:130;;;;9937:218;;9957:59;9987:1;9978:10;;10001:5;;;10025:130;10062:3;10052:8;10049:17;10046:43;;;10069:18;;:::i;:::-;-1:-1:-1;;10125:1:168;10111:16;;10140:5;;9937:218;;10239:2;10229:8;10226:16;10220:3;10214:4;10211:13;10207:36;10201:2;10191:8;10188:16;10183:2;10177:4;10174:12;10170:35;10167:77;10164:159;;;-1:-1:-1;10276:19:168;;;10308:5;;10164:159;10355:34;10380:8;10374:4;10355:34;:::i;:::-;10485:6;10417:66;10413:79;10404:7;10401:92;10398:118;;;10496:18;;:::i;:::-;10534:20;;9694:866;-1:-1:-1;;;9694:866:168:o;10565:140::-;10623:5;10652:47;10693:4;10683:8;10679:19;10673:4;10652:47;:::i", + "object": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806314a2a78414610079578063a6ffa36c1461008e578063b8296fc41461009f575b600080fd5b61006461005f366004610874565b6100bf565b60405190151581526020015b60405180910390f35b61008c610087366004610928565b610158565b005b61008c61009c366004610a45565b50565b6100b26100ad366004610b14565b610275565b6040516100709190610bb3565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061015257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101698b8b8989898989610275565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461026857604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610ca1565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102e286860187610d0d565b905060006102f08a83610491565b9050600081604001511161036357604080518082018252600a81527f6e6f742066756e64656400000000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610ca1565b604051806101800160405280826000015173ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200182604001518152602001826060015181526020016103ed846040015161070c565b63ffffffff16815260200183608001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b604080516080810182526000808252602082018190529181018290526060810191909152815160208301516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152600091908416906370a0823190602401602060405180830381865afa15801561052c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105509190610d9e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301529192506000918416906370a0823190602401602060405180830381865afa1580156105c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e69190610d9e565b9050806105f485848661072e565b11156106805760405180608001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200161271088606001516127106106589190610de6565b61066388878961072e565b61066d9190610df9565b6106779190610e3f565b90529450610702565b60405180608001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200182815260200161271088606001516127106106de9190610de6565b6106e987868a61072e565b6106f39190610df9565b6106fd9190610e3f565b905294505b5050505092915050565b6000818061071a8142610e53565b6107249190610e76565b6101529190610e9e565b6000808473ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190610ec2565b905060008373ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108139190610ec2565b90508060ff168260ff1611156108495761082d8183610ee5565b61083890600a61101e565b6108429086610e3f565b925061086b565b6108538282610ee5565b61085e90600a61101e565b6108689086610df9565b92505b50509392505050565b60006020828403121561088657600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146108b657600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461009c57600080fd5b60008083601f8401126108f157600080fd5b50813567ffffffffffffffff81111561090957600080fd5b60208301915083602082850101111561092157600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561094857600080fd5b6109528b356108bd565b8a35995060208b0135610964816108bd565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561099657600080fd5b6109a28e838f016108df565b909750955060c08d01359150808211156109bb57600080fd5b506109c88d828e016108df565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20011215610a0157600080fd5b60e08b0190509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610a5757600080fd5b813567ffffffffffffffff80821115610a6f57600080fd5b818401915084601f830112610a8357600080fd5b813581811115610a9557610a95610a16565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610adb57610adb610a16565b81604052828152876020848701011115610af457600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080600080600060a0888a031215610b2f57600080fd5b8735610b3a816108bd565b96506020880135610b4a816108bd565b955060408801359450606088013567ffffffffffffffff80821115610b6e57600080fd5b610b7a8b838c016108df565b909650945060808a0135915080821115610b9357600080fd5b50610ba08a828b016108df565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610bf9602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610c21604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610c4d60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610c828285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b81811015610cce57858101830151858201604001528201610cb2565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b600060a08284031215610d1f57600080fd5b60405160a0810181811067ffffffffffffffff82111715610d4257610d42610a16565b6040528235610d50816108bd565b81526020830135610d60816108bd565b6020820152604083013563ffffffff81168114610d7c57600080fd5b6040820152606083810135908201526080928301359281019290925250919050565b600060208284031215610db057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561015257610152610db7565b808202811582820484141761015257610152610db7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610e4e57610e4e610e10565b500490565b600063ffffffff80841680610e6a57610e6a610e10565b92169190910492915050565b63ffffffff818116838216028082169190828114610e9657610e96610db7565b505092915050565b63ffffffff818116838216019080821115610ebb57610ebb610db7565b5092915050565b600060208284031215610ed457600080fd5b815160ff811681146108b657600080fd5b60ff828116828216039081111561015257610152610db7565b600181815b80851115610f5757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610f3d57610f3d610db7565b80851615610f4a57918102915b93841c9390800290610f03565b509250929050565b600082610f6e57506001610152565b81610f7b57506000610152565b8160018114610f915760028114610f9b57610fb7565b6001915050610152565b60ff841115610fac57610fac610db7565b50506001821b610152565b5060208310610133831016604e8410600b8410161715610fda575081810a610152565b610fe48383610efe565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561101657611016610db7565b029392505050565b60006108b660ff841683610f5f56fea26469706673582212200c44b326291381ee4ba486b7a4e1347f461d327624ed67d5ca668becc2f1695b64736f6c63430008130033", + "sourceMap": "569:4317:146:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:220:135;;;;;;:::i;:::-;;:::i;:::-;;;612:14:170;;605:22;587:41;;575:2;560:18;1944:220:135;;;;;;;;867:634;;;;;;:::i;:::-;;:::i;:::-;;2170:100;;;;;;:::i;:::-;;;1671:1645:146;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1944:220:135:-;2031:4;2054:59;;;2069:44;2054:59;;:103;;-1:-1:-1;2117:40:135;;;2132:25;2117:40;2054:103;2047:110;1944:220;-1:-1:-1;;1944:220:135:o;867:634::-;1153:36;1192:65;1210:5;1217:6;1225:3;1230:11;;1243:13;;1192:17;:65::i;:::-;5434:14:55;;;5473:16;;5520:9;5502:28;;5578:3;5557:25;;5595:23;;6176:4;6170:11;6220:10;6194:37;;6274:1;6251:25;;6244:50;;;6337:2;6314:26;;6307:46;;;;6410:2;6381:32;;1153:104:135;;-1:-1:-1;1359:5:135;:56;1353:142;;1471:12;;;;;;;;;;;;;;;;1439:45;;;;;;;1471:12;1439:45;;;:::i;:::-;;;;;;;;1353:142;1143:358;867:634;;;;;;;;;;:::o;1671:1645:146:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:31:146;;;;;;:::i;:::-;1959:70;;2106:30;2139:17;2144:5;2151:4;2139;:17::i;:::-;2106:50;;2266:1;2241:11;:22;;;:26;2235:110;;2323:10;;;;;;;;;;;;;;;;2291:43;;;;;;;2323:10;2291:43;;;:::i;2235:110::-;2813:496;;;;;;;;2841:11;:21;;;2813:496;;;;;;2876:11;:20;;;2813:496;;;;;;2918:1;2813:496;;;;;;3014:11;:22;;;2813:496;;;;3050:11;:21;;;2813:496;;;;3085:47;3105:4;:26;;;3085:19;:47::i;:::-;2813:496;;;;;;3146:4;:12;;;2813:496;;;;3172:1;2813:496;;;;3187:19;2813:496;;;;3220:5;2813:496;;;;;;3239:23;2813:496;;;;3276:23;2813:496;;;2805:504;;1870:1446;;1671:1645;;;;;;;;;:::o;3322:1065::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3529:11:146;;3599;;;;3641:23;;;;;:16;8036:55:170;;;3641:23:146;;;8018:74:170;3482:21:146;;3641:16;;;;;;7991:18:170;;3641:23:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3693;;;;;:16;8036:55:170;;;3693:23:146;;;8018:74:170;3622:42:146;;-1:-1:-1;3674:16:146;;3693;;;;;7991:18:170;;3693:23:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3674:42;;3773:8;3731:39;3745:6;3753:8;3763:6;3731:13;:39::i;:::-;:50;3727:654;;;3811:257;;;;;;;;3852:6;3811:257;;;;;;3886:6;3811:257;;;;;;3922:8;3811:257;;;;271:5:144;4018:4:146;:18;;;271:5:144;4002:34:146;;;;:::i;:::-;3959:39;3973:6;3981:8;3991:6;3959:13;:39::i;:::-;:78;;;;:::i;:::-;:94;;;;:::i;:::-;3811:257;;3797:271;-1:-1:-1;3727:654:146;;;4113:257;;;;;;;;4154:6;4113:257;;;;;;4188:6;4113:257;;;;;;4224:8;4113:257;;;;271:5:144;4320:4:146;:18;;;271:5:144;4304:34:146;;;;:::i;:::-;4261:39;4275:6;4283:8;4293:6;4261:13;:39::i;:::-;:78;;;;:::i;:::-;:94;;;;:::i;:::-;4113:257;;4099:271;-1:-1:-1;3727:654:146;3472:915;;;;3322:1065;;;;:::o;463:166:144:-;526:14;614:8;;564:34;614:8;571:15;564:34;:::i;:::-;563:47;;;;:::i;:::-;562:60;;;;:::i;4393:491:146:-;4533:18;4567:17;4587:8;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4567:39;;4616:18;4637:9;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4616:41;;4686:12;4672:26;;:11;:26;;;4668:210;;;4747:26;4761:12;4747:11;:26;:::i;:::-;4740:34;;:2;:34;:::i;:::-;4727:48;;:9;:48;:::i;:::-;4714:61;;4668:210;;;4839:26;4854:11;4839:12;:26;:::i;:::-;4832:34;;:2;:34;:::i;:::-;4819:48;;:9;:48;:::i;:::-;4806:61;;4668:210;4557:327;;4393:491;;;;;:::o;14:332:170:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:170:o;639:154::-;725:42;718:5;714:54;707:5;704:65;694:93;;783:1;780;773:12;798:347;849:8;859:6;913:3;906:4;898:6;894:17;890:27;880:55;;931:1;928;921:12;880:55;-1:-1:-1;954:20:170;;997:18;986:30;;983:50;;;1029:1;1026;1019:12;983:50;1066:4;1058:6;1054:17;1042:29;;1118:3;1111:4;1102:6;1094;1090:19;1086:30;1083:39;1080:59;;;1135:1;1132;1125:12;1080:59;798:347;;;;;:::o;1150:1401::-;1319:6;1327;1335;1343;1351;1359;1367;1375;1383;1391;1444:3;1432:9;1423:7;1419:23;1415:33;1412:53;;;1461:1;1458;1451:12;1412:53;1474:49;1512:9;1499:23;1474:49;:::i;:::-;1555:9;1542:23;1532:33;;1615:2;1604:9;1600:18;1587:32;1628:31;1653:5;1628:31;:::i;:::-;1678:5;-1:-1:-1;1730:2:170;1715:18;;1702:32;;-1:-1:-1;1781:2:170;1766:18;;1753:32;;-1:-1:-1;1832:3:170;1817:19;;1804:33;;-1:-1:-1;1888:3:170;1873:19;;1860:33;1912:18;1942:14;;;1939:34;;;1969:1;1966;1959:12;1939:34;2008:58;2058:7;2049:6;2038:9;2034:22;2008:58;:::i;:::-;2085:8;;-1:-1:-1;1982:84:170;-1:-1:-1;2173:3:170;2158:19;;2145:33;;-1:-1:-1;2190:16:170;;;2187:36;;;2219:1;2216;2209:12;2187:36;;2258:60;2310:7;2299:8;2288:9;2284:24;2258:60;:::i;:::-;2337:8;;-1:-1:-1;2232:86:170;-1:-1:-1;;2486:3:170;2392:23;;;2417:66;2388:96;2384:106;2381:126;;;2503:1;2500;2493:12;2381:126;2541:3;2530:9;2526:19;2516:29;;1150:1401;;;;;;;;;;;;;:::o;2556:184::-;2608:77;2605:1;2598:88;2705:4;2702:1;2695:15;2729:4;2726:1;2719:15;2745:980;2813:6;2866:2;2854:9;2845:7;2841:23;2837:32;2834:52;;;2882:1;2879;2872:12;2834:52;2922:9;2909:23;2951:18;2992:2;2984:6;2981:14;2978:34;;;3008:1;3005;2998:12;2978:34;3046:6;3035:9;3031:22;3021:32;;3091:7;3084:4;3080:2;3076:13;3072:27;3062:55;;3113:1;3110;3103:12;3062:55;3149:2;3136:16;3171:2;3167;3164:10;3161:36;;;3177:18;;:::i;:::-;3311:2;3305:9;3373:4;3365:13;;3216:66;3361:22;;;3385:2;3357:31;3353:40;3341:53;;;3409:18;;;3429:22;;;3406:46;3403:72;;;3455:18;;:::i;:::-;3495:10;3491:2;3484:22;3530:2;3522:6;3515:18;3570:7;3565:2;3560;3556;3552:11;3548:20;3545:33;3542:53;;;3591:1;3588;3581:12;3542:53;3647:2;3642;3638;3634:11;3629:2;3621:6;3617:15;3604:46;3692:1;3670:15;;;3687:2;3666:24;3659:35;;;;-1:-1:-1;3674:6:170;2745:980;-1:-1:-1;;;;;2745:980:170:o;3730:1063::-;3847:6;3855;3863;3871;3879;3887;3895;3948:3;3936:9;3927:7;3923:23;3919:33;3916:53;;;3965:1;3962;3955:12;3916:53;4004:9;3991:23;4023:31;4048:5;4023:31;:::i;:::-;4073:5;-1:-1:-1;4130:2:170;4115:18;;4102:32;4143:33;4102:32;4143:33;:::i;:::-;4195:7;-1:-1:-1;4249:2:170;4234:18;;4221:32;;-1:-1:-1;4304:2:170;4289:18;;4276:32;4327:18;4357:14;;;4354:34;;;4384:1;4381;4374:12;4354:34;4423:58;4473:7;4464:6;4453:9;4449:22;4423:58;:::i;:::-;4500:8;;-1:-1:-1;4397:84:170;-1:-1:-1;4588:3:170;4573:19;;4560:33;;-1:-1:-1;4605:16:170;;;4602:36;;;4634:1;4631;4624:12;4602:36;;4673:60;4725:7;4714:8;4703:9;4699:24;4673:60;:::i;:::-;3730:1063;;;;-1:-1:-1;3730:1063:170;;-1:-1:-1;3730:1063:170;;;;4647:86;;-1:-1:-1;;;3730:1063:170:o;5037:1264::-;5257:13;;4883:42;4872:54;4860:67;;5217:3;5202:19;;5329:4;5321:6;5317:17;5311:24;5344:62;5400:4;5389:9;5385:20;5371:12;4883:42;4872:54;4860:67;;4798:135;5344:62;;5455:4;5447:6;5443:17;5437:24;5470:64;5528:4;5517:9;5513:20;5497:14;4883:42;4872:54;4860:67;;4798:135;5470:64;;5590:4;5582:6;5578:17;5572:24;5565:4;5554:9;5550:20;5543:54;5653:4;5645:6;5641:17;5635:24;5628:4;5617:9;5613:20;5606:54;5709:4;5701:6;5697:17;5691:24;5724:55;5773:4;5762:9;5758:20;5742:14;5014:10;5003:22;4991:35;;4938:94;5724:55;;5835:4;5827:6;5823:17;5817:24;5810:4;5799:9;5795:20;5788:54;5898:4;5890:6;5886:17;5880:24;5873:4;5862:9;5858:20;5851:54;5924:6;5984:2;5976:6;5972:15;5966:22;5961:2;5950:9;5946:18;5939:50;;6008:6;6063:2;6055:6;6051:15;6045:22;6076:51;6123:2;6112:9;6108:18;6092:14;421:13;414:21;402:34;;351:91;6076:51;-1:-1:-1;;6146:6:170;6194:15;;;6188:22;6168:18;;;6161:50;6230:6;6278:15;;;6272:22;6252:18;;;;6245:50;;;;5037:1264;:::o;6306:607::-;6418:4;6447:2;6476;6465:9;6458:21;6508:6;6502:13;6551:6;6546:2;6535:9;6531:18;6524:34;6576:1;6586:140;6600:6;6597:1;6594:13;6586:140;;;6695:14;;;6691:23;;6685:30;6661:17;;;6680:2;6657:26;6650:66;6615:10;;6586:140;;;6590:3;6775:1;6770:2;6761:6;6750:9;6746:22;6742:31;6735:42;6904:2;6834:66;6829:2;6821:6;6817:15;6813:88;6802:9;6798:104;6794:113;6786:121;;;;6306:607;;;;:::o;6918:949::-;7000:6;7053:3;7041:9;7032:7;7028:23;7024:33;7021:53;;;7070:1;7067;7060:12;7021:53;7103:2;7097:9;7145:3;7137:6;7133:16;7215:6;7203:10;7200:22;7179:18;7167:10;7164:34;7161:62;7158:88;;;7226:18;;:::i;:::-;7262:2;7255:22;7299:23;;7331:31;7299:23;7331:31;:::i;:::-;7371:21;;7444:2;7429:18;;7416:32;7457:33;7416:32;7457:33;:::i;:::-;7518:2;7506:15;;7499:32;7583:2;7568:18;;7555:32;7631:10;7618:24;;7606:37;;7596:65;;7657:1;7654;7647:12;7596:65;7689:2;7677:15;;7670:32;7763:2;7748:18;;;7735:32;7718:15;;;7711:57;7830:3;7815:19;;;7802:33;7784:16;;;7777:59;;;;-1:-1:-1;7681:6:170;6918:949;-1:-1:-1;6918:949:170:o;8103:184::-;8173:6;8226:2;8214:9;8205:7;8201:23;8197:32;8194:52;;;8242:1;8239;8232:12;8194:52;-1:-1:-1;8265:16:170;;8103:184;-1:-1:-1;8103:184:170:o;8292:::-;8344:77;8341:1;8334:88;8441:4;8438:1;8431:15;8465:4;8462:1;8455:15;8481:125;8546:9;;;8567:10;;;8564:36;;;8580:18;;:::i;8611:168::-;8684:9;;;8715;;8732:15;;;8726:22;;8712:37;8702:71;;8753:18;;:::i;8784:184::-;8836:77;8833:1;8826:88;8933:4;8930:1;8923:15;8957:4;8954:1;8947:15;8973:120;9013:1;9039;9029:35;;9044:18;;:::i;:::-;-1:-1:-1;9078:9:170;;8973:120::o;9098:191::-;9137:1;9163:10;9200:2;9197:1;9193:10;9222:3;9212:37;;9229:18;;:::i;:::-;9267:10;;9263:20;;;;;9098:191;-1:-1:-1;;9098:191:170:o;9294:249::-;9365:10;9407;;;9419;;;9403:27;9450:20;;;;9365:10;9489:24;;;9479:58;;9517:18;;:::i;:::-;9479:58;;9294:249;;;;:::o;9548:172::-;9615:10;9645;;;9657;;;9641:27;;9680:11;;;9677:37;;;9694:18;;:::i;:::-;9677:37;9548:172;;;;:::o;9725:273::-;9793:6;9846:2;9834:9;9825:7;9821:23;9817:32;9814:52;;;9862:1;9859;9852:12;9814:52;9894:9;9888:16;9944:4;9937:5;9933:16;9926:5;9923:27;9913:55;;9964:1;9961;9954:12;10003:151;10093:4;10086:12;;;10072;;;10068:31;;10111:14;;10108:40;;;10128:18;;:::i;10159:482::-;10248:1;10291:5;10248:1;10305:330;10326:7;10316:8;10313:21;10305:330;;;10445:4;10377:66;10373:77;10367:4;10364:87;10361:113;;;10454:18;;:::i;:::-;10504:7;10494:8;10490:22;10487:55;;;10524:16;;;;10487:55;10603:22;;;;10563:15;;;;10305:330;;;10309:3;10159:482;;;;;:::o;10646:866::-;10695:5;10725:8;10715:80;;-1:-1:-1;10766:1:170;10780:5;;10715:80;10814:4;10804:76;;-1:-1:-1;10851:1:170;10865:5;;10804:76;10896:4;10914:1;10909:59;;;;10982:1;10977:130;;;;10889:218;;10909:59;10939:1;10930:10;;10953:5;;;10977:130;11014:3;11004:8;11001:17;10998:43;;;11021:18;;:::i;:::-;-1:-1:-1;;11077:1:170;11063:16;;11092:5;;10889:218;;11191:2;11181:8;11178:16;11172:3;11166:4;11163:13;11159:36;11153:2;11143:8;11140:16;11135:2;11129:4;11126:12;11122:35;11119:77;11116:159;;;-1:-1:-1;11228:19:170;;;11260:5;;11116:159;11307:34;11332:8;11326:4;11307:34;:::i;:::-;11437:6;11369:66;11365:79;11356:7;11353:92;11350:118;;;11448:18;;:::i;:::-;11486:20;;10646:866;-1:-1:-1;;;10646:866:170:o;11517:140::-;11575:5;11604:47;11645:4;11635:8;11631:19;11625:4;11604:47;:::i", "linkReferences": {} }, "methodIdentifiers": { "getTradeableOrder(address,address,bytes32,bytes,bytes)": "b8296fc4", "supportsInterface(bytes4)": "01ffc9a7", + "validateData(bytes)": "a6ffa36c", "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": "14a2a784" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\":\"\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"getTradeableOrder(address,address,bytes32,bytes,bytes)\":{\"details\":\"Get a tradeable order that can be posted to the CoW Protocol API and would pass signature validation. **MUST** revert if the order condition is not met.\",\"params\":{\"ctx\":\"the context of the order (bytes32(0) if merkle tree is used, otherwise the H(params))\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the parent `isValidSignature` call\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"},\"returns\":{\"order\":\"the tradeable order for submission to the CoW Protocol API\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"A smart contract that is always willing to trade between tokenA and tokenB 1:1, taking decimals into account (and adding specifiable spread)\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/PerpetualStableSwap.sol\":\"PerpetualStableSwap\"},\"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/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x687142c633b33037c3137b6bfeef848a44eb1ef83fb5fdb59a3affdf28a46516\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d26b5d0495ffb4c36b1abdf003f43ab478c324752ce60847af8019bad5a3ad0\",\"dweb:/ipfs/QmQGcXZcq7eBrZUyxLbHFkBFWCyMwFonvJwLRSsL82dbWx\"]},\"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/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/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/BaseConditionalOrder.sol\":{\"keccak256\":\"0x510558386b92b1d5961d8158ae6e3288a1d520c03123d109042a5ec3290b9588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e071465250cbc11d946f422f4ff774d757291cac00f4c69fbac1d1e34cdae402\",\"dweb:/ipfs/QmUF2qNwJhvs3GeWmsWnL6y21eL6mb3QEW7EPYY7NZc25v\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699\",\"dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ\"]},\"src/types/ConditionalOrdersUtilsLib.sol\":{\"keccak256\":\"0x38e4ce4fc58c018f510ee45d78ae49253e8aa70fdf559d83ebb6c838c6b47aae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a38ccd5b8ce2895a77b7474b1ac36ebfccc975b3839f6d3bfef72700f8f6f777\",\"dweb:/ipfs/QmSfs5zZ4U14NkZYSqAFUBcuKGjyfMM5Dp2sbj14FmVYPf\"]},\"src/types/PerpetualStableSwap.sol\":{\"keccak256\":\"0x8c0b4542ec512f3f5b52adc5e23098cdb47a2db5f6228165cf8016d616ee25d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee444e95ecb673e621331a82e81306fe582e2857aa1eded7377b732485308870\",\"dweb:/ipfs/QmZzd5HX7tyG4kzm68SVmUviZ38sZyBMrZK2aemfECkq3i\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollNever\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtBlock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtEpoch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryNextBlock\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateData\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\":\"\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"getTradeableOrder(address,address,bytes32,bytes,bytes)\":{\"details\":\"Get a tradeable order that can be posted to the CoW Protocol API and would pass signature validation. **MUST** revert if the order condition is not met.\",\"params\":{\"ctx\":\"the context of the order (bytes32(0) if merkle tree is used, otherwise the H(params))\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the parent `isValidSignature` call\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"},\"returns\":{\"order\":\"the tradeable order for submission to the CoW Protocol API\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"validateData(bytes)\":{\"details\":\"Throws if the data is invalid.\",\"params\":{\"data\":\"The ABI-encoded concrete order type's `Data` struct to be validated.\"}},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"A smart contract that is always willing to trade between tokenA and tokenB 1:1, taking decimals into account (and adding specifiable spread)\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"validateData(bytes)\":{\"notice\":\"A helper function for SDK users to verify if a given conditional order's data is valid.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/PerpetualStableSwap.sol\":\"PerpetualStableSwap\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x687142c633b33037c3137b6bfeef848a44eb1ef83fb5fdb59a3affdf28a46516\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d26b5d0495ffb4c36b1abdf003f43ab478c324752ce60847af8019bad5a3ad0\",\"dweb:/ipfs/QmQGcXZcq7eBrZUyxLbHFkBFWCyMwFonvJwLRSsL82dbWx\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/safe/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/BaseConditionalOrder.sol\":{\"keccak256\":\"0x83d14b5411a5a1adc00da2d3e17703cd7be15de3f5637b2a3f77501df14c5e9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c007603000bb506c58265f61863bb90966a210429f2985a2632d4f00c7bbc1f\",\"dweb:/ipfs/QmUz7ikMYiS8MGNsMxvcHzpkX2yYiPidxvcfG97Vpqs73j\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]},\"src/types/ConditionalOrdersUtilsLib.sol\":{\"keccak256\":\"0x38e4ce4fc58c018f510ee45d78ae49253e8aa70fdf559d83ebb6c838c6b47aae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a38ccd5b8ce2895a77b7474b1ac36ebfccc975b3839f6d3bfef72700f8f6f777\",\"dweb:/ipfs/QmSfs5zZ4U14NkZYSqAFUBcuKGjyfMM5Dp2sbj14FmVYPf\"]},\"src/types/PerpetualStableSwap.sol\":{\"keccak256\":\"0x424e6173a794b2e1920fcb84d81453e360cdbc0c44069ed21c7a8a34bcc704aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e4468e4c0171925efbdb98845c8b9c6bcafd8c5e59f53effed3ac17f88330eb\",\"dweb:/ipfs/QmVE8eMCzwESuTXNTr9PgZYm3vmoEhnsTXVZfwFssvD5RF\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -312,6 +380,60 @@ "type": "error", "name": "OrderNotValid" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollNever" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtBlock" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtEpoch" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryNextBlock" + }, { "inputs": [ { @@ -468,6 +590,18 @@ } ] }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function", + "name": "validateData" + }, { "inputs": [ { @@ -597,6 +731,12 @@ "supportsInterface(bytes4)": { "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas." }, + "validateData(bytes)": { + "details": "Throws if the data is invalid.", + "params": { + "data": "The ABI-encoded concrete order type's `Data` struct to be validated." + } + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "details": "As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.", "params": { @@ -616,6 +756,9 @@ "userdoc": { "kind": "user", "methods": { + "validateData(bytes)": { + "notice": "A helper function for SDK users to verify if a given conditional order's data is valid." + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "notice": "Verify if a given discrete order is valid." } @@ -625,20 +768,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -653,7 +795,23 @@ "libraries": {} }, "sources": { - "lib/@openzeppelin/contracts/interfaces/IERC20.sol": { + "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/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", "urls": [ "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", @@ -661,7 +819,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/interfaces/IERC20Metadata.sol": { + "lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol": { "keccak256": "0x687142c633b33037c3137b6bfeef848a44eb1ef83fb5fdb59a3affdf28a46516", "urls": [ "bzz-raw://0d26b5d0495ffb4c36b1abdf003f43ab478c324752ce60847af8019bad5a3ad0", @@ -669,7 +827,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", "urls": [ "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", @@ -677,7 +835,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol": { "keccak256": "0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca", "urls": [ "bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd", @@ -685,22 +843,6 @@ ], "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/interfaces/IERC165.sol": { "keccak256": "0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb", "urls": [ @@ -710,18 +852,18 @@ "license": "LGPL-3.0-only" }, "src/BaseConditionalOrder.sol": { - "keccak256": "0x510558386b92b1d5961d8158ae6e3288a1d520c03123d109042a5ec3290b9588", + "keccak256": "0x83d14b5411a5a1adc00da2d3e17703cd7be15de3f5637b2a3f77501df14c5e9c", "urls": [ - "bzz-raw://e071465250cbc11d946f422f4ff774d757291cac00f4c69fbac1d1e34cdae402", - "dweb:/ipfs/QmUF2qNwJhvs3GeWmsWnL6y21eL6mb3QEW7EPYY7NZc25v" + "bzz-raw://4c007603000bb506c58265f61863bb90966a210429f2985a2632d4f00c7bbc1f", + "dweb:/ipfs/QmUz7ikMYiS8MGNsMxvcHzpkX2yYiPidxvcfG97Vpqs73j" ], "license": "MIT" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" }, @@ -734,10 +876,10 @@ "license": "MIT" }, "src/types/PerpetualStableSwap.sol": { - "keccak256": "0x8c0b4542ec512f3f5b52adc5e23098cdb47a2db5f6228165cf8016d616ee25d6", + "keccak256": "0x424e6173a794b2e1920fcb84d81453e360cdbc0c44069ed21c7a8a34bcc704aa", "urls": [ - "bzz-raw://ee444e95ecb673e621331a82e81306fe582e2857aa1eded7377b732485308870", - "dweb:/ipfs/QmZzd5HX7tyG4kzm68SVmUviZ38sZyBMrZK2aemfECkq3i" + "bzz-raw://9e4468e4c0171925efbdb98845c8b9c6bcafd8c5e59f53effed3ac17f88330eb", + "dweb:/ipfs/QmVE8eMCzwESuTXNTr9PgZYm3vmoEhnsTXVZfwFssvD5RF" ], "license": "MIT" } @@ -746,52 +888,52 @@ }, "ast": { "absolutePath": "src/types/PerpetualStableSwap.sol", - "id": 55098, + "id": 55201, "exportedSymbols": { "BaseConditionalOrder": [ - 53501 + 53578 ], "GPv2Interaction": [ - 17090 + 14303 ], "GPv2Order": [ - 17246 + 14459 ], "IConditionalOrder": [ - 54437 + 54540 ], "IConditionalOrderGenerator": [ - 54468 + 54571 ], "IERC165": [ 52197 ], "IERC20": [ - 670 + 45820 ], "IERC20Metadata": [ - 695 + 45845 ], "INVALID_HASH": [ - 53402 + 53472 ], "NOT_FUNDED": [ - 54823 + 54926 ], "PerpetualStableSwap": [ - 55097 + 55200 ], "Utils": [ - 54593 + 54696 ] }, "nodeType": "SourceUnit", - "src": "32:4845:144", + "src": "32:4855:146", "nodes": [ { - "id": 54813, + "id": 54916, "nodeType": "PragmaDirective", - "src": "32:31:144", + "src": "32:31:146", "nodes": [], "literals": [ "solidity", @@ -804,36 +946,36 @@ ] }, { - "id": 54816, + "id": 54919, "nodeType": "ImportDirective", - "src": "65:83:144", + "src": "65:93:146", "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/interfaces/IERC20Metadata.sol", - "file": "@openzeppelin/interfaces/IERC20Metadata.sol", + "absolutePath": "lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol", + "file": "@openzeppelin/contracts/interfaces/IERC20Metadata.sol", "nameLocation": "-1:-1:-1", - "scope": 55098, - "sourceUnit": 6, + "scope": 55201, + "sourceUnit": 45156, "symbolAliases": [ { "foreign": { - "id": 54814, + "id": 54917, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "73:6:144", + "referencedDeclaration": 45820, + "src": "73:6:146", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 54815, + "id": 54918, "name": "IERC20Metadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, - "src": "81:14:144", + "referencedDeclaration": 45845, + "src": "81:14:146", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -842,37 +984,37 @@ "unitAlias": "" }, { - "id": 54817, + "id": 54920, "nodeType": "ImportDirective", - "src": "150:37:144", + "src": "160:37:146", "nodes": [], "absolutePath": "src/BaseConditionalOrder.sol", "file": "../BaseConditionalOrder.sol", "nameLocation": "-1:-1:-1", - "scope": 55098, - "sourceUnit": 53502, + "scope": 55201, + "sourceUnit": 53579, "symbolAliases": [], "unitAlias": "" }, { - "id": 54819, + "id": 54922, "nodeType": "ImportDirective", - "src": "188:83:144", + "src": "198:83:146", "nodes": [], "absolutePath": "src/types/ConditionalOrdersUtilsLib.sol", "file": "./ConditionalOrdersUtilsLib.sol", "nameLocation": "-1:-1:-1", - "scope": 55098, - "sourceUnit": 54594, + "scope": 55201, + "sourceUnit": 54697, "symbolAliases": [ { "foreign": { - "id": 54818, + "id": 54921, "name": "ConditionalOrdersUtilsLib", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "196:25:144", + "referencedDeclaration": 54696, + "src": "206:25:146", "typeDescriptions": {} }, "local": "Utils", @@ -882,15 +1024,15 @@ "unitAlias": "" }, { - "id": 54823, + "id": 54926, "nodeType": "VariableDeclaration", - "src": "353:41:144", + "src": "363:41:146", "nodes": [], "constant": true, "mutability": "constant", "name": "NOT_FUNDED", - "nameLocation": "369:10:144", - "scope": 55098, + "nameLocation": "379:10:146", + "scope": 55201, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -898,10 +1040,10 @@ "typeString": "string" }, "typeName": { - "id": 54821, + "id": 54924, "name": "string", "nodeType": "ElementaryTypeName", - "src": "353:6:144", + "src": "363:6:146", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -909,14 +1051,14 @@ }, "value": { "hexValue": "6e6f742066756e646564", - "id": 54822, + "id": 54925, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "382:12:144", + "src": "392:12:146", "typeDescriptions": { "typeIdentifier": "t_stringliteral_85e1f6ddab5d66da0f1a6dde094a0fc3a86a7cfa131e6e8478cee7be2cccdad1", "typeString": "literal_string \"not funded\"" @@ -926,49 +1068,49 @@ "visibility": "internal" }, { - "id": 55097, + "id": 55200, "nodeType": "ContractDefinition", - "src": "559:4317:144", + "src": "569:4317:146", "nodes": [ { - "id": 54839, + "id": 54942, "nodeType": "StructDefinition", - "src": "1208:247:144", + "src": "1218:247:146", "nodes": [], "canonicalName": "PerpetualStableSwap.Data", "members": [ { "constant": false, - "id": 54829, + "id": 54932, "mutability": "mutable", "name": "tokenA", - "nameLocation": "1237:6:144", + "nameLocation": "1247:6:146", "nodeType": "VariableDeclaration", - "scope": 54839, - "src": "1230:13:144", + "scope": 54942, + "src": "1240:13:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 54828, + "id": 54931, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54827, + "id": 54930, "name": "IERC20", "nameLocations": [ - "1230:6:144" + "1240:6:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "1230:6:144" + "referencedDeclaration": 45820, + "src": "1240:6:146" }, - "referencedDeclaration": 670, - "src": "1230:6:144", + "referencedDeclaration": 45820, + "src": "1240:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -976,36 +1118,36 @@ }, { "constant": false, - "id": 54832, + "id": 54935, "mutability": "mutable", "name": "tokenB", - "nameLocation": "1260:6:144", + "nameLocation": "1270:6:146", "nodeType": "VariableDeclaration", - "scope": 54839, - "src": "1253:13:144", + "scope": 54942, + "src": "1263:13:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 54831, + "id": 54934, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54830, + "id": 54933, "name": "IERC20", "nameLocations": [ - "1253:6:144" + "1263:6:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "1253:6:144" + "referencedDeclaration": 45820, + "src": "1263:6:146" }, - "referencedDeclaration": 670, - "src": "1253:6:144", + "referencedDeclaration": 45820, + "src": "1263:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -1013,13 +1155,13 @@ }, { "constant": false, - "id": 54834, + "id": 54937, "mutability": "mutable", "name": "validityBucketSeconds", - "nameLocation": "1371:21:144", + "nameLocation": "1381:21:146", "nodeType": "VariableDeclaration", - "scope": 54839, - "src": "1364:28:144", + "scope": 54942, + "src": "1374:28:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1027,10 +1169,10 @@ "typeString": "uint32" }, "typeName": { - "id": 54833, + "id": 54936, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1364:6:144", + "src": "1374:6:146", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1040,13 +1182,13 @@ }, { "constant": false, - "id": 54836, + "id": 54939, "mutability": "mutable", "name": "halfSpreadBps", - "nameLocation": "1410:13:144", + "nameLocation": "1420:13:146", "nodeType": "VariableDeclaration", - "scope": 54839, - "src": "1402:21:144", + "scope": 54942, + "src": "1412:21:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1054,10 +1196,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54835, + "id": 54938, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1402:7:144", + "src": "1412:7:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1067,13 +1209,13 @@ }, { "constant": false, - "id": 54838, + "id": 54941, "mutability": "mutable", "name": "appData", - "nameLocation": "1441:7:144", + "nameLocation": "1451:7:146", "nodeType": "VariableDeclaration", - "scope": 54839, - "src": "1433:15:144", + "scope": 54942, + "src": "1443:15:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1081,10 +1223,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54837, + "id": 54940, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1433:7:144", + "src": "1443:7:146", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1094,49 +1236,49 @@ } ], "name": "Data", - "nameLocation": "1215:4:144", - "scope": 55097, + "nameLocation": "1225:4:146", + "scope": 55200, "visibility": "public" }, { - "id": 54850, + "id": 54953, "nodeType": "StructDefinition", - "src": "1461:132:144", + "src": "1471:132:146", "nodes": [], "canonicalName": "PerpetualStableSwap.BuySellData", "members": [ { "constant": false, - "id": 54842, + "id": 54945, "mutability": "mutable", "name": "sellToken", - "nameLocation": "1497:9:144", + "nameLocation": "1507:9:146", "nodeType": "VariableDeclaration", - "scope": 54850, - "src": "1490:16:144", + "scope": 54953, + "src": "1500:16:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 54841, + "id": 54944, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54840, + "id": 54943, "name": "IERC20", "nameLocations": [ - "1490:6:144" + "1500:6:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "1490:6:144" + "referencedDeclaration": 45820, + "src": "1500:6:146" }, - "referencedDeclaration": 670, - "src": "1490:6:144", + "referencedDeclaration": 45820, + "src": "1500:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -1144,36 +1286,36 @@ }, { "constant": false, - "id": 54845, + "id": 54948, "mutability": "mutable", "name": "buyToken", - "nameLocation": "1523:8:144", + "nameLocation": "1533:8:146", "nodeType": "VariableDeclaration", - "scope": 54850, - "src": "1516:15:144", + "scope": 54953, + "src": "1526:15:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 54844, + "id": 54947, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54843, + "id": 54946, "name": "IERC20", "nameLocations": [ - "1516:6:144" + "1526:6:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "1516:6:144" + "referencedDeclaration": 45820, + "src": "1526:6:146" }, - "referencedDeclaration": 670, - "src": "1516:6:144", + "referencedDeclaration": 45820, + "src": "1526:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -1181,13 +1323,13 @@ }, { "constant": false, - "id": 54847, + "id": 54950, "mutability": "mutable", "name": "sellAmount", - "nameLocation": "1549:10:144", + "nameLocation": "1559:10:146", "nodeType": "VariableDeclaration", - "scope": 54850, - "src": "1541:18:144", + "scope": 54953, + "src": "1551:18:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1195,10 +1337,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54846, + "id": 54949, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1541:7:144", + "src": "1551:7:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1208,13 +1350,13 @@ }, { "constant": false, - "id": 54849, + "id": 54952, "mutability": "mutable", "name": "buyAmount", - "nameLocation": "1577:9:144", + "nameLocation": "1587:9:146", "nodeType": "VariableDeclaration", - "scope": 54850, - "src": "1569:17:144", + "scope": 54953, + "src": "1579:17:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1222,10 +1364,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54848, + "id": 54951, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1569:7:144", + "src": "1579:7:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1235,59 +1377,59 @@ } ], "name": "BuySellData", - "nameLocation": "1468:11:144", - "scope": 55097, + "nameLocation": "1478:11:146", + "scope": 55200, "visibility": "public" }, { - "id": 54936, + "id": 55039, "nodeType": "FunctionDefinition", - "src": "1661:1645:144", + "src": "1671:1645:146", "nodes": [], "body": { - "id": 54935, + "id": 55038, "nodeType": "Block", - "src": "1860:1446:144", + "src": "1870:1446:146", "nodes": [], "statements": [ { "assignments": [ - 54872 + 54975 ], "declarations": [ { "constant": false, - "id": 54872, + "id": 54975, "mutability": "mutable", "name": "data", - "nameLocation": "1981:4:144", + "nameLocation": "1991:4:146", "nodeType": "VariableDeclaration", - "scope": 54935, - "src": "1949:36:144", + "scope": 55038, + "src": "1959:36:146", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54942_memory_ptr", "typeString": "struct PerpetualStableSwap.Data" }, "typeName": { - "id": 54871, + "id": 54974, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54870, + "id": 54973, "name": "PerpetualStableSwap.Data", "nameLocations": [ - "1949:19:144", - "1969:4:144" + "1959:19:146", + "1979:4:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54839, - "src": "1949:24:144" + "referencedDeclaration": 54942, + "src": "1959:24:146" }, - "referencedDeclaration": 54839, - "src": "1949:24:144", + "referencedDeclaration": 54942, + "src": "1959:24:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_storage_ptr", + "typeIdentifier": "t_struct$_Data_$54942_storage_ptr", "typeString": "struct PerpetualStableSwap.Data" } }, @@ -1295,16 +1437,16 @@ } ], "documentation": "@dev Decode the payload into the perpetual stable swap parameters.", - "id": 54879, + "id": 54982, "initialValue": { "arguments": [ { - "id": 54875, + "id": 54978, "name": "staticInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54859, - "src": "1999:11:144", + "referencedDeclaration": 54962, + "src": "2009:11:146", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -1313,28 +1455,28 @@ { "components": [ { - "id": 54876, + "id": 54979, "name": "Data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54839, - "src": "2013:4:144", + "referencedDeclaration": 54942, + "src": "2023:4:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$54839_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$54942_storage_ptr_$", "typeString": "type(struct PerpetualStableSwap.Data storage pointer)" } } ], - "id": 54877, + "id": 54980, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2012:6:144", + "src": "2022:6:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$54839_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$54942_storage_ptr_$", "typeString": "type(struct PerpetualStableSwap.Data storage pointer)" } } @@ -1346,37 +1488,37 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_type$_t_struct$_Data_$54839_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$54942_storage_ptr_$", "typeString": "type(struct PerpetualStableSwap.Data storage pointer)" } ], "expression": { - "id": 54873, + "id": 54976, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "1988:3:144", + "src": "1998:3:146", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 54874, + "id": 54977, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1992:6:144", + "memberLocation": "2002:6:146", "memberName": "decode", "nodeType": "MemberAccess", - "src": "1988:10:144", + "src": "1998:10:146", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 54878, + "id": 54981, "isConstant": false, "isLValue": false, "isPure": false, @@ -1385,83 +1527,83 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1988:31:144", + "src": "1998:31:146", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54942_memory_ptr", "typeString": "struct PerpetualStableSwap.Data memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1949:70:144" + "src": "1959:70:146" }, { "assignments": [ - 54882 + 54985 ], "declarations": [ { "constant": false, - "id": 54882, + "id": 54985, "mutability": "mutable", "name": "buySellData", - "nameLocation": "2115:11:144", + "nameLocation": "2125:11:146", "nodeType": "VariableDeclaration", - "scope": 54935, - "src": "2096:30:144", + "scope": 55038, + "src": "2106:30:146", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData" }, "typeName": { - "id": 54881, + "id": 54984, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54880, + "id": 54983, "name": "BuySellData", "nameLocations": [ - "2096:11:144" + "2106:11:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54850, - "src": "2096:11:144" + "referencedDeclaration": 54953, + "src": "2106:11:146" }, - "referencedDeclaration": 54850, - "src": "2096:11:144", + "referencedDeclaration": 54953, + "src": "2106:11:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_storage_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_storage_ptr", "typeString": "struct PerpetualStableSwap.BuySellData" } }, "visibility": "internal" } ], - "id": 54887, + "id": 54990, "initialValue": { "arguments": [ { - "id": 54884, + "id": 54987, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54853, - "src": "2134:5:144", + "referencedDeclaration": 54956, + "src": "2144:5:146", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 54885, + "id": 54988, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54872, - "src": "2141:4:144", + "referencedDeclaration": 54975, + "src": "2151:4:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54942_memory_ptr", "typeString": "struct PerpetualStableSwap.Data memory" } } @@ -1473,22 +1615,22 @@ "typeString": "address" }, { - "typeIdentifier": "t_struct$_Data_$54839_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54942_memory_ptr", "typeString": "struct PerpetualStableSwap.Data memory" } ], - "id": 54883, + "id": 54986, "name": "side", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55040, - "src": "2129:4:144", + "referencedDeclaration": 55143, + "src": "2139:4:146", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Data_$54839_memory_ptr_$returns$_t_struct$_BuySellData_$54850_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Data_$54942_memory_ptr_$returns$_t_struct$_BuySellData_$54953_memory_ptr_$", "typeString": "function (address,struct PerpetualStableSwap.Data memory) view returns (struct PerpetualStableSwap.BuySellData memory)" } }, - "id": 54886, + "id": 54989, "isConstant": false, "isLValue": false, "isPure": false, @@ -1497,19 +1639,19 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2129:17:144", + "src": "2139:17:146", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2096:50:144" + "src": "2106:50:146" }, { "condition": { - "id": 54893, + "id": 54996, "isConstant": false, "isLValue": false, "isPure": false, @@ -1517,7 +1659,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2229:29:144", + "src": "2239:29:146", "subExpression": { "components": [ { @@ -1525,34 +1667,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 54891, + "id": 54994, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 54888, + "id": 54991, "name": "buySellData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54882, - "src": "2231:11:144", + "referencedDeclaration": 54985, + "src": "2241:11:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, - "id": 54889, + "id": 54992, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2243:10:144", + "memberLocation": "2253:10:146", "memberName": "sellAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 54847, - "src": "2231:22:144", + "referencedDeclaration": 54950, + "src": "2241:22:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1562,35 +1704,35 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 54890, + "id": 54993, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2256:1:144", + "src": "2266:1:146", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2231:26:144", + "src": "2241:26:146", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 54892, + "id": 54995, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2230:28:144", + "src": "2240:28:146", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1601,24 +1743,24 @@ "typeString": "bool" } }, - "id": 54901, + "id": 55004, "nodeType": "IfStatement", - "src": "2225:110:144", + "src": "2235:110:146", "trueBody": { - "id": 54900, + "id": 55003, "nodeType": "Block", - "src": "2260:75:144", + "src": "2270:75:146", "statements": [ { "errorCall": { "arguments": [ { - "id": 54897, + "id": 55000, "name": "NOT_FUNDED", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54823, - "src": "2313:10:144", + "referencedDeclaration": 54926, + "src": "2323:10:146", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1633,33 +1775,33 @@ } ], "expression": { - "id": 54894, + "id": 54997, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "2281:17:144", + "referencedDeclaration": 54540, + "src": "2291:17:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 54896, + "id": 54999, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2299:13:144", + "memberLocation": "2309:13:146", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "2281:31:144", + "referencedDeclaration": 54484, + "src": "2291:31:146", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 54898, + "id": 55001, "isConstant": false, "isLValue": false, "isPure": false, @@ -1668,36 +1810,36 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2281:43:144", + "src": "2291:43:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 54899, + "id": 55002, "nodeType": "RevertStatement", - "src": "2274:50:144" + "src": "2284:50:146" } ] } }, { "expression": { - "id": 54933, + "id": 55036, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 54902, + "id": 55005, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54866, - "src": "2795:5:144", + "referencedDeclaration": 54969, + "src": "2805:5:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, @@ -1707,57 +1849,57 @@ "arguments": [ { "expression": { - "id": 54905, + "id": 55008, "name": "buySellData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54882, - "src": "2831:11:144", + "referencedDeclaration": 54985, + "src": "2841:11:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, - "id": 54906, + "id": 55009, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2843:9:144", + "memberLocation": "2853:9:146", "memberName": "sellToken", "nodeType": "MemberAccess", - "referencedDeclaration": 54842, - "src": "2831:21:144", + "referencedDeclaration": 54945, + "src": "2841:21:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, { "expression": { - "id": 54907, + "id": 55010, "name": "buySellData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54882, - "src": "2866:11:144", + "referencedDeclaration": 54985, + "src": "2876:11:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, - "id": 54908, + "id": 55011, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2878:8:144", + "memberLocation": "2888:8:146", "memberName": "buyToken", "nodeType": "MemberAccess", - "referencedDeclaration": 54845, - "src": "2866:20:144", + "referencedDeclaration": 54948, + "src": "2876:20:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -1765,14 +1907,14 @@ "arguments": [ { "hexValue": "30", - "id": 54911, + "id": 55014, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2908:1:144", + "src": "2918:1:146", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1787,26 +1929,26 @@ "typeString": "int_const 0" } ], - "id": 54910, + "id": 55013, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2900:7:144", + "src": "2910:7:146", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 54909, + "id": 55012, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2900:7:144", + "src": "2910:7:146", "typeDescriptions": {} } }, - "id": 54912, + "id": 55015, "isConstant": false, "isLValue": false, "isPure": true, @@ -1815,7 +1957,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2900:10:144", + "src": "2910:10:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1824,27 +1966,27 @@ }, { "expression": { - "id": 54913, + "id": 55016, "name": "buySellData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54882, - "src": "3004:11:144", + "referencedDeclaration": 54985, + "src": "3014:11:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, - "id": 54914, + "id": 55017, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3016:10:144", + "memberLocation": "3026:10:146", "memberName": "sellAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 54847, - "src": "3004:22:144", + "referencedDeclaration": 54950, + "src": "3014:22:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1852,27 +1994,27 @@ }, { "expression": { - "id": 54915, + "id": 55018, "name": "buySellData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54882, - "src": "3040:11:144", + "referencedDeclaration": 54985, + "src": "3050:11:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, - "id": 54916, + "id": 55019, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3052:9:144", + "memberLocation": "3062:9:146", "memberName": "buyAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 54849, - "src": "3040:21:144", + "referencedDeclaration": 54952, + "src": "3050:21:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1882,27 +2024,27 @@ "arguments": [ { "expression": { - "id": 54919, + "id": 55022, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54872, - "src": "3095:4:144", + "referencedDeclaration": 54975, + "src": "3105:4:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54942_memory_ptr", "typeString": "struct PerpetualStableSwap.Data memory" } }, - "id": 54920, + "id": 55023, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3100:21:144", + "memberLocation": "3110:21:146", "memberName": "validityBucketSeconds", "nodeType": "MemberAccess", - "referencedDeclaration": 54834, - "src": "3095:26:144", + "referencedDeclaration": 54937, + "src": "3105:26:146", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1917,33 +2059,33 @@ } ], "expression": { - "id": 54917, + "id": 55020, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "3075:5:144", + "referencedDeclaration": 54696, + "src": "3085:5:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54593_$", + "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54696_$", "typeString": "type(library ConditionalOrdersUtilsLib)" } }, - "id": 54918, + "id": 55021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3081:13:144", + "memberLocation": "3091:13:146", "memberName": "validToBucket", "nodeType": "MemberAccess", - "referencedDeclaration": 54539, - "src": "3075:19:144", + "referencedDeclaration": 54642, + "src": "3085:19:146", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_uint32_$", "typeString": "function (uint32) view returns (uint32)" } }, - "id": 54921, + "id": 55024, "isConstant": false, "isLValue": false, "isPure": false, @@ -1952,7 +2094,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3075:47:144", + "src": "3085:47:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -1961,27 +2103,27 @@ }, { "expression": { - "id": 54922, + "id": 55025, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54872, - "src": "3136:4:144", + "referencedDeclaration": 54975, + "src": "3146:4:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54942_memory_ptr", "typeString": "struct PerpetualStableSwap.Data memory" } }, - "id": 54923, + "id": 55026, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3141:7:144", + "memberLocation": "3151:7:146", "memberName": "appData", "nodeType": "MemberAccess", - "referencedDeclaration": 54838, - "src": "3136:12:144", + "referencedDeclaration": 54941, + "src": "3146:12:146", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1989,14 +2131,14 @@ }, { "hexValue": "30", - "id": 54924, + "id": 55027, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3162:1:144", + "src": "3172:1:146", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2005,27 +2147,27 @@ }, { "expression": { - "id": 54925, + "id": 55028, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "3177:9:144", + "referencedDeclaration": 14459, + "src": "3187:9:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 54926, + "id": 55029, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3187:9:144", + "memberLocation": "3197:9:146", "memberName": "KIND_SELL", "nodeType": "MemberAccess", - "referencedDeclaration": 17129, - "src": "3177:19:144", + "referencedDeclaration": 14342, + "src": "3187:19:146", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2033,14 +2175,14 @@ }, { "hexValue": "66616c7365", - "id": 54927, + "id": 55030, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3210:5:144", + "src": "3220:5:146", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2049,27 +2191,27 @@ }, { "expression": { - "id": 54928, + "id": 55031, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "3229:9:144", + "referencedDeclaration": 14459, + "src": "3239:9:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 54929, + "id": 55032, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3239:13:144", + "memberLocation": "3249:13:146", "memberName": "BALANCE_ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 17137, - "src": "3229:23:144", + "referencedDeclaration": 14350, + "src": "3239:23:146", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2077,27 +2219,27 @@ }, { "expression": { - "id": 54930, + "id": 55033, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "3266:9:144", + "referencedDeclaration": 14459, + "src": "3276:9:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 54931, + "id": 55034, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3276:13:144", + "memberLocation": "3286:13:146", "memberName": "BALANCE_ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 17137, - "src": "3266:23:144", + "referencedDeclaration": 14350, + "src": "3276:23:146", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2107,11 +2249,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { @@ -2156,33 +2298,33 @@ } ], "expression": { - "id": 54903, + "id": 55006, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "2803:9:144", + "referencedDeclaration": 14459, + "src": "2813:9:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 54904, + "id": 55007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2813:4:144", + "memberLocation": "2823:4:146", "memberName": "Data", "nodeType": "MemberAccess", - "referencedDeclaration": 17121, - "src": "2803:14:144", + "referencedDeclaration": 14334, + "src": "2813:14:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$17121_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$14334_storage_ptr_$", "typeString": "type(struct GPv2Order.Data storage pointer)" } }, - "id": 54932, + "id": 55035, "isConstant": false, "isLValue": false, "isPure": false, @@ -2191,32 +2333,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2803:496:144", + "src": "2813:496:146", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "src": "2795:504:144", + "src": "2805:504:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "id": 54934, + "id": 55037, "nodeType": "ExpressionStatement", - "src": "2795:504:144" + "src": "2805:504:146" } ] }, "baseFunctions": [ - 53476 + 53546 ], "documentation": { - "id": 54851, + "id": 54954, "nodeType": "StructuredDocumentation", - "src": "1599:57:144", + "src": "1609:57:146", "text": " @inheritdoc IConditionalOrderGenerator" }, "functionSelector": "b8296fc4", @@ -2224,26 +2366,26 @@ "kind": "function", "modifiers": [], "name": "getTradeableOrder", - "nameLocation": "1670:17:144", + "nameLocation": "1680:17:146", "overrides": { - "id": 54863, + "id": 54966, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "1801:8:144" + "src": "1811:8:146" }, "parameters": { - "id": 54862, + "id": 54965, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54853, + "id": 54956, "mutability": "mutable", "name": "owner", - "nameLocation": "1696:5:144", + "nameLocation": "1706:5:146", "nodeType": "VariableDeclaration", - "scope": 54936, - "src": "1688:13:144", + "scope": 55039, + "src": "1698:13:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2251,10 +2393,10 @@ "typeString": "address" }, "typeName": { - "id": 54852, + "id": 54955, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1688:7:144", + "src": "1698:7:146", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2265,13 +2407,13 @@ }, { "constant": false, - "id": 54855, + "id": 54958, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54936, - "src": "1703:7:144", + "scope": 55039, + "src": "1713:7:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2279,10 +2421,10 @@ "typeString": "address" }, "typeName": { - "id": 54854, + "id": 54957, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1703:7:144", + "src": "1713:7:146", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2293,13 +2435,13 @@ }, { "constant": false, - "id": 54857, + "id": 54960, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54936, - "src": "1712:7:144", + "scope": 55039, + "src": "1722:7:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2307,10 +2449,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54856, + "id": 54959, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1712:7:144", + "src": "1722:7:146", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2320,13 +2462,13 @@ }, { "constant": false, - "id": 54859, + "id": 54962, "mutability": "mutable", "name": "staticInput", - "nameLocation": "1736:11:144", + "nameLocation": "1746:11:146", "nodeType": "VariableDeclaration", - "scope": 54936, - "src": "1721:26:144", + "scope": 55039, + "src": "1731:26:146", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -2334,10 +2476,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54858, + "id": 54961, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1721:5:144", + "src": "1731:5:146", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2347,13 +2489,13 @@ }, { "constant": false, - "id": 54861, + "id": 54964, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54936, - "src": "1749:14:144", + "scope": 55039, + "src": "1759:14:146", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -2361,10 +2503,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54860, + "id": 54963, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1749:5:144", + "src": "1759:5:146", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2373,142 +2515,142 @@ "visibility": "internal" } ], - "src": "1687:77:144" + "src": "1697:77:146" }, "returnParameters": { - "id": 54867, + "id": 54970, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54866, + "id": 54969, "mutability": "mutable", "name": "order", - "nameLocation": "1849:5:144", + "nameLocation": "1859:5:146", "nodeType": "VariableDeclaration", - "scope": 54936, - "src": "1827:27:144", + "scope": 55039, + "src": "1837:27:146", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 54865, + "id": 54968, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54864, + "id": 54967, "name": "GPv2Order.Data", "nameLocations": [ - "1827:9:144", - "1837:4:144" + "1837:9:146", + "1847:4:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "1827:14:144" + "referencedDeclaration": 14334, + "src": "1837:14:146" }, - "referencedDeclaration": 17121, - "src": "1827:14:144", + "referencedDeclaration": 14334, + "src": "1837:14:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "src": "1826:29:144" + "src": "1836:29:146" }, - "scope": 55097, + "scope": 55200, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 55040, + "id": 55143, "nodeType": "FunctionDefinition", - "src": "3312:1065:144", + "src": "3322:1065:146", "nodes": [], "body": { - "id": 55039, + "id": 55142, "nodeType": "Block", - "src": "3462:915:144", + "src": "3472:915:146", "nodes": [], "statements": [ { "assignments": [ - 54949 + 55052 ], "declarations": [ { "constant": false, - "id": 54949, + "id": 55052, "mutability": "mutable", "name": "tokenA", - "nameLocation": "3487:6:144", + "nameLocation": "3497:6:146", "nodeType": "VariableDeclaration", - "scope": 55039, - "src": "3472:21:144", + "scope": 55142, + "src": "3482:21:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" }, "typeName": { - "id": 54948, + "id": 55051, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54947, + "id": 55050, "name": "IERC20Metadata", "nameLocations": [ - "3472:14:144" + "3482:14:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 695, - "src": "3472:14:144" + "referencedDeclaration": 45845, + "src": "3482:14:146" }, - "referencedDeclaration": 695, - "src": "3472:14:144", + "referencedDeclaration": 45845, + "src": "3482:14:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, "visibility": "internal" } ], - "id": 54957, + "id": 55060, "initialValue": { "arguments": [ { "arguments": [ { "expression": { - "id": 54953, + "id": 55056, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54941, - "src": "3519:4:144", + "referencedDeclaration": 55044, + "src": "3529:4:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54942_memory_ptr", "typeString": "struct PerpetualStableSwap.Data memory" } }, - "id": 54954, + "id": 55057, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3524:6:144", + "memberLocation": "3534:6:146", "memberName": "tokenA", "nodeType": "MemberAccess", - "referencedDeclaration": 54829, - "src": "3519:11:144", + "referencedDeclaration": 54932, + "src": "3529:11:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } } @@ -2516,30 +2658,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } ], - "id": 54952, + "id": 55055, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3511:7:144", + "src": "3521:7:146", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 54951, + "id": 55054, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3511:7:144", + "src": "3521:7:146", "typeDescriptions": {} } }, - "id": 54955, + "id": 55058, "isConstant": false, "isLValue": false, "isPure": false, @@ -2548,7 +2690,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3511:20:144", + "src": "3521:20:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2563,18 +2705,18 @@ "typeString": "address" } ], - "id": 54950, + "id": 55053, "name": "IERC20Metadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, - "src": "3496:14:144", + "referencedDeclaration": 45845, + "src": "3506:14:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Metadata_$695_$", + "typeIdentifier": "t_type$_t_contract$_IERC20Metadata_$45845_$", "typeString": "type(contract IERC20Metadata)" } }, - "id": 54956, + "id": 55059, "isConstant": false, "isLValue": false, "isPure": false, @@ -2583,89 +2725,89 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3496:36:144", + "src": "3506:36:146", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, "nodeType": "VariableDeclarationStatement", - "src": "3472:60:144" + "src": "3482:60:146" }, { "assignments": [ - 54960 + 55063 ], "declarations": [ { "constant": false, - "id": 54960, + "id": 55063, "mutability": "mutable", "name": "tokenB", - "nameLocation": "3557:6:144", + "nameLocation": "3567:6:146", "nodeType": "VariableDeclaration", - "scope": 55039, - "src": "3542:21:144", + "scope": 55142, + "src": "3552:21:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" }, "typeName": { - "id": 54959, + "id": 55062, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54958, + "id": 55061, "name": "IERC20Metadata", "nameLocations": [ - "3542:14:144" + "3552:14:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 695, - "src": "3542:14:144" + "referencedDeclaration": 45845, + "src": "3552:14:146" }, - "referencedDeclaration": 695, - "src": "3542:14:144", + "referencedDeclaration": 45845, + "src": "3552:14:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, "visibility": "internal" } ], - "id": 54968, + "id": 55071, "initialValue": { "arguments": [ { "arguments": [ { "expression": { - "id": 54964, + "id": 55067, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54941, - "src": "3589:4:144", + "referencedDeclaration": 55044, + "src": "3599:4:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54942_memory_ptr", "typeString": "struct PerpetualStableSwap.Data memory" } }, - "id": 54965, + "id": 55068, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3594:6:144", + "memberLocation": "3604:6:146", "memberName": "tokenB", "nodeType": "MemberAccess", - "referencedDeclaration": 54832, - "src": "3589:11:144", + "referencedDeclaration": 54935, + "src": "3599:11:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } } @@ -2673,30 +2815,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } ], - "id": 54963, + "id": 55066, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3581:7:144", + "src": "3591:7:146", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 54962, + "id": 55065, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3581:7:144", + "src": "3591:7:146", "typeDescriptions": {} } }, - "id": 54966, + "id": 55069, "isConstant": false, "isLValue": false, "isPure": false, @@ -2705,7 +2847,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3581:20:144", + "src": "3591:20:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2720,18 +2862,18 @@ "typeString": "address" } ], - "id": 54961, + "id": 55064, "name": "IERC20Metadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, - "src": "3566:14:144", + "referencedDeclaration": 45845, + "src": "3576:14:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20Metadata_$695_$", + "typeIdentifier": "t_type$_t_contract$_IERC20Metadata_$45845_$", "typeString": "type(contract IERC20Metadata)" } }, - "id": 54967, + "id": 55070, "isConstant": false, "isLValue": false, "isPure": false, @@ -2740,30 +2882,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3566:36:144", + "src": "3576:36:146", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, "nodeType": "VariableDeclarationStatement", - "src": "3542:60:144" + "src": "3552:60:146" }, { "assignments": [ - 54970 + 55073 ], "declarations": [ { "constant": false, - "id": 54970, + "id": 55073, "mutability": "mutable", "name": "balanceA", - "nameLocation": "3620:8:144", + "nameLocation": "3630:8:146", "nodeType": "VariableDeclaration", - "scope": 55039, - "src": "3612:16:144", + "scope": 55142, + "src": "3622:16:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2771,10 +2913,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54969, + "id": 55072, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3612:7:144", + "src": "3622:7:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2783,16 +2925,16 @@ "visibility": "internal" } ], - "id": 54975, + "id": 55078, "initialValue": { "arguments": [ { - "id": 54973, + "id": 55076, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54938, - "src": "3648:5:144", + "referencedDeclaration": 55041, + "src": "3658:5:146", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2807,33 +2949,33 @@ } ], "expression": { - "id": 54971, + "id": 55074, "name": "tokenA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54949, - "src": "3631:6:144", + "referencedDeclaration": 55052, + "src": "3641:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, - "id": 54972, + "id": 55075, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3638:9:144", + "memberLocation": "3648:9:146", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 627, - "src": "3631:16:144", + "referencedDeclaration": 45777, + "src": "3641:16:146", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 54974, + "id": 55077, "isConstant": false, "isLValue": false, "isPure": false, @@ -2842,7 +2984,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3631:23:144", + "src": "3641:23:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2850,22 +2992,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3612:42:144" + "src": "3622:42:146" }, { "assignments": [ - 54977 + 55080 ], "declarations": [ { "constant": false, - "id": 54977, + "id": 55080, "mutability": "mutable", "name": "balanceB", - "nameLocation": "3672:8:144", + "nameLocation": "3682:8:146", "nodeType": "VariableDeclaration", - "scope": 55039, - "src": "3664:16:144", + "scope": 55142, + "src": "3674:16:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2873,10 +3015,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54976, + "id": 55079, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3664:7:144", + "src": "3674:7:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2885,16 +3027,16 @@ "visibility": "internal" } ], - "id": 54982, + "id": 55085, "initialValue": { "arguments": [ { - "id": 54980, + "id": 55083, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54938, - "src": "3700:5:144", + "referencedDeclaration": 55041, + "src": "3710:5:146", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2909,33 +3051,33 @@ } ], "expression": { - "id": 54978, + "id": 55081, "name": "tokenB", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54960, - "src": "3683:6:144", + "referencedDeclaration": 55063, + "src": "3693:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, - "id": 54979, + "id": 55082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3690:9:144", + "memberLocation": "3700:9:146", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 627, - "src": "3683:16:144", + "referencedDeclaration": 45777, + "src": "3693:16:146", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 54981, + "id": 55084, "isConstant": false, "isLValue": false, "isPure": false, @@ -2944,7 +3086,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3683:23:144", + "src": "3693:23:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2952,7 +3094,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3664:42:144" + "src": "3674:42:146" }, { "condition": { @@ -2960,7 +3102,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 54989, + "id": 55092, "isConstant": false, "isLValue": false, "isPure": false, @@ -2968,38 +3110,38 @@ "leftExpression": { "arguments": [ { - "id": 54984, + "id": 55087, "name": "tokenA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54949, - "src": "3735:6:144", + "referencedDeclaration": 55052, + "src": "3745:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, { - "id": 54985, + "id": 55088, "name": "balanceA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54970, - "src": "3743:8:144", + "referencedDeclaration": 55073, + "src": "3753:8:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 54986, + "id": 55089, "name": "tokenB", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54960, - "src": "3753:6:144", + "referencedDeclaration": 55063, + "src": "3763:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } } @@ -3007,7 +3149,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" }, { @@ -3015,22 +3157,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } ], - "id": 54983, + "id": 55086, "name": "convertAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55096, - "src": "3721:13:144", + "referencedDeclaration": 55199, + "src": "3731:13:146", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Metadata_$695_$_t_uint256_$_t_contract$_IERC20Metadata_$695_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Metadata_$45845_$_t_uint256_$_t_contract$_IERC20Metadata_$45845_$returns$_t_uint256_$", "typeString": "function (contract IERC20Metadata,uint256,contract IERC20Metadata) view returns (uint256)" } }, - "id": 54987, + "id": 55090, "isConstant": false, "isLValue": false, "isPure": false, @@ -3039,7 +3181,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3721:39:144", + "src": "3731:39:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3049,44 +3191,44 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 54988, + "id": 55091, "name": "balanceB", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54977, - "src": "3763:8:144", + "referencedDeclaration": 55080, + "src": "3773:8:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3721:50:144", + "src": "3731:50:146", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 55037, + "id": 55140, "nodeType": "Block", - "src": "4075:296:144", + "src": "4085:296:146", "statements": [ { "expression": { - "id": 55035, + "id": 55138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 55014, + "id": 55117, "name": "buySellData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54945, - "src": "4089:11:144", + "referencedDeclaration": 55048, + "src": "4099:11:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, @@ -3095,36 +3237,36 @@ "rightHandSide": { "arguments": [ { - "id": 55016, + "id": 55119, "name": "tokenB", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54960, - "src": "4144:6:144", + "referencedDeclaration": 55063, + "src": "4154:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, { - "id": 55017, + "id": 55120, "name": "tokenA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54949, - "src": "4178:6:144", + "referencedDeclaration": 55052, + "src": "4188:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, { - "id": 55018, + "id": 55121, "name": "balanceB", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54977, - "src": "4214:8:144", + "referencedDeclaration": 55080, + "src": "4224:8:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3135,7 +3277,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55033, + "id": 55136, "isConstant": false, "isLValue": false, "isPure": false, @@ -3145,7 +3287,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55030, + "id": 55133, "isConstant": false, "isLValue": false, "isPure": false, @@ -3153,38 +3295,38 @@ "leftExpression": { "arguments": [ { - "id": 55020, + "id": 55123, "name": "tokenB", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54960, - "src": "4265:6:144", + "referencedDeclaration": 55063, + "src": "4275:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, { - "id": 55021, + "id": 55124, "name": "balanceB", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54977, - "src": "4273:8:144", + "referencedDeclaration": 55080, + "src": "4283:8:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 55022, + "id": 55125, "name": "tokenA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54949, - "src": "4283:6:144", + "referencedDeclaration": 55052, + "src": "4293:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } } @@ -3192,7 +3334,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" }, { @@ -3200,22 +3342,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } ], - "id": 55019, + "id": 55122, "name": "convertAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55096, - "src": "4251:13:144", + "referencedDeclaration": 55199, + "src": "4261:13:146", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Metadata_$695_$_t_uint256_$_t_contract$_IERC20Metadata_$695_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Metadata_$45845_$_t_uint256_$_t_contract$_IERC20Metadata_$45845_$returns$_t_uint256_$", "typeString": "function (contract IERC20Metadata,uint256,contract IERC20Metadata) view returns (uint256)" } }, - "id": 55023, + "id": 55126, "isConstant": false, "isLValue": false, "isPure": false, @@ -3224,7 +3366,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4251:39:144", + "src": "4261:39:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3240,34 +3382,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55028, + "id": 55131, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55024, + "id": 55127, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "4294:5:144", + "referencedDeclaration": 54696, + "src": "4304:5:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54593_$", + "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54696_$", "typeString": "type(library ConditionalOrdersUtilsLib)" } }, - "id": 55025, + "id": 55128, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "4300:7:144", + "memberLocation": "4310:7:146", "memberName": "MAX_BPS", "nodeType": "MemberAccess", - "referencedDeclaration": 54514, - "src": "4294:13:144", + "referencedDeclaration": 54617, + "src": "4304:13:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3277,53 +3419,53 @@ "operator": "+", "rightExpression": { "expression": { - "id": 55026, + "id": 55129, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54941, - "src": "4310:4:144", + "referencedDeclaration": 55044, + "src": "4320:4:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54942_memory_ptr", "typeString": "struct PerpetualStableSwap.Data memory" } }, - "id": 55027, + "id": 55130, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4315:13:144", + "memberLocation": "4325:13:146", "memberName": "halfSpreadBps", "nodeType": "MemberAccess", - "referencedDeclaration": 54836, - "src": "4310:18:144", + "referencedDeclaration": 54939, + "src": "4320:18:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4294:34:144", + "src": "4304:34:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 55029, + "id": 55132, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4293:36:144", + "src": "4303:36:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4251:78:144", + "src": "4261:78:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3333,33 +3475,33 @@ "operator": "/", "rightExpression": { "expression": { - "id": 55031, + "id": 55134, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "4332:5:144", + "referencedDeclaration": 54696, + "src": "4342:5:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54593_$", + "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54696_$", "typeString": "type(library ConditionalOrdersUtilsLib)" } }, - "id": 55032, + "id": 55135, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "4338:7:144", + "memberLocation": "4348:7:146", "memberName": "MAX_BPS", "nodeType": "MemberAccess", - "referencedDeclaration": 54514, - "src": "4332:13:144", + "referencedDeclaration": 54617, + "src": "4342:13:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4251:94:144", + "src": "4261:94:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3369,11 +3511,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" }, { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" }, { @@ -3385,28 +3527,28 @@ "typeString": "uint256" } ], - "id": 55015, + "id": 55118, "name": "BuySellData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54850, - "src": "4103:11:144", + "referencedDeclaration": 54953, + "src": "4113:11:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_BuySellData_$54850_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_BuySellData_$54953_storage_ptr_$", "typeString": "type(struct PerpetualStableSwap.BuySellData storage pointer)" } }, - "id": 55034, + "id": 55137, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "4133:9:144", - "4168:8:144", - "4202:10:144", - "4240:9:144" + "4143:9:146", + "4178:8:146", + "4212:10:146", + "4250:9:146" ], "names": [ "sellToken", @@ -3415,49 +3557,49 @@ "buyAmount" ], "nodeType": "FunctionCall", - "src": "4103:257:144", + "src": "4113:257:146", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, - "src": "4089:271:144", + "src": "4099:271:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, - "id": 55036, + "id": 55139, "nodeType": "ExpressionStatement", - "src": "4089:271:144" + "src": "4099:271:146" } ] }, - "id": 55038, + "id": 55141, "nodeType": "IfStatement", - "src": "3717:654:144", + "src": "3727:654:146", "trueBody": { - "id": 55013, + "id": 55116, "nodeType": "Block", - "src": "3773:296:144", + "src": "3783:296:146", "statements": [ { "expression": { - "id": 55011, + "id": 55114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 54990, + "id": 55093, "name": "buySellData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54945, - "src": "3787:11:144", + "referencedDeclaration": 55048, + "src": "3797:11:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, @@ -3466,36 +3608,36 @@ "rightHandSide": { "arguments": [ { - "id": 54992, + "id": 55095, "name": "tokenA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54949, - "src": "3842:6:144", + "referencedDeclaration": 55052, + "src": "3852:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, { - "id": 54993, + "id": 55096, "name": "tokenB", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54960, - "src": "3876:6:144", + "referencedDeclaration": 55063, + "src": "3886:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, { - "id": 54994, + "id": 55097, "name": "balanceA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54970, - "src": "3912:8:144", + "referencedDeclaration": 55073, + "src": "3922:8:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3506,7 +3648,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55009, + "id": 55112, "isConstant": false, "isLValue": false, "isPure": false, @@ -3516,7 +3658,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55006, + "id": 55109, "isConstant": false, "isLValue": false, "isPure": false, @@ -3524,38 +3666,38 @@ "leftExpression": { "arguments": [ { - "id": 54996, + "id": 55099, "name": "tokenA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54949, - "src": "3963:6:144", + "referencedDeclaration": 55052, + "src": "3973:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, { - "id": 54997, + "id": 55100, "name": "balanceA", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54970, - "src": "3971:8:144", + "referencedDeclaration": 55073, + "src": "3981:8:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 54998, + "id": 55101, "name": "tokenB", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54960, - "src": "3981:6:144", + "referencedDeclaration": 55063, + "src": "3991:6:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } } @@ -3563,7 +3705,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" }, { @@ -3571,22 +3713,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } ], - "id": 54995, + "id": 55098, "name": "convertAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55096, - "src": "3949:13:144", + "referencedDeclaration": 55199, + "src": "3959:13:146", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Metadata_$695_$_t_uint256_$_t_contract$_IERC20Metadata_$695_$returns$_t_uint256_$", + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20Metadata_$45845_$_t_uint256_$_t_contract$_IERC20Metadata_$45845_$returns$_t_uint256_$", "typeString": "function (contract IERC20Metadata,uint256,contract IERC20Metadata) view returns (uint256)" } }, - "id": 54999, + "id": 55102, "isConstant": false, "isLValue": false, "isPure": false, @@ -3595,7 +3737,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3949:39:144", + "src": "3959:39:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3611,34 +3753,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55004, + "id": 55107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55000, + "id": 55103, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "3992:5:144", + "referencedDeclaration": 54696, + "src": "4002:5:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54593_$", + "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54696_$", "typeString": "type(library ConditionalOrdersUtilsLib)" } }, - "id": 55001, + "id": 55104, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3998:7:144", + "memberLocation": "4008:7:146", "memberName": "MAX_BPS", "nodeType": "MemberAccess", - "referencedDeclaration": 54514, - "src": "3992:13:144", + "referencedDeclaration": 54617, + "src": "4002:13:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3648,53 +3790,53 @@ "operator": "+", "rightExpression": { "expression": { - "id": 55002, + "id": 55105, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54941, - "src": "4008:4:144", + "referencedDeclaration": 55044, + "src": "4018:4:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54942_memory_ptr", "typeString": "struct PerpetualStableSwap.Data memory" } }, - "id": 55003, + "id": 55106, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4013:13:144", + "memberLocation": "4023:13:146", "memberName": "halfSpreadBps", "nodeType": "MemberAccess", - "referencedDeclaration": 54836, - "src": "4008:18:144", + "referencedDeclaration": 54939, + "src": "4018:18:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3992:34:144", + "src": "4002:34:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 55005, + "id": 55108, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3991:36:144", + "src": "4001:36:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3949:78:144", + "src": "3959:78:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3704,33 +3846,33 @@ "operator": "/", "rightExpression": { "expression": { - "id": 55007, + "id": 55110, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "4030:5:144", + "referencedDeclaration": 54696, + "src": "4040:5:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54593_$", + "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54696_$", "typeString": "type(library ConditionalOrdersUtilsLib)" } }, - "id": 55008, + "id": 55111, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "4036:7:144", + "memberLocation": "4046:7:146", "memberName": "MAX_BPS", "nodeType": "MemberAccess", - "referencedDeclaration": 54514, - "src": "4030:13:144", + "referencedDeclaration": 54617, + "src": "4040:13:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3949:94:144", + "src": "3959:94:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3740,11 +3882,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" }, { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" }, { @@ -3756,28 +3898,28 @@ "typeString": "uint256" } ], - "id": 54991, + "id": 55094, "name": "BuySellData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54850, - "src": "3801:11:144", + "referencedDeclaration": 54953, + "src": "3811:11:146", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_BuySellData_$54850_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_BuySellData_$54953_storage_ptr_$", "typeString": "type(struct PerpetualStableSwap.BuySellData storage pointer)" } }, - "id": 55010, + "id": 55113, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "3831:9:144", - "3866:8:144", - "3900:10:144", - "3938:9:144" + "3841:9:146", + "3876:8:146", + "3910:10:146", + "3948:9:146" ], "names": [ "sellToken", @@ -3786,22 +3928,22 @@ "buyAmount" ], "nodeType": "FunctionCall", - "src": "3801:257:144", + "src": "3811:257:146", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, - "src": "3787:271:144", + "src": "3797:271:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData memory" } }, - "id": 55012, + "id": 55115, "nodeType": "ExpressionStatement", - "src": "3787:271:144" + "src": "3797:271:146" } ] } @@ -3812,20 +3954,20 @@ "kind": "function", "modifiers": [], "name": "side", - "nameLocation": "3321:4:144", + "nameLocation": "3331:4:146", "parameters": { - "id": 54942, + "id": 55045, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54938, + "id": 55041, "mutability": "mutable", "name": "owner", - "nameLocation": "3334:5:144", + "nameLocation": "3344:5:146", "nodeType": "VariableDeclaration", - "scope": 55040, - "src": "3326:13:144", + "scope": 55143, + "src": "3336:13:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3833,10 +3975,10 @@ "typeString": "address" }, "typeName": { - "id": 54937, + "id": 55040, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3326:7:144", + "src": "3336:7:146", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3847,119 +3989,119 @@ }, { "constant": false, - "id": 54941, + "id": 55044, "mutability": "mutable", "name": "data", - "nameLocation": "3373:4:144", + "nameLocation": "3383:4:146", "nodeType": "VariableDeclaration", - "scope": 55040, - "src": "3341:36:144", + "scope": 55143, + "src": "3351:36:146", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_memory_ptr", + "typeIdentifier": "t_struct$_Data_$54942_memory_ptr", "typeString": "struct PerpetualStableSwap.Data" }, "typeName": { - "id": 54940, + "id": 55043, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54939, + "id": 55042, "name": "PerpetualStableSwap.Data", "nameLocations": [ - "3341:19:144", - "3361:4:144" + "3351:19:146", + "3371:4:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54839, - "src": "3341:24:144" + "referencedDeclaration": 54942, + "src": "3351:24:146" }, - "referencedDeclaration": 54839, - "src": "3341:24:144", + "referencedDeclaration": 54942, + "src": "3351:24:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$54839_storage_ptr", + "typeIdentifier": "t_struct$_Data_$54942_storage_ptr", "typeString": "struct PerpetualStableSwap.Data" } }, "visibility": "internal" } ], - "src": "3325:53:144" + "src": "3335:53:146" }, "returnParameters": { - "id": 54946, + "id": 55049, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54945, + "id": 55048, "mutability": "mutable", "name": "buySellData", - "nameLocation": "3445:11:144", + "nameLocation": "3455:11:146", "nodeType": "VariableDeclaration", - "scope": 55040, - "src": "3426:30:144", + "scope": 55143, + "src": "3436:30:146", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_memory_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_memory_ptr", "typeString": "struct PerpetualStableSwap.BuySellData" }, "typeName": { - "id": 54944, + "id": 55047, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54943, + "id": 55046, "name": "BuySellData", "nameLocations": [ - "3426:11:144" + "3436:11:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54850, - "src": "3426:11:144" + "referencedDeclaration": 54953, + "src": "3436:11:146" }, - "referencedDeclaration": 54850, - "src": "3426:11:144", + "referencedDeclaration": 54953, + "src": "3436:11:146", "typeDescriptions": { - "typeIdentifier": "t_struct$_BuySellData_$54850_storage_ptr", + "typeIdentifier": "t_struct$_BuySellData_$54953_storage_ptr", "typeString": "struct PerpetualStableSwap.BuySellData" } }, "visibility": "internal" } ], - "src": "3425:32:144" + "src": "3435:32:146" }, - "scope": 55097, + "scope": 55200, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { - "id": 55096, + "id": 55199, "nodeType": "FunctionDefinition", - "src": "4383:491:144", + "src": "4393:491:146", "nodes": [], "body": { - "id": 55095, + "id": 55198, "nodeType": "Block", - "src": "4547:327:144", + "src": "4557:327:146", "nodes": [], "statements": [ { "assignments": [ - 55054 + 55157 ], "declarations": [ { "constant": false, - "id": 55054, + "id": 55157, "mutability": "mutable", "name": "srcDecimals", - "nameLocation": "4563:11:144", + "nameLocation": "4573:11:146", "nodeType": "VariableDeclaration", - "scope": 55095, - "src": "4557:17:144", + "scope": 55198, + "src": "4567:17:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3967,10 +4109,10 @@ "typeString": "uint8" }, "typeName": { - "id": 55053, + "id": 55156, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4557:5:144", + "src": "4567:5:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3979,39 +4121,39 @@ "visibility": "internal" } ], - "id": 55058, + "id": 55161, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 55055, + "id": 55158, "name": "srcToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55043, - "src": "4577:8:144", + "referencedDeclaration": 55146, + "src": "4587:8:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, - "id": 55056, + "id": 55159, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4586:8:144", + "memberLocation": "4596:8:146", "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 694, - "src": "4577:17:144", + "referencedDeclaration": 45844, + "src": "4587:17:146", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 55057, + "id": 55160, "isConstant": false, "isLValue": false, "isPure": false, @@ -4020,7 +4162,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4577:19:144", + "src": "4587:19:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -4028,22 +4170,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4557:39:144" + "src": "4567:39:146" }, { "assignments": [ - 55060 + 55163 ], "declarations": [ { "constant": false, - "id": 55060, + "id": 55163, "mutability": "mutable", "name": "destDecimals", - "nameLocation": "4612:12:144", + "nameLocation": "4622:12:146", "nodeType": "VariableDeclaration", - "scope": 55095, - "src": "4606:18:144", + "scope": 55198, + "src": "4616:18:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4051,10 +4193,10 @@ "typeString": "uint8" }, "typeName": { - "id": 55059, + "id": 55162, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4606:5:144", + "src": "4616:5:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4063,39 +4205,39 @@ "visibility": "internal" } ], - "id": 55064, + "id": 55167, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 55061, + "id": 55164, "name": "destToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55048, - "src": "4627:9:144", + "referencedDeclaration": 55151, + "src": "4637:9:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, - "id": 55062, + "id": 55165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4637:8:144", + "memberLocation": "4647:8:146", "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 694, - "src": "4627:18:144", + "referencedDeclaration": 45844, + "src": "4637:18:146", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 55063, + "id": 55166, "isConstant": false, "isLValue": false, "isPure": false, @@ -4104,7 +4246,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4627:20:144", + "src": "4637:20:146", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -4112,7 +4254,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4606:41:144" + "src": "4616:41:146" }, { "condition": { @@ -4120,18 +4262,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 55067, + "id": 55170, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55065, + "id": 55168, "name": "srcDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55054, - "src": "4662:11:144", + "referencedDeclaration": 55157, + "src": "4672:11:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4140,42 +4282,42 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 55066, + "id": 55169, "name": "destDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55060, - "src": "4676:12:144", + "referencedDeclaration": 55163, + "src": "4686:12:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4662:26:144", + "src": "4672:26:146", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 55093, + "id": 55196, "nodeType": "Block", - "src": "4782:86:144", + "src": "4792:86:146", "statements": [ { "expression": { - "id": 55091, + "id": 55194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 55081, + "id": 55184, "name": "destAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55051, - "src": "4796:10:144", + "referencedDeclaration": 55154, + "src": "4806:10:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4188,18 +4330,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55090, + "id": 55193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55082, + "id": 55185, "name": "srcAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55045, - "src": "4809:9:144", + "referencedDeclaration": 55148, + "src": "4819:9:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4214,21 +4356,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55088, + "id": 55191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 55083, + "id": 55186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4822:2:144", + "src": "4832:2:146", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -4244,18 +4386,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 55086, + "id": 55189, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55084, + "id": 55187, "name": "destDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55060, - "src": "4829:12:144", + "referencedDeclaration": 55163, + "src": "4839:12:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4264,97 +4406,97 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 55085, + "id": 55188, "name": "srcDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55054, - "src": "4844:11:144", + "referencedDeclaration": 55157, + "src": "4854:11:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4829:26:144", + "src": "4839:26:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 55087, + "id": 55190, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4828:28:144", + "src": "4838:28:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4822:34:144", + "src": "4832:34:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 55089, + "id": 55192, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4821:36:144", + "src": "4831:36:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4809:48:144", + "src": "4819:48:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4796:61:144", + "src": "4806:61:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 55092, + "id": 55195, "nodeType": "ExpressionStatement", - "src": "4796:61:144" + "src": "4806:61:146" } ] }, - "id": 55094, + "id": 55197, "nodeType": "IfStatement", - "src": "4658:210:144", + "src": "4668:210:146", "trueBody": { - "id": 55080, + "id": 55183, "nodeType": "Block", - "src": "4690:86:144", + "src": "4700:86:146", "statements": [ { "expression": { - "id": 55078, + "id": 55181, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 55068, + "id": 55171, "name": "destAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55051, - "src": "4704:10:144", + "referencedDeclaration": 55154, + "src": "4714:10:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4367,18 +4509,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55077, + "id": 55180, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55069, + "id": 55172, "name": "srcAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55045, - "src": "4717:9:144", + "referencedDeclaration": 55148, + "src": "4727:9:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4393,21 +4535,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55075, + "id": 55178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 55070, + "id": 55173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4730:2:144", + "src": "4740:2:146", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -4423,18 +4565,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 55073, + "id": 55176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55071, + "id": 55174, "name": "srcDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55054, - "src": "4737:11:144", + "referencedDeclaration": 55157, + "src": "4747:11:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4443,72 +4585,72 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 55072, + "id": 55175, "name": "destDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55060, - "src": "4751:12:144", + "referencedDeclaration": 55163, + "src": "4761:12:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4737:26:144", + "src": "4747:26:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 55074, + "id": 55177, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4736:28:144", + "src": "4746:28:146", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4730:34:144", + "src": "4740:34:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 55076, + "id": 55179, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4729:36:144", + "src": "4739:36:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4717:48:144", + "src": "4727:48:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4704:61:144", + "src": "4714:61:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 55079, + "id": 55182, "nodeType": "ExpressionStatement", - "src": "4704:61:144" + "src": "4714:61:146" } ] } @@ -4519,43 +4661,43 @@ "kind": "function", "modifiers": [], "name": "convertAmount", - "nameLocation": "4392:13:144", + "nameLocation": "4402:13:146", "parameters": { - "id": 55049, + "id": 55152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55043, + "id": 55146, "mutability": "mutable", "name": "srcToken", - "nameLocation": "4421:8:144", + "nameLocation": "4431:8:146", "nodeType": "VariableDeclaration", - "scope": 55096, - "src": "4406:23:144", + "scope": 55199, + "src": "4416:23:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" }, "typeName": { - "id": 55042, + "id": 55145, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55041, + "id": 55144, "name": "IERC20Metadata", "nameLocations": [ - "4406:14:144" + "4416:14:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 695, - "src": "4406:14:144" + "referencedDeclaration": 45845, + "src": "4416:14:146" }, - "referencedDeclaration": 695, - "src": "4406:14:144", + "referencedDeclaration": 45845, + "src": "4416:14:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, @@ -4563,13 +4705,13 @@ }, { "constant": false, - "id": 55045, + "id": 55148, "mutability": "mutable", "name": "srcAmount", - "nameLocation": "4439:9:144", + "nameLocation": "4449:9:146", "nodeType": "VariableDeclaration", - "scope": 55096, - "src": "4431:17:144", + "scope": 55199, + "src": "4441:17:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4577,10 +4719,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55044, + "id": 55147, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4431:7:144", + "src": "4441:7:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4590,57 +4732,57 @@ }, { "constant": false, - "id": 55048, + "id": 55151, "mutability": "mutable", "name": "destToken", - "nameLocation": "4465:9:144", + "nameLocation": "4475:9:146", "nodeType": "VariableDeclaration", - "scope": 55096, - "src": "4450:24:144", + "scope": 55199, + "src": "4460:24:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" }, "typeName": { - "id": 55047, + "id": 55150, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55046, + "id": 55149, "name": "IERC20Metadata", "nameLocations": [ - "4450:14:144" + "4460:14:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 695, - "src": "4450:14:144" + "referencedDeclaration": 45845, + "src": "4460:14:146" }, - "referencedDeclaration": 695, - "src": "4450:14:144", + "referencedDeclaration": 45845, + "src": "4460:14:146", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20Metadata_$695", + "typeIdentifier": "t_contract$_IERC20Metadata_$45845", "typeString": "contract IERC20Metadata" } }, "visibility": "internal" } ], - "src": "4405:70:144" + "src": "4415:70:146" }, "returnParameters": { - "id": 55052, + "id": 55155, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55051, + "id": 55154, "mutability": "mutable", "name": "destAmount", - "nameLocation": "4531:10:144", + "nameLocation": "4541:10:146", "nodeType": "VariableDeclaration", - "scope": 55096, - "src": "4523:18:144", + "scope": 55199, + "src": "4533:18:146", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4648,10 +4790,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55050, + "id": 55153, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4523:7:144", + "src": "4533:7:146", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4660,9 +4802,9 @@ "visibility": "internal" } ], - "src": "4522:20:144" + "src": "4532:20:146" }, - "scope": 55097, + "scope": 55200, "stateMutability": "view", "virtual": false, "visibility": "internal" @@ -4672,46 +4814,50 @@ "baseContracts": [ { "baseName": { - "id": 54825, + "id": 54928, "name": "BaseConditionalOrder", "nameLocations": [ - "591:20:144" + "601:20:146" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53501, - "src": "591:20:144" + "referencedDeclaration": 53578, + "src": "601:20:146" }, - "id": 54826, + "id": 54929, "nodeType": "InheritanceSpecifier", - "src": "591:20:144" + "src": "601:20:146" } ], "canonicalName": "PerpetualStableSwap", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 54824, + "id": 54927, "nodeType": "StructuredDocumentation", - "src": "397:161:144", + "src": "407:161:146", "text": " @title A smart contract that is always willing to trade between tokenA and tokenB 1:1,\n taking decimals into account (and adding specifiable spread)" }, "fullyImplemented": true, "linearizedBaseContracts": [ - 55097, - 53501, - 54468, + 55200, + 53578, + 54571, 52197, - 54437 + 54540 ], "name": "PerpetualStableSwap", - "nameLocation": "568:19:144", - "scope": 55098, + "nameLocation": "578:19:146", + "scope": 55201, "usedErrors": [ - 54407 + 54484, + 54488, + 54494, + 54500, + 54504 ] } ], "license": "MIT" }, - "id": 144 + "id": 146 } \ No newline at end of file diff --git a/out/ReceiverLock.sol/ReceiverLock.json b/out/ReceiverLock.sol/ReceiverLock.json index b826f92..8b46904 100644 --- a/out/ReceiverLock.sol/ReceiverLock.json +++ b/out/ReceiverLock.sol/ReceiverLock.json @@ -134,20 +134,20 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b506102b9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806301ffc9a71461003b578063f9ae35a214610062575b600080fd5b61004e610049366004610142565b610075565b604051901515815260200160405180910390f35b61004e61007036600461018b565b61010e565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff9ae35a200000000000000000000000000000000000000000000000000000000148061010857507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080610121606088016040890161024d565b73ffffffffffffffffffffffffffffffffffffffff16149695505050505050565b60006020828403121561015457600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461018457600080fd5b9392505050565b60008060008060008587036101e08112156101a557600080fd5b610180808212156101b557600080fd5b8796508601359450506101a085013567ffffffffffffffff808211156101da57600080fd5b908701906060828a0312156101ee57600080fd5b9093506101c0870135908082111561020557600080fd5b818801915088601f83011261021957600080fd5b81358181111561022857600080fd5b89602082850101111561023a57600080fd5b9699959850939650602001949392505050565b60006020828403121561025f57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461018457600080fdfea2646970667358221220556281c807c29f32eae228b27ed16df37132b56c50ac70fa410d9e7bedc93d0664736f6c63430008130033", - "sourceMap": "226:418:137:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b506102b9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806301ffc9a71461003b578063f9ae35a214610062575b600080fd5b61004e610049366004610142565b610075565b604051901515815260200160405180910390f35b61004e61007036600461018b565b61010e565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff9ae35a200000000000000000000000000000000000000000000000000000000148061010857507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080610121606088016040890161024d565b73ffffffffffffffffffffffffffffffffffffffff16149695505050505050565b60006020828403121561015457600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461018457600080fd5b9392505050565b60008060008060008587036101e08112156101a557600080fd5b610180808212156101b557600080fd5b8796508601359450506101a085013567ffffffffffffffff808211156101da57600080fd5b908701906060828a0312156101ee57600080fd5b9093506101c0870135908082111561020557600080fd5b818801915088601f83011261021957600080fd5b81358181111561022857600080fd5b89602082850101111561023a57600080fd5b9699959850939650602001949392505050565b60006020828403121561025f57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461018457600080fdfea2646970667358221220a5072e667a5cd9c1702af61a333b23e76a7116dc01fabe5f2099ebe4237fecdc64736f6c63430008130033", + "sourceMap": "226:418:139:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806301ffc9a71461003b578063f9ae35a214610062575b600080fd5b61004e610049366004610142565b610075565b604051901515815260200160405180910390f35b61004e61007036600461018b565b61010e565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff9ae35a200000000000000000000000000000000000000000000000000000000148061010857507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080610121606088016040890161024d565b73ffffffffffffffffffffffffffffffffffffffff16149695505050505050565b60006020828403121561015457600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461018457600080fd5b9392505050565b60008060008060008587036101e08112156101a557600080fd5b610180808212156101b557600080fd5b8796508601359450506101a085013567ffffffffffffffff808211156101da57600080fd5b908701906060828a0312156101ee57600080fd5b9093506101c0870135908082111561020557600080fd5b818801915088601f83011261021957600080fd5b81358181111561022857600080fd5b89602082850101111561023a57600080fd5b9699959850939650602001949392505050565b60006020828403121561025f57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461018457600080fdfea2646970667358221220556281c807c29f32eae228b27ed16df37132b56c50ac70fa410d9e7bedc93d0664736f6c63430008130033", - "sourceMap": "226:418:137:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:204:136;;;;;;:::i;:::-;;:::i;:::-;;;516:14:168;;509:22;491:41;;479:2;464:18;317:204:136;;;;;;;391:251:137;;;;;;:::i;:::-;;:::i;317:204:136:-;404:4;427:43;;;442:28;427:43;;:87;;-1:-1:-1;474:40:136;;;489:25;474:40;427:87;420:94;317:204;-1:-1:-1;;317:204:136:o;391:251:137:-;584:4;;607:14;;;;;;;;:::i;:::-;:28;;;;391:251;-1:-1:-1;;;;;;391:251:137:o;14:332:168:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:168:o;543:1108::-;708:6;716;724;732;740;784:9;775:7;771:23;814:3;810:2;806:12;803:32;;;831:1;828;821:12;803:32;854:3;877:2;873;869:11;866:31;;;893:1;890;883:12;866:31;916:9;;-1:-1:-1;957:18:168;;944:32;;-1:-1:-1;;1027:3:168;1012:19;;999:33;1051:18;1081:14;;;1078:34;;;1108:1;1105;1098:12;1078:34;1131:22;;;;1187:2;1169:16;;;1165:25;1162:45;;;1203:1;1200;1193:12;1162:45;1226:2;;-1:-1:-1;1281:3:168;1266:19;;1253:33;;1298:16;;;1295:36;;;1327:1;1324;1317:12;1295:36;1365:8;1354:9;1350:24;1340:34;;1412:7;1405:4;1401:2;1397:13;1393:27;1383:55;;1434:1;1431;1424:12;1383:55;1474:2;1461:16;1500:2;1492:6;1489:14;1486:34;;;1516:1;1513;1506:12;1486:34;1563:7;1556:4;1547:6;1543:2;1539:15;1535:26;1532:39;1529:59;;;1584:1;1581;1574:12;1529:59;543:1108;;;;-1:-1:-1;543:1108:168;;-1:-1:-1;1615:4:168;1607:13;;1639:6;543:1108;-1:-1:-1;;;543:1108:168:o;1656:309::-;1715:6;1768:2;1756:9;1747:7;1743:23;1739:32;1736:52;;;1784:1;1781;1774:12;1736:52;1823:9;1810:23;1873:42;1866:5;1862:54;1855:5;1852:65;1842:93;;1931:1;1928;1921:12", + "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806301ffc9a71461003b578063f9ae35a214610062575b600080fd5b61004e610049366004610142565b610075565b604051901515815260200160405180910390f35b61004e61007036600461018b565b61010e565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff9ae35a200000000000000000000000000000000000000000000000000000000148061010857507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080610121606088016040890161024d565b73ffffffffffffffffffffffffffffffffffffffff16149695505050505050565b60006020828403121561015457600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461018457600080fd5b9392505050565b60008060008060008587036101e08112156101a557600080fd5b610180808212156101b557600080fd5b8796508601359450506101a085013567ffffffffffffffff808211156101da57600080fd5b908701906060828a0312156101ee57600080fd5b9093506101c0870135908082111561020557600080fd5b818801915088601f83011261021957600080fd5b81358181111561022857600080fd5b89602082850101111561023a57600080fd5b9699959850939650602001949392505050565b60006020828403121561025f57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461018457600080fdfea2646970667358221220a5072e667a5cd9c1702af61a333b23e76a7116dc01fabe5f2099ebe4237fecdc64736f6c63430008130033", + "sourceMap": "226:418:139:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:204:138;;;;;;:::i;:::-;;:::i;:::-;;;516:14:170;;509:22;491:41;;479:2;464:18;317:204:138;;;;;;;391:251:139;;;;;;:::i;:::-;;:::i;317:204:138:-;404:4;427:43;;;442:28;427:43;;:87;;-1:-1:-1;474:40:138;;;489:25;474:40;427:87;420:94;317:204;-1:-1:-1;;317:204:138:o;391:251:139:-;584:4;;607:14;;;;;;;;:::i;:::-;:28;;;;391:251;-1:-1:-1;;;;;;391:251:139:o;14:332:170:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:170:o;543:1108::-;708:6;716;724;732;740;784:9;775:7;771:23;814:3;810:2;806:12;803:32;;;831:1;828;821:12;803:32;854:3;877:2;873;869:11;866:31;;;893:1;890;883:12;866:31;916:9;;-1:-1:-1;957:18:170;;944:32;;-1:-1:-1;;1027:3:170;1012:19;;999:33;1051:18;1081:14;;;1078:34;;;1108:1;1105;1098:12;1078:34;1131:22;;;;1187:2;1169:16;;;1165:25;1162:45;;;1203:1;1200;1193:12;1162:45;1226:2;;-1:-1:-1;1281:3:170;1266:19;;1253:33;;1298:16;;;1295:36;;;1327:1;1324;1317:12;1295:36;1365:8;1354:9;1350:24;1340:34;;1412:7;1405:4;1401:2;1397:13;1393:27;1383:55;;1434:1;1431;1424:12;1383:55;1474:2;1461:16;1500:2;1492:6;1489:14;1486:34;;;1516:1;1513;1506:12;1486:34;1563:7;1556:4;1547:6;1543:2;1539:15;1535:26;1532:39;1529:59;;;1584:1;1581;1574:12;1529:59;543:1108;;;;-1:-1:-1;543:1108:170;;-1:-1:-1;1615:4:170;1607:13;;1639:6;543:1108;-1:-1:-1;;;543:1108:170:o;1656:309::-;1715:6;1768:2;1756:9;1747:7;1743:23;1739:32;1736:52;;;1784:1;1781;1774:12;1736:52;1823:9;1810:23;1873:42;1866:5;1862:54;1855:5;1852:65;1842:93;;1931:1;1928;1921:12", "linkReferences": {} }, "methodIdentifiers": { "supportsInterface(bytes4)": "01ffc9a7", "verify((address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32),bytes32,(address,bytes32,bytes),bytes)": "f9ae35a2" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"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\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"verify((address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32),bytes32,(address,bytes32,bytes),bytes)\":{\"params\":{\"order\":\"The order being verified\"}}},\"title\":\"A Swap Guard that only allows orders with a receiver of 0x0 (ie. self)\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify((address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32),bytes32,(address,bytes32,bytes),bytes)\":{\"notice\":\"Only allow orders with a receiver of 0x0 (ie. self)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/guards/ReceiverLock.sol\":\"ReceiverLock\"},\"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/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/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/guards/BaseSwapGuard.sol\":{\"keccak256\":\"0xd7b2a2629504bf5d331c4fa21f5b5e11584c11bb1e51ba687b37eed459f2bacb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5555cfec57b3b95f15bb7d5b364baf0998f97cefd9f3744d804d5c7cbd6d6ccc\",\"dweb:/ipfs/QmWojLCbP41KcaHaNWv667qKgFBW9K797tzUskfpBdiA6Y\"]},\"src/guards/ReceiverLock.sol\":{\"keccak256\":\"0x6dd5033473ca3264bbef0d703d29f6c10488d36b69fe1d924f071e412369f8c3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://954572256b96d72a47ba02657b426474d12541ad0942618f28dc732bfc8737f9\",\"dweb:/ipfs/Qmdi8pxjLbxDWufBs4JS2PpkoHfDje447PNfnBQZy52i2g\"]},\"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\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"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\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"verify((address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32),bytes32,(address,bytes32,bytes),bytes)\":{\"params\":{\"order\":\"The order being verified\"}}},\"title\":\"A Swap Guard that only allows orders with a receiver of 0x0 (ie. self)\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify((address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32),bytes32,(address,bytes32,bytes),bytes)\":{\"notice\":\"Only allow orders with a receiver of 0x0 (ie. self)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/guards/ReceiverLock.sol\":\"ReceiverLock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/safe/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/guards/BaseSwapGuard.sol\":{\"keccak256\":\"0xd7b2a2629504bf5d331c4fa21f5b5e11584c11bb1e51ba687b37eed459f2bacb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5555cfec57b3b95f15bb7d5b364baf0998f97cefd9f3744d804d5c7cbd6d6ccc\",\"dweb:/ipfs/QmWojLCbP41KcaHaNWv667qKgFBW9K797tzUskfpBdiA6Y\"]},\"src/guards/ReceiverLock.sol\":{\"keccak256\":\"0x6dd5033473ca3264bbef0d703d29f6c10488d36b69fe1d924f071e412369f8c3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://954572256b96d72a47ba02657b426474d12541ad0942618f28dc732bfc8737f9\",\"dweb:/ipfs/Qmdi8pxjLbxDWufBs4JS2PpkoHfDje447PNfnBQZy52i2g\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]},\"src/interfaces/ISwapGuard.sol\":{\"keccak256\":\"0x60abdef709d22cb95e4b1d4680cb70d5286cfb5aa71ec65868cc44164ef8790f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7593245e22ffc533a073891affdbb003fa56eaa5ef7f0202a673b52968ad7ed5\",\"dweb:/ipfs/QmRhAvNzbHp8qfrw7eHZP6EDWw42tXMXSV3KuyhyxFy3Nx\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -314,20 +314,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -342,22 +341,6 @@ "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/libraries/GPv2Interaction.sol": { "keccak256": "0xb950f05f76ac8044b82314ea5510941fdbc0f0e76e7f159023d435652b429528", "urls": [ @@ -374,6 +357,22 @@ ], "license": "LGPL-3.0-or-later" }, + "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { + "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", + "urls": [ + "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", + "dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", + "urls": [ + "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", + "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" + ], + "license": "MIT" + }, "lib/safe/contracts/interfaces/IERC165.sol": { "keccak256": "0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb", "urls": [ @@ -399,10 +398,10 @@ "license": "GPL-3.0" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" }, @@ -419,34 +418,34 @@ }, "ast": { "absolutePath": "src/guards/ReceiverLock.sol", - "id": 54348, + "id": 54425, "exportedSymbols": { "BaseSwapGuard": [ - 54314 + 54391 ], "GPv2Order": [ - 17246 + 14459 ], "IConditionalOrder": [ - 54437 + 54540 ], "IERC165": [ 52197 ], "ISwapGuard": [ - 54496 + 54599 ], "ReceiverLock": [ - 54347 + 54424 ] }, "nodeType": "SourceUnit", - "src": "36:609:137", + "src": "36:609:139", "nodes": [ { - "id": 54316, + "id": 54393, "nodeType": "PragmaDirective", - "src": "36:31:137", + "src": "36:31:139", "nodes": [], "literals": [ "solidity", @@ -459,32 +458,32 @@ ] }, { - "id": 54317, + "id": 54394, "nodeType": "ImportDirective", - "src": "69:29:137", + "src": "69:29:139", "nodes": [], "absolutePath": "src/guards/BaseSwapGuard.sol", "file": "./BaseSwapGuard.sol", "nameLocation": "-1:-1:-1", - "scope": 54348, - "sourceUnit": 54315, + "scope": 54425, + "sourceUnit": 54392, "symbolAliases": [], "unitAlias": "" }, { - "id": 54347, + "id": 54424, "nodeType": "ContractDefinition", - "src": "226:418:137", + "src": "226:418:139", "nodes": [ { - "id": 54346, + "id": 54423, "nodeType": "FunctionDefinition", - "src": "391:251:137", + "src": "391:251:139", "nodes": [], "body": { - "id": 54345, + "id": 54422, "nodeType": "Block", - "src": "590:52:137", + "src": "590:52:139", "nodes": [], "statements": [ { @@ -493,34 +492,34 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 54343, + "id": 54420, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 54337, + "id": 54414, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54324, - "src": "607:5:137", + "referencedDeclaration": 54401, + "src": "607:5:139", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_calldata_ptr", + "typeIdentifier": "t_struct$_Data_$14334_calldata_ptr", "typeString": "struct GPv2Order.Data calldata" } }, - "id": 54338, + "id": 54415, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "613:8:137", + "memberLocation": "613:8:139", "memberName": "receiver", "nodeType": "MemberAccess", - "referencedDeclaration": 17102, - "src": "607:14:137", + "referencedDeclaration": 14315, + "src": "607:14:139", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -532,14 +531,14 @@ "arguments": [ { "hexValue": "30", - "id": 54341, + "id": 54418, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "633:1:137", + "src": "633:1:139", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -554,26 +553,26 @@ "typeString": "int_const 0" } ], - "id": 54340, + "id": 54417, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "625:7:137", + "src": "625:7:139", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 54339, + "id": 54416, "name": "address", "nodeType": "ElementaryTypeName", - "src": "625:7:137", + "src": "625:7:139", "typeDescriptions": {} } }, - "id": 54342, + "id": 54419, "isConstant": false, "isLValue": false, "isPure": true, @@ -582,33 +581,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "625:10:137", + "src": "625:10:139", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "607:28:137", + "src": "607:28:139", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 54336, - "id": 54344, + "functionReturnParameters": 54413, + "id": 54421, "nodeType": "Return", - "src": "600:35:137" + "src": "600:35:139" } ] }, "baseFunctions": [ - 54495 + 54598 ], "documentation": { - "id": 54321, + "id": 54398, "nodeType": "StructuredDocumentation", - "src": "271:115:137", + "src": "271:115:139", "text": " Only allow orders with a receiver of 0x0 (ie. self)\n @param order The order being verified" }, "functionSelector": "f9ae35a2", @@ -616,50 +615,50 @@ "kind": "function", "modifiers": [], "name": "verify", - "nameLocation": "400:6:137", + "nameLocation": "400:6:139", "overrides": { - "id": 54333, + "id": 54410, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "566:8:137" + "src": "566:8:139" }, "parameters": { - "id": 54332, + "id": 54409, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54324, + "id": 54401, "mutability": "mutable", "name": "order", - "nameLocation": "440:5:137", + "nameLocation": "440:5:139", "nodeType": "VariableDeclaration", - "scope": 54346, - "src": "416:29:137", + "scope": 54423, + "src": "416:29:139", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_calldata_ptr", + "typeIdentifier": "t_struct$_Data_$14334_calldata_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 54323, + "id": 54400, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54322, + "id": 54399, "name": "GPv2Order.Data", "nameLocations": [ - "416:9:137", - "426:4:137" + "416:9:139", + "426:4:139" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "416:14:137" + "referencedDeclaration": 14334, + "src": "416:14:139" }, - "referencedDeclaration": 17121, - "src": "416:14:137", + "referencedDeclaration": 14334, + "src": "416:14:139", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, @@ -667,13 +666,13 @@ }, { "constant": false, - "id": 54326, + "id": 54403, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54346, - "src": "455:7:137", + "scope": 54423, + "src": "455:7:139", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -681,10 +680,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 54325, + "id": 54402, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "455:7:137", + "src": "455:7:139", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -694,37 +693,37 @@ }, { "constant": false, - "id": 54329, + "id": 54406, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54346, - "src": "472:49:137", + "scope": 54423, + "src": "472:49:139", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_calldata_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_calldata_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" }, "typeName": { - "id": 54328, + "id": 54405, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 54327, + "id": 54404, "name": "IConditionalOrder.ConditionalOrderParams", "nameLocations": [ - "472:17:137", - "490:22:137" + "472:17:139", + "490:22:139" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54415, - "src": "472:40:137" + "referencedDeclaration": 54512, + "src": "472:40:139" }, - "referencedDeclaration": 54415, - "src": "472:40:137", + "referencedDeclaration": 54512, + "src": "472:40:139", "typeDescriptions": { - "typeIdentifier": "t_struct$_ConditionalOrderParams_$54415_storage_ptr", + "typeIdentifier": "t_struct$_ConditionalOrderParams_$54512_storage_ptr", "typeString": "struct IConditionalOrder.ConditionalOrderParams" } }, @@ -732,13 +731,13 @@ }, { "constant": false, - "id": 54331, + "id": 54408, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54346, - "src": "531:14:137", + "scope": 54423, + "src": "531:14:139", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -746,10 +745,10 @@ "typeString": "bytes" }, "typeName": { - "id": 54330, + "id": 54407, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "531:5:137", + "src": "531:5:139", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -758,21 +757,21 @@ "visibility": "internal" } ], - "src": "406:145:137" + "src": "406:145:139" }, "returnParameters": { - "id": 54336, + "id": 54413, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54335, + "id": 54412, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 54346, - "src": "584:4:137", + "scope": 54423, + "src": "584:4:139", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -780,10 +779,10 @@ "typeString": "bool" }, "typeName": { - "id": 54334, + "id": 54411, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "584:4:137", + "src": "584:4:139", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -792,9 +791,9 @@ "visibility": "internal" } ], - "src": "583:6:137" + "src": "583:6:139" }, - "scope": 54347, + "scope": 54424, "stateMutability": "pure", "virtual": false, "visibility": "external" @@ -804,43 +803,43 @@ "baseContracts": [ { "baseName": { - "id": 54319, + "id": 54396, "name": "BaseSwapGuard", "nameLocations": [ - "251:13:137" + "251:13:139" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54314, - "src": "251:13:137" + "referencedDeclaration": 54391, + "src": "251:13:139" }, - "id": 54320, + "id": 54397, "nodeType": "InheritanceSpecifier", - "src": "251:13:137" + "src": "251:13:139" } ], "canonicalName": "ReceiverLock", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 54318, + "id": 54395, "nodeType": "StructuredDocumentation", - "src": "100:125:137", + "src": "100:125:139", "text": " @title A Swap Guard that only allows orders with a receiver of 0x0 (ie. self)\n @author mfw78 " }, "fullyImplemented": true, "linearizedBaseContracts": [ - 54347, - 54314, - 54496, + 54424, + 54391, + 54599, 52197 ], "name": "ReceiverLock", - "nameLocation": "235:12:137", - "scope": 54348, + "nameLocation": "235:12:139", + "scope": 54425, "usedErrors": [] } ], "license": "GPL-3.0" }, - "id": 137 + "id": 139 } \ No newline at end of file diff --git a/out/StopLoss.sol/StopLoss.json b/out/StopLoss.sol/StopLoss.json index 4932f12..ada4180 100644 --- a/out/StopLoss.sol/StopLoss.json +++ b/out/StopLoss.sol/StopLoss.json @@ -11,6 +11,60 @@ "name": "OrderNotValid", "type": "error" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollNever", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtBlock", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtEpoch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryNextBlock", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -167,6 +221,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "validateData", + "outputs": [], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -279,21 +346,22 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b506110cc806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a71461004657806314a2a7841461006e578063b8296fc414610083575b600080fd5b610059610054366004610837565b6100a3565b60405190151581526020015b60405180910390f35b61008161007c3660046108f7565b61013c565b005b6100966100913660046109e5565b610259565b6040516100659190610a84565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061013657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061014d8b8b8989898989610259565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461024c57604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b72565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102c686860187610c53565b905060008082610120015173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f9190610d4a565b5093505092505060008084610140015173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103bd9190610d4a565b509350509250506000841380156103d45750600082135b61043d57604080518082018252601481527f6f7261636c6520696e76616c6964207072696365000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b72565b61018085015161044d9042610dc9565b831015801561046b57506101808501516104679042610dc9565b8110155b6104d457604080518082018252601281527f6f7261636c65207374616c652070726963650000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b72565b6105538486610120015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610528573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054c9190610ddc565b60126107a2565b93506105a98286610140015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610528573d6000803e3d6000fd5b610160860151909250826105c5670de0b6b3a764000087610dff565b6105cf9190610e7a565b131561063a57604080518082018252601281527f737472696b65206e6f7420726561636865640000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b72565b50505050604051806101800160405280826000015173ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff16815260200182604001518152602001826060015181526020016106cc836101000151610815565b63ffffffff16815260200182608001518152602001600081526020018260c00151610717577f6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc610739565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467755b81526020018260e00151151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9815250915050979650505050505050565b60008160ff168360ff1610156107db576107bc8383610ee2565b6107ca9060ff16600a61101b565b6107d49085610dff565b905061080e565b8160ff168360ff16111561080b576107f38284610ee2565b6108019060ff16600a61101b565b6107d49085610e7a565b50825b9392505050565b600081806108238142611027565b61082d919061104a565b6101369190611072565b60006020828403121561084957600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461080e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461089b57600080fd5b50565b80356108a981610879565b919050565b60008083601f8401126108c057600080fd5b50813567ffffffffffffffff8111156108d857600080fd5b6020830191508360208285010111156108f057600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561091757600080fd5b6109218b35610879565b8a35995060208b013561093381610879565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561096557600080fd5b6109718e838f016108ae565b909750955060c08d013591508082111561098a57600080fd5b506109978d828e016108ae565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff200112156109d057600080fd5b60e08b0190509295989b9194979a5092959850565b600080600080600080600060a0888a031215610a0057600080fd5b8735610a0b81610879565b96506020880135610a1b81610879565b955060408801359450606088013567ffffffffffffffff80821115610a3f57600080fd5b610a4b8b838c016108ae565b909650945060808a0135915080821115610a6457600080fd5b50610a718a828b016108ae565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610aca602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610af2604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610b1e60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610b538285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b81811015610b9f57858101830151858201604001528201610b83565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6040516101a0810167ffffffffffffffff81118282101715610c29577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803580151581146108a957600080fd5b803563ffffffff811681146108a957600080fd5b60006101a08284031215610c6657600080fd5b610c6e610bde565b610c778361089e565b8152610c856020840161089e565b6020820152604083013560408201526060830135606082015260808301356080820152610cb460a0840161089e565b60a0820152610cc560c08401610c2f565b60c0820152610cd660e08401610c2f565b60e0820152610100610ce9818501610c3f565b90820152610120610cfb84820161089e565b90820152610140610d0d84820161089e565b908201526101608381013590820152610180928301359281019290925250919050565b805169ffffffffffffffffffff811681146108a957600080fd5b600080600080600060a08688031215610d6257600080fd5b610d6b86610d30565b9450602086015193506040860151925060608601519150610d8e60808701610d30565b90509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561013657610136610d9a565b600060208284031215610dee57600080fd5b815160ff8116811461080e57600080fd5b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615610e3757610e37610d9a565b818105831482151761013657610136610d9a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610e8957610e89610e4b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615610edd57610edd610d9a565b500590565b60ff828116828216039081111561013657610136610d9a565b600181815b80851115610f5457817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610f3a57610f3a610d9a565b80851615610f4757918102915b93841c9390800290610f00565b509250929050565b600082610f6b57506001610136565b81610f7857506000610136565b8160018114610f8e5760028114610f9857610fb4565b6001915050610136565b60ff841115610fa957610fa9610d9a565b50506001821b610136565b5060208310610133831016604e8410600b8410161715610fd7575081810a610136565b610fe18383610efb565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561101357611013610d9a565b029392505050565b600061080e8383610f5c565b600063ffffffff8084168061103e5761103e610e4b565b92169190910492915050565b63ffffffff81811683821602808216919082811461106a5761106a610d9a565b505092915050565b63ffffffff81811683821601908082111561108f5761108f610d9a565b509291505056fea26469706673582212205d2bdddb10953fe7aca028e14fecbec781d576ab90bd4b5a3e6ee9c75a58732364736f6c63430008130033", - "sourceMap": "1119:4691:145:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b506111bc806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806314a2a78414610079578063a6ffa36c1461008e578063b8296fc41461009f575b600080fd5b61006461005f366004610853565b6100bf565b60405190151581526020015b60405180910390f35b61008c610087366004610910565b610158565b005b61008c61009c366004610a57565b50565b6100b26100ad366004610b26565b610275565b6040516100709190610bc5565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061015257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101698b8b8989898989610275565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461026857604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cb3565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102e286860187610d43565b905060008082610120015173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035b9190610e3a565b5093505092505060008084610140015173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d99190610e3a565b509350509250506000841380156103f05750600082135b61045957604080518082018252601481527f6f7261636c6520696e76616c6964207072696365000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cb3565b6101808501516104699042610eb9565b831015801561048757506101808501516104839042610eb9565b8110155b6104f057604080518082018252601281527f6f7261636c65207374616c652070726963650000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cb3565b61056f8486610120015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610544573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105689190610ecc565b60126107be565b93506105c58286610140015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610544573d6000803e3d6000fd5b610160860151909250826105e1670de0b6b3a764000087610eef565b6105eb9190610f6a565b131561065657604080518082018252601281527f737472696b65206e6f7420726561636865640000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cb3565b50505050604051806101800160405280826000015173ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff16815260200182604001518152602001826060015181526020016106e8836101000151610831565b63ffffffff16815260200182608001518152602001600081526020018260c00151610733577f6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc610755565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467755b81526020018260e00151151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9815250915050979650505050505050565b60008160ff168360ff1610156107f7576107d88383610fd2565b6107e69060ff16600a61110b565b6107f09085610eef565b905061082a565b8160ff168360ff1611156108275761080f8284610fd2565b61081d9060ff16600a61110b565b6107f09085610f6a565b50825b9392505050565b6000818061083f8142611117565b610849919061113a565b6101529190611162565b60006020828403121561086557600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461082a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461009c57600080fd5b80356108c281610895565b919050565b60008083601f8401126108d957600080fd5b50813567ffffffffffffffff8111156108f157600080fd5b60208301915083602082850101111561090957600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561093057600080fd5b61093a8b35610895565b8a35995060208b013561094c81610895565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561097e57600080fd5b61098a8e838f016108c7565b909750955060c08d01359150808211156109a357600080fd5b506109b08d828e016108c7565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff200112156109e957600080fd5b60e08b0190509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516101a0810167ffffffffffffffff81118282101715610a5157610a516109fe565b60405290565b600060208284031215610a6957600080fd5b813567ffffffffffffffff80821115610a8157600080fd5b818401915084601f830112610a9557600080fd5b813581811115610aa757610aa76109fe565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610aed57610aed6109fe565b81604052828152876020848701011115610b0657600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080600080600060a0888a031215610b4157600080fd5b8735610b4c81610895565b96506020880135610b5c81610895565b955060408801359450606088013567ffffffffffffffff80821115610b8057600080fd5b610b8c8b838c016108c7565b909650945060808a0135915080821115610ba557600080fd5b50610bb28a828b016108c7565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610c0b602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610c33604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610c5f60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610c948285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b81811015610ce057858101830151858201604001528201610cc4565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803580151581146108c257600080fd5b803563ffffffff811681146108c257600080fd5b60006101a08284031215610d5657600080fd5b610d5e610a2d565b610d67836108b7565b8152610d75602084016108b7565b6020820152604083013560408201526060830135606082015260808301356080820152610da460a084016108b7565b60a0820152610db560c08401610d1f565b60c0820152610dc660e08401610d1f565b60e0820152610100610dd9818501610d2f565b90820152610120610deb8482016108b7565b90820152610140610dfd8482016108b7565b908201526101608381013590820152610180928301359281019290925250919050565b805169ffffffffffffffffffff811681146108c257600080fd5b600080600080600060a08688031215610e5257600080fd5b610e5b86610e20565b9450602086015193506040860151925060608601519150610e7e60808701610e20565b90509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561015257610152610e8a565b600060208284031215610ede57600080fd5b815160ff8116811461082a57600080fd5b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615610f2757610f27610e8a565b818105831482151761015257610152610e8a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610f7957610f79610f3b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615610fcd57610fcd610e8a565b500590565b60ff828116828216039081111561015257610152610e8a565b600181815b8085111561104457817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561102a5761102a610e8a565b8085161561103757918102915b93841c9390800290610ff0565b509250929050565b60008261105b57506001610152565b8161106857506000610152565b816001811461107e5760028114611088576110a4565b6001915050610152565b60ff84111561109957611099610e8a565b50506001821b610152565b5060208310610133831016604e8410600b84101617156110c7575081810a610152565b6110d18383610feb565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561110357611103610e8a565b029392505050565b600061082a838361104c565b600063ffffffff8084168061112e5761112e610f3b565b92169190910492915050565b63ffffffff81811683821602808216919082811461115a5761115a610e8a565b505092915050565b63ffffffff81811683821601908082111561117f5761117f610e8a565b509291505056fea264697066735822122027e2153fa5d72c5b3b2c0e7839de888d34e8bce919614287408927fadd22da6e64736f6c63430008130033", + "sourceMap": "1129:4691:147:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a71461004657806314a2a7841461006e578063b8296fc414610083575b600080fd5b610059610054366004610837565b6100a3565b60405190151581526020015b60405180910390f35b61008161007c3660046108f7565b61013c565b005b6100966100913660046109e5565b610259565b6040516100659190610a84565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061013657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061014d8b8b8989898989610259565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461024c57604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b72565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102c686860187610c53565b905060008082610120015173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f9190610d4a565b5093505092505060008084610140015173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103bd9190610d4a565b509350509250506000841380156103d45750600082135b61043d57604080518082018252601481527f6f7261636c6520696e76616c6964207072696365000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b72565b61018085015161044d9042610dc9565b831015801561046b57506101808501516104679042610dc9565b8110155b6104d457604080518082018252601281527f6f7261636c65207374616c652070726963650000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b72565b6105538486610120015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610528573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054c9190610ddc565b60126107a2565b93506105a98286610140015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610528573d6000803e3d6000fd5b610160860151909250826105c5670de0b6b3a764000087610dff565b6105cf9190610e7a565b131561063a57604080518082018252601281527f737472696b65206e6f7420726561636865640000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610b72565b50505050604051806101800160405280826000015173ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff16815260200182604001518152602001826060015181526020016106cc836101000151610815565b63ffffffff16815260200182608001518152602001600081526020018260c00151610717577f6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc610739565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467755b81526020018260e00151151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9815250915050979650505050505050565b60008160ff168360ff1610156107db576107bc8383610ee2565b6107ca9060ff16600a61101b565b6107d49085610dff565b905061080e565b8160ff168360ff16111561080b576107f38284610ee2565b6108019060ff16600a61101b565b6107d49085610e7a565b50825b9392505050565b600081806108238142611027565b61082d919061104a565b6101369190611072565b60006020828403121561084957600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461080e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461089b57600080fd5b50565b80356108a981610879565b919050565b60008083601f8401126108c057600080fd5b50813567ffffffffffffffff8111156108d857600080fd5b6020830191508360208285010111156108f057600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561091757600080fd5b6109218b35610879565b8a35995060208b013561093381610879565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561096557600080fd5b6109718e838f016108ae565b909750955060c08d013591508082111561098a57600080fd5b506109978d828e016108ae565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff200112156109d057600080fd5b60e08b0190509295989b9194979a5092959850565b600080600080600080600060a0888a031215610a0057600080fd5b8735610a0b81610879565b96506020880135610a1b81610879565b955060408801359450606088013567ffffffffffffffff80821115610a3f57600080fd5b610a4b8b838c016108ae565b909650945060808a0135915080821115610a6457600080fd5b50610a718a828b016108ae565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610aca602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610af2604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610b1e60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610b538285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b81811015610b9f57858101830151858201604001528201610b83565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6040516101a0810167ffffffffffffffff81118282101715610c29577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803580151581146108a957600080fd5b803563ffffffff811681146108a957600080fd5b60006101a08284031215610c6657600080fd5b610c6e610bde565b610c778361089e565b8152610c856020840161089e565b6020820152604083013560408201526060830135606082015260808301356080820152610cb460a0840161089e565b60a0820152610cc560c08401610c2f565b60c0820152610cd660e08401610c2f565b60e0820152610100610ce9818501610c3f565b90820152610120610cfb84820161089e565b90820152610140610d0d84820161089e565b908201526101608381013590820152610180928301359281019290925250919050565b805169ffffffffffffffffffff811681146108a957600080fd5b600080600080600060a08688031215610d6257600080fd5b610d6b86610d30565b9450602086015193506040860151925060608601519150610d8e60808701610d30565b90509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561013657610136610d9a565b600060208284031215610dee57600080fd5b815160ff8116811461080e57600080fd5b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615610e3757610e37610d9a565b818105831482151761013657610136610d9a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610e8957610e89610e4b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615610edd57610edd610d9a565b500590565b60ff828116828216039081111561013657610136610d9a565b600181815b80851115610f5457817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610f3a57610f3a610d9a565b80851615610f4757918102915b93841c9390800290610f00565b509250929050565b600082610f6b57506001610136565b81610f7857506000610136565b8160018114610f8e5760028114610f9857610fb4565b6001915050610136565b60ff841115610fa957610fa9610d9a565b50506001821b610136565b5060208310610133831016604e8410600b8410161715610fd7575081810a610136565b610fe18383610efb565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561101357611013610d9a565b029392505050565b600061080e8383610f5c565b600063ffffffff8084168061103e5761103e610e4b565b92169190910492915050565b63ffffffff81811683821602808216919082811461106a5761106a610d9a565b505092915050565b63ffffffff81811683821601908082111561108f5761108f610d9a565b509291505056fea26469706673582212205d2bdddb10953fe7aca028e14fecbec781d576ab90bd4b5a3e6ee9c75a58732364736f6c63430008130033", - "sourceMap": "1119:4691:145:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:220:133;;;;;;:::i;:::-;;:::i;:::-;;;612:14:168;;605:22;587:41;;575:2;560:18;1944:220:133;;;;;;;;867:634;;;;;;:::i;:::-;;:::i;:::-;;3419:2389:145;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1944:220:133:-;2031:4;2054:59;;;2069:44;2054:59;;:103;;-1:-1:-1;2117:40:133;;;2132:25;2117:40;2054:103;2047:110;1944:220;-1:-1:-1;;1944:220:133:o;867:634::-;1153:36;1192:65;1210:5;1217:6;1225:3;1230:11;;1243:13;;1192:17;:65::i;:::-;5434:14:63;;;5473:16;;5520:9;5502:28;;5578:3;5557:25;;5595:23;;6176:4;6170:11;6220:10;6194:37;;6274:1;6251:25;;6244:50;;;6337:2;6314:26;;6307:46;;;;6410:2;6381:32;;1153:104:133;;-1:-1:-1;1359:5:133;:56;1353:142;;1471:12;;;;;;;;;;;;;;;;1439:45;;;;;;;1471:12;1439:45;;;:::i;:::-;;;;;;;;1353:142;1143:358;867:634;;;;;;;;;;:::o;3419:2389:145:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3641:31:145;;;;;;:::i;:::-;3622:50;;3756:16;3775:21;3801:4;:25;;;:41;;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3753:91;;;;;;;3861:17;3881:20;3906:4;:24;;;:40;;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3858:90;;;;;;;4035:1;4023:9;:13;:31;;;;;4053:1;4040:10;:14;4023:31;4017:133;;4114:20;;;;;;;;;;;;;;;;4082:53;;;;;;;4114:20;4082:53;;;:::i;4017:133::-;4411:33;;;;4393:51;;:15;:51;:::i;:::-;4376:13;:68;;:163;;;;-1:-1:-1;4506:33:145;;;;4488:51;;:15;:51;:::i;:::-;4472:12;:67;;4376:163;4332:331;;4629:18;;;;;;;;;;;;;;;;4597:51;;;;;;;4629:18;4597:51;;;:::i;4332:331::-;4896:69;4913:9;4924:4;:25;;;:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4962:2;4896:16;:69::i;:::-;4884:81;;4992:69;5009:10;5021:4;:24;;;:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4992:69;5185:11;;;;4979:82;;-1:-1:-1;4979:82:145;5142:26;1249:8;5142:9;:26;:::i;:::-;:39;;;;:::i;:::-;:54;;5136:154;;5256:18;;;;;;;;;;;;;;;;5224:51;;;;;;;5256:18;5224:51;;;:::i;5136:154::-;3739:1561;;;;5318:483;;;;;;;;5346:4;:14;;;5318:483;;;;;;5374:4;:13;;;5318:483;;;;;;5401:4;:13;;;5318:483;;;;;;5428:4;:15;;;5318:483;;;;5457:4;:14;;;5318:483;;;;5485:47;5505:4;:26;;;5485:19;:47::i;:::-;5318:483;;;;;;5546:4;:12;;;5318:483;;;;5572:1;5318:483;;;;5620:4;:16;;;:59;;5661:18;5620:59;;;5639:19;5620:59;5318:483;;;;5693:4;:24;;;5318:483;;;;;;5731:23;5318:483;;;;5768:23;5318:483;;;5310:491;;3612:2196;3419:2389;;;;;;;;;:::o;968:409:142:-;1069:6;1106:10;1091:25;;:12;:25;;;1087:256;;;1174:25;1187:12;1174:10;:25;:::i;:::-;1160:40;;1166:34;;1160:2;:40;:::i;:::-;1139:62;;:11;:62;:::i;:::-;1132:69;;;;1087:256;1237:10;1222:25;;:12;:25;;;1218:125;;;1305:25;1320:10;1305:12;:25;:::i;:::-;1291:40;;1297:34;;1291:2;:40;:::i;:::-;1270:62;;:11;:62;:::i;1218:125::-;-1:-1:-1;1359:11:142;968:409;;;;;;:::o;463:166::-;526:14;614:8;;564:34;614:8;571:15;564:34;:::i;:::-;563:47;;;;:::i;:::-;562:60;;;;:::i;14:332:168:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;639:154;725:42;718:5;714:54;707:5;704:65;694:93;;783:1;780;773:12;694:93;639:154;:::o;798:134::-;866:20;;895:31;866:20;895:31;:::i;:::-;798:134;;;:::o;937:347::-;988:8;998:6;1052:3;1045:4;1037:6;1033:17;1029:27;1019:55;;1070:1;1067;1060:12;1019:55;-1:-1:-1;1093:20:168;;1136:18;1125:30;;1122:50;;;1168:1;1165;1158:12;1122:50;1205:4;1197:6;1193:17;1181:29;;1257:3;1250:4;1241:6;1233;1229:19;1225:30;1222:39;1219:59;;;1274:1;1271;1264:12;1219:59;937:347;;;;;:::o;1289:1401::-;1458:6;1466;1474;1482;1490;1498;1506;1514;1522;1530;1583:3;1571:9;1562:7;1558:23;1554:33;1551:53;;;1600:1;1597;1590:12;1551:53;1613:49;1651:9;1638:23;1613:49;:::i;:::-;1694:9;1681:23;1671:33;;1754:2;1743:9;1739:18;1726:32;1767:31;1792:5;1767:31;:::i;:::-;1817:5;-1:-1:-1;1869:2:168;1854:18;;1841:32;;-1:-1:-1;1920:2:168;1905:18;;1892:32;;-1:-1:-1;1971:3:168;1956:19;;1943:33;;-1:-1:-1;2027:3:168;2012:19;;1999:33;2051:18;2081:14;;;2078:34;;;2108:1;2105;2098:12;2078:34;2147:58;2197:7;2188:6;2177:9;2173:22;2147:58;:::i;:::-;2224:8;;-1:-1:-1;2121:84:168;-1:-1:-1;2312:3:168;2297:19;;2284:33;;-1:-1:-1;2329:16:168;;;2326:36;;;2358:1;2355;2348:12;2326:36;;2397:60;2449:7;2438:8;2427:9;2423:24;2397:60;:::i;:::-;2476:8;;-1:-1:-1;2371:86:168;-1:-1:-1;;2625:3:168;2531:23;;;2556:66;2527:96;2523:106;2520:126;;;2642:1;2639;2632:12;2520:126;2680:3;2669:9;2665:19;2655:29;;1289:1401;;;;;;;;;;;;;:::o;2695:1063::-;2812:6;2820;2828;2836;2844;2852;2860;2913:3;2901:9;2892:7;2888:23;2884:33;2881:53;;;2930:1;2927;2920:12;2881:53;2969:9;2956:23;2988:31;3013:5;2988:31;:::i;:::-;3038:5;-1:-1:-1;3095:2:168;3080:18;;3067:32;3108:33;3067:32;3108:33;:::i;:::-;3160:7;-1:-1:-1;3214:2:168;3199:18;;3186:32;;-1:-1:-1;3269:2:168;3254:18;;3241:32;3292:18;3322:14;;;3319:34;;;3349:1;3346;3339:12;3319:34;3388:58;3438:7;3429:6;3418:9;3414:22;3388:58;:::i;:::-;3465:8;;-1:-1:-1;3362:84:168;-1:-1:-1;3553:3:168;3538:19;;3525:33;;-1:-1:-1;3570:16:168;;;3567:36;;;3599:1;3596;3589:12;3567:36;;3638:60;3690:7;3679:8;3668:9;3664:24;3638:60;:::i;:::-;2695:1063;;;;-1:-1:-1;2695:1063:168;;-1:-1:-1;2695:1063:168;;;;3612:86;;-1:-1:-1;;;2695:1063:168:o;4002:1264::-;4222:13;;3848:42;3837:54;3825:67;;4182:3;4167:19;;4294:4;4286:6;4282:17;4276:24;4309:62;4365:4;4354:9;4350:20;4336:12;3848:42;3837:54;3825:67;;3763:135;4309:62;;4420:4;4412:6;4408:17;4402:24;4435:64;4493:4;4482:9;4478:20;4462:14;3848:42;3837:54;3825:67;;3763:135;4435:64;;4555:4;4547:6;4543:17;4537:24;4530:4;4519:9;4515:20;4508:54;4618:4;4610:6;4606:17;4600:24;4593:4;4582:9;4578:20;4571:54;4674:4;4666:6;4662:17;4656:24;4689:55;4738:4;4727:9;4723:20;4707:14;3979:10;3968:22;3956:35;;3903:94;4689:55;;4800:4;4792:6;4788:17;4782:24;4775:4;4764:9;4760:20;4753:54;4863:4;4855:6;4851:17;4845:24;4838:4;4827:9;4823:20;4816:54;4889:6;4949:2;4941:6;4937:15;4931:22;4926:2;4915:9;4911:18;4904:50;;4973:6;5028:2;5020:6;5016:15;5010:22;5041:51;5088:2;5077:9;5073:18;5057:14;421:13;414:21;402:34;;351:91;5041:51;-1:-1:-1;;5111:6:168;5159:15;;;5153:22;5133:18;;;5126:50;5195:6;5243:15;;;5237:22;5217:18;;;;5210:50;;;;4002:1264;:::o;5271:607::-;5383:4;5412:2;5441;5430:9;5423:21;5473:6;5467:13;5516:6;5511:2;5500:9;5496:18;5489:34;5541:1;5551:140;5565:6;5562:1;5559:13;5551:140;;;5660:14;;;5656:23;;5650:30;5626:17;;;5645:2;5622:26;5615:66;5580:10;;5551:140;;;5555:3;5740:1;5735:2;5726:6;5715:9;5711:22;5707:31;5700:42;5869:2;5799:66;5794:2;5786:6;5782:15;5778:88;5767:9;5763:104;5759:113;5751:121;;;;5271:607;;;;:::o;5883:401::-;5950:2;5944:9;5992:3;5980:16;;6026:18;6011:34;;6047:22;;;6008:62;6005:242;;;6103:77;6100:1;6093:88;6204:4;6201:1;6194:15;6232:4;6229:1;6222:15;6005:242;6263:2;6256:22;5883:401;:::o;6289:160::-;6354:20;;6410:13;;6403:21;6393:32;;6383:60;;6439:1;6436;6429:12;6454:163;6521:20;;6581:10;6570:22;;6560:33;;6550:61;;6607:1;6604;6597:12;6622:1211;6704:6;6757:3;6745:9;6736:7;6732:23;6728:33;6725:53;;;6774:1;6771;6764:12;6725:53;6800:17;;:::i;:::-;6840:29;6859:9;6840:29;:::i;:::-;6833:5;6826:44;6902:38;6936:2;6925:9;6921:18;6902:38;:::i;:::-;6897:2;6890:5;6886:14;6879:62;7001:2;6990:9;6986:18;6973:32;6968:2;6961:5;6957:14;6950:56;7066:2;7055:9;7051:18;7038:32;7033:2;7026:5;7022:14;7015:56;7132:3;7121:9;7117:19;7104:33;7098:3;7091:5;7087:15;7080:58;7171:39;7205:3;7194:9;7190:19;7171:39;:::i;:::-;7165:3;7158:5;7154:15;7147:64;7244:36;7275:3;7264:9;7260:19;7244:36;:::i;:::-;7238:3;7231:5;7227:15;7220:61;7314:36;7345:3;7334:9;7330:19;7314:36;:::i;:::-;7308:3;7301:5;7297:15;7290:61;7370:3;7405:37;7438:2;7427:9;7423:18;7405:37;:::i;:::-;7389:14;;;7382:61;7462:3;7497:38;7516:18;;;7497:38;:::i;:::-;7481:14;;;7474:62;7555:3;7590:38;7609:18;;;7590:38;:::i;:::-;7574:14;;;7567:62;7648:3;7696:18;;;7683:32;7667:14;;;7660:56;7735:3;7783:18;;;7770:32;7754:14;;;7747:56;;;;-1:-1:-1;7578:5:168;6622:1211;-1:-1:-1;6622:1211:168:o;7838:179::-;7916:13;;7969:22;7958:34;;7948:45;;7938:73;;8007:1;8004;7997:12;8022:473;8125:6;8133;8141;8149;8157;8210:3;8198:9;8189:7;8185:23;8181:33;8178:53;;;8227:1;8224;8217:12;8178:53;8250:39;8279:9;8250:39;:::i;:::-;8240:49;;8329:2;8318:9;8314:18;8308:25;8298:35;;8373:2;8362:9;8358:18;8352:25;8342:35;;8417:2;8406:9;8402:18;8396:25;8386:35;;8440:49;8484:3;8473:9;8469:19;8440:49;:::i;:::-;8430:59;;8022:473;;;;;;;;:::o;8500:184::-;8552:77;8549:1;8542:88;8649:4;8646:1;8639:15;8673:4;8670:1;8663:15;8689:128;8756:9;;;8777:11;;;8774:37;;;8791:18;;:::i;8822:273::-;8890:6;8943:2;8931:9;8922:7;8918:23;8914:32;8911:52;;;8959:1;8956;8949:12;8911:52;8991:9;8985:16;9041:4;9034:5;9030:16;9023:5;9020:27;9010:55;;9061:1;9058;9051:12;9100:292;9172:9;;;9139:7;9197:9;;9214:66;9208:73;;9193:89;9190:115;;;9285:18;;:::i;:::-;9358:1;9349:7;9344:16;9341:1;9338:23;9334:1;9327:9;9324:38;9314:72;;9366:18;;:::i;9397:184::-;9449:77;9446:1;9439:88;9546:4;9543:1;9536:15;9570:4;9567:1;9560:15;9586:308;9625:1;9651;9641:35;;9656:18;;:::i;:::-;9773:66;9770:1;9767:73;9698:66;9695:1;9692:73;9688:153;9685:179;;;9844:18;;:::i;:::-;-1:-1:-1;9878:10:168;;9586:308::o;9899:151::-;9989:4;9982:12;;;9968;;;9964:31;;10007:14;;10004:40;;;10024:18;;:::i;10055:482::-;10144:1;10187:5;10144:1;10201:330;10222:7;10212:8;10209:21;10201:330;;;10341:4;10273:66;10269:77;10263:4;10260:87;10257:113;;;10350:18;;:::i;:::-;10400:7;10390:8;10386:22;10383:55;;;10420:16;;;;10383:55;10499:22;;;;10459:15;;;;10201:330;;;10205:3;10055:482;;;;;:::o;10542:866::-;10591:5;10621:8;10611:80;;-1:-1:-1;10662:1:168;10676:5;;10611:80;10710:4;10700:76;;-1:-1:-1;10747:1:168;10761:5;;10700:76;10792:4;10810:1;10805:59;;;;10878:1;10873:130;;;;10785:218;;10805:59;10835:1;10826:10;;10849:5;;;10873:130;10910:3;10900:8;10897:17;10894:43;;;10917:18;;:::i;:::-;-1:-1:-1;;10973:1:168;10959:16;;10988:5;;10785:218;;11087:2;11077:8;11074:16;11068:3;11062:4;11059:13;11055:36;11049:2;11039:8;11036:16;11031:2;11025:4;11022:12;11018:35;11015:77;11012:159;;;-1:-1:-1;11124:19:168;;;11156:5;;11012:159;11203:34;11228:8;11222:4;11203:34;:::i;:::-;11333:6;11265:66;11261:79;11252:7;11249:92;11246:118;;;11344:18;;:::i;:::-;11382:20;;10542:866;-1:-1:-1;;;10542:866:168:o;11413:131::-;11473:5;11502:36;11529:8;11523:4;11502:36;:::i;11549:191::-;11588:1;11614:10;11651:2;11648:1;11644:10;11673:3;11663:37;;11680:18;;:::i;:::-;11718:10;;11714:20;;;;;11549:191;-1:-1:-1;;11549:191:168:o;11745:249::-;11816:10;11858;;;11870;;;11854:27;11901:20;;;;11816:10;11940:24;;;11930:58;;11968:18;;:::i;:::-;11930:58;;11745:249;;;;:::o;11999:172::-;12066:10;12096;;;12108;;;12092:27;;12131:11;;;12128:37;;;12145:18;;:::i;:::-;12128:37;11999:172;;;;:::o", + "object": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806314a2a78414610079578063a6ffa36c1461008e578063b8296fc41461009f575b600080fd5b61006461005f366004610853565b6100bf565b60405190151581526020015b60405180910390f35b61008c610087366004610910565b610158565b005b61008c61009c366004610a57565b50565b6100b26100ad366004610b26565b610275565b6040516100709190610bc5565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061015257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101698b8b8989898989610275565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461026857604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cb3565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102e286860187610d43565b905060008082610120015173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035b9190610e3a565b5093505092505060008084610140015173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156103b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d99190610e3a565b509350509250506000841380156103f05750600082135b61045957604080518082018252601481527f6f7261636c6520696e76616c6964207072696365000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cb3565b6101808501516104699042610eb9565b831015801561048757506101808501516104839042610eb9565b8110155b6104f057604080518082018252601281527f6f7261636c65207374616c652070726963650000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cb3565b61056f8486610120015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610544573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105689190610ecc565b60126107be565b93506105c58286610140015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610544573d6000803e3d6000fd5b610160860151909250826105e1670de0b6b3a764000087610eef565b6105eb9190610f6a565b131561065657604080518082018252601281527f737472696b65206e6f7420726561636865640000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610cb3565b50505050604051806101800160405280826000015173ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff1681526020018260a0015173ffffffffffffffffffffffffffffffffffffffff16815260200182604001518152602001826060015181526020016106e8836101000151610831565b63ffffffff16815260200182608001518152602001600081526020018260c00151610733577f6ed88e868af0a1983e3886d5f3e95a2fafbd6c3450bc229e27342283dc429ccc610755565b7ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467755b81526020018260e00151151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9815250915050979650505050505050565b60008160ff168360ff1610156107f7576107d88383610fd2565b6107e69060ff16600a61110b565b6107f09085610eef565b905061082a565b8160ff168360ff1611156108275761080f8284610fd2565b61081d9060ff16600a61110b565b6107f09085610f6a565b50825b9392505050565b6000818061083f8142611117565b610849919061113a565b6101529190611162565b60006020828403121561086557600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461082a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461009c57600080fd5b80356108c281610895565b919050565b60008083601f8401126108d957600080fd5b50813567ffffffffffffffff8111156108f157600080fd5b60208301915083602082850101111561090957600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561093057600080fd5b61093a8b35610895565b8a35995060208b013561094c81610895565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561097e57600080fd5b61098a8e838f016108c7565b909750955060c08d01359150808211156109a357600080fd5b506109b08d828e016108c7565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff200112156109e957600080fd5b60e08b0190509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516101a0810167ffffffffffffffff81118282101715610a5157610a516109fe565b60405290565b600060208284031215610a6957600080fd5b813567ffffffffffffffff80821115610a8157600080fd5b818401915084601f830112610a9557600080fd5b813581811115610aa757610aa76109fe565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610aed57610aed6109fe565b81604052828152876020848701011115610b0657600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080600080600060a0888a031215610b4157600080fd5b8735610b4c81610895565b96506020880135610b5c81610895565b955060408801359450606088013567ffffffffffffffff80821115610b8057600080fd5b610b8c8b838c016108c7565b909650945060808a0135915080821115610ba557600080fd5b50610bb28a828b016108c7565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610c0b602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610c33604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610c5f60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610c948285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b81811015610ce057858101830151858201604001528201610cc4565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803580151581146108c257600080fd5b803563ffffffff811681146108c257600080fd5b60006101a08284031215610d5657600080fd5b610d5e610a2d565b610d67836108b7565b8152610d75602084016108b7565b6020820152604083013560408201526060830135606082015260808301356080820152610da460a084016108b7565b60a0820152610db560c08401610d1f565b60c0820152610dc660e08401610d1f565b60e0820152610100610dd9818501610d2f565b90820152610120610deb8482016108b7565b90820152610140610dfd8482016108b7565b908201526101608381013590820152610180928301359281019290925250919050565b805169ffffffffffffffffffff811681146108c257600080fd5b600080600080600060a08688031215610e5257600080fd5b610e5b86610e20565b9450602086015193506040860151925060608601519150610e7e60808701610e20565b90509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561015257610152610e8a565b600060208284031215610ede57600080fd5b815160ff8116811461082a57600080fd5b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615610f2757610f27610e8a565b818105831482151761015257610152610e8a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610f7957610f79610f3b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615610fcd57610fcd610e8a565b500590565b60ff828116828216039081111561015257610152610e8a565b600181815b8085111561104457817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561102a5761102a610e8a565b8085161561103757918102915b93841c9390800290610ff0565b509250929050565b60008261105b57506001610152565b8161106857506000610152565b816001811461107e5760028114611088576110a4565b6001915050610152565b60ff84111561109957611099610e8a565b50506001821b610152565b5060208310610133831016604e8410600b84101617156110c7575081810a610152565b6110d18383610feb565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561110357611103610e8a565b029392505050565b600061082a838361104c565b600063ffffffff8084168061112e5761112e610f3b565b92169190910492915050565b63ffffffff81811683821602808216919082811461115a5761115a610e8a565b505092915050565b63ffffffff81811683821601908082111561117f5761117f610e8a565b509291505056fea264697066735822122027e2153fa5d72c5b3b2c0e7839de888d34e8bce919614287408927fadd22da6e64736f6c63430008130033", + "sourceMap": "1129:4691:147:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:220:135;;;;;;:::i;:::-;;:::i;:::-;;;612:14:170;;605:22;587:41;;575:2;560:18;1944:220:135;;;;;;;;867:634;;;;;;:::i;:::-;;:::i;:::-;;2170:100;;;;;;:::i;:::-;;;3429:2389:147;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1944:220:135:-;2031:4;2054:59;;;2069:44;2054:59;;:103;;-1:-1:-1;2117:40:135;;;2132:25;2117:40;2054:103;2047:110;1944:220;-1:-1:-1;;1944:220:135:o;867:634::-;1153:36;1192:65;1210:5;1217:6;1225:3;1230:11;;1243:13;;1192:17;:65::i;:::-;5434:14:55;;;5473:16;;5520:9;5502:28;;5578:3;5557:25;;5595:23;;6176:4;6170:11;6220:10;6194:37;;6274:1;6251:25;;6244:50;;;6337:2;6314:26;;6307:46;;;;6410:2;6381:32;;1153:104:135;;-1:-1:-1;1359:5:135;:56;1353:142;;1471:12;;;;;;;;;;;;;;;;1439:45;;;;;;;1471:12;1439:45;;;:::i;:::-;;;;;;;;1353:142;1143:358;867:634;;;;;;;;;;:::o;3429:2389:147:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3651:31:147;;;;;;:::i;:::-;3632:50;;3766:16;3785:21;3811:4;:25;;;:41;;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3763:91;;;;;;;3871:17;3891:20;3916:4;:24;;;:40;;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3868:90;;;;;;;4045:1;4033:9;:13;:31;;;;;4063:1;4050:10;:14;4033:31;4027:133;;4124:20;;;;;;;;;;;;;;;;4092:53;;;;;;;4124:20;4092:53;;;:::i;4027:133::-;4421:33;;;;4403:51;;:15;:51;:::i;:::-;4386:13;:68;;:163;;;;-1:-1:-1;4516:33:147;;;;4498:51;;:15;:51;:::i;:::-;4482:12;:67;;4386:163;4342:331;;4639:18;;;;;;;;;;;;;;;;4607:51;;;;;;;4639:18;4607:51;;;:::i;4342:331::-;4906:69;4923:9;4934:4;:25;;;:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4972:2;4906:16;:69::i;:::-;4894:81;;5002:69;5019:10;5031:4;:24;;;:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5002:69;5195:11;;;;4989:82;;-1:-1:-1;4989:82:147;5152:26;1259:8;5152:9;:26;:::i;:::-;:39;;;;:::i;:::-;:54;;5146:154;;5266:18;;;;;;;;;;;;;;;;5234:51;;;;;;;5266:18;5234:51;;;:::i;5146:154::-;3749:1561;;;;5328:483;;;;;;;;5356:4;:14;;;5328:483;;;;;;5384:4;:13;;;5328:483;;;;;;5411:4;:13;;;5328:483;;;;;;5438:4;:15;;;5328:483;;;;5467:4;:14;;;5328:483;;;;5495:47;5515:4;:26;;;5495:19;:47::i;:::-;5328:483;;;;;;5556:4;:12;;;5328:483;;;;5582:1;5328:483;;;;5630:4;:16;;;:59;;5671:18;5630:59;;;5649:19;5630:59;5328:483;;;;5703:4;:24;;;5328:483;;;;;;5741:23;5328:483;;;;5778:23;5328:483;;;5320:491;;3622:2196;3429:2389;;;;;;;;;:::o;968:409:144:-;1069:6;1106:10;1091:25;;:12;:25;;;1087:256;;;1174:25;1187:12;1174:10;:25;:::i;:::-;1160:40;;1166:34;;1160:2;:40;:::i;:::-;1139:62;;:11;:62;:::i;:::-;1132:69;;;;1087:256;1237:10;1222:25;;:12;:25;;;1218:125;;;1305:25;1320:10;1305:12;:25;:::i;:::-;1291:40;;1297:34;;1291:2;:40;:::i;:::-;1270:62;;:11;:62;:::i;1218:125::-;-1:-1:-1;1359:11:144;968:409;;;;;;:::o;463:166::-;526:14;614:8;;564:34;614:8;571:15;564:34;:::i;:::-;563:47;;;;:::i;:::-;562:60;;;;:::i;14:332:170:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;639:154;725:42;718:5;714:54;707:5;704:65;694:93;;783:1;780;773:12;798:134;866:20;;895:31;866:20;895:31;:::i;:::-;798:134;;;:::o;937:347::-;988:8;998:6;1052:3;1045:4;1037:6;1033:17;1029:27;1019:55;;1070:1;1067;1060:12;1019:55;-1:-1:-1;1093:20:170;;1136:18;1125:30;;1122:50;;;1168:1;1165;1158:12;1122:50;1205:4;1197:6;1193:17;1181:29;;1257:3;1250:4;1241:6;1233;1229:19;1225:30;1222:39;1219:59;;;1274:1;1271;1264:12;1219:59;937:347;;;;;:::o;1289:1401::-;1458:6;1466;1474;1482;1490;1498;1506;1514;1522;1530;1583:3;1571:9;1562:7;1558:23;1554:33;1551:53;;;1600:1;1597;1590:12;1551:53;1613:49;1651:9;1638:23;1613:49;:::i;:::-;1694:9;1681:23;1671:33;;1754:2;1743:9;1739:18;1726:32;1767:31;1792:5;1767:31;:::i;:::-;1817:5;-1:-1:-1;1869:2:170;1854:18;;1841:32;;-1:-1:-1;1920:2:170;1905:18;;1892:32;;-1:-1:-1;1971:3:170;1956:19;;1943:33;;-1:-1:-1;2027:3:170;2012:19;;1999:33;2051:18;2081:14;;;2078:34;;;2108:1;2105;2098:12;2078:34;2147:58;2197:7;2188:6;2177:9;2173:22;2147:58;:::i;:::-;2224:8;;-1:-1:-1;2121:84:170;-1:-1:-1;2312:3:170;2297:19;;2284:33;;-1:-1:-1;2329:16:170;;;2326:36;;;2358:1;2355;2348:12;2326:36;;2397:60;2449:7;2438:8;2427:9;2423:24;2397:60;:::i;:::-;2476:8;;-1:-1:-1;2371:86:170;-1:-1:-1;;2625:3:170;2531:23;;;2556:66;2527:96;2523:106;2520:126;;;2642:1;2639;2632:12;2520:126;2680:3;2669:9;2665:19;2655:29;;1289:1401;;;;;;;;;;;;;:::o;2695:184::-;2747:77;2744:1;2737:88;2844:4;2841:1;2834:15;2868:4;2865:1;2858:15;2884:247;2951:2;2945:9;2993:3;2981:16;;3027:18;3012:34;;3048:22;;;3009:62;3006:88;;;3074:18;;:::i;:::-;3110:2;3103:22;2884:247;:::o;3136:980::-;3204:6;3257:2;3245:9;3236:7;3232:23;3228:32;3225:52;;;3273:1;3270;3263:12;3225:52;3313:9;3300:23;3342:18;3383:2;3375:6;3372:14;3369:34;;;3399:1;3396;3389:12;3369:34;3437:6;3426:9;3422:22;3412:32;;3482:7;3475:4;3471:2;3467:13;3463:27;3453:55;;3504:1;3501;3494:12;3453:55;3540:2;3527:16;3562:2;3558;3555:10;3552:36;;;3568:18;;:::i;:::-;3702:2;3696:9;3764:4;3756:13;;3607:66;3752:22;;;3776:2;3748:31;3744:40;3732:53;;;3800:18;;;3820:22;;;3797:46;3794:72;;;3846:18;;:::i;:::-;3886:10;3882:2;3875:22;3921:2;3913:6;3906:18;3961:7;3956:2;3951;3947;3943:11;3939:20;3936:33;3933:53;;;3982:1;3979;3972:12;3933:53;4038:2;4033;4029;4025:11;4020:2;4012:6;4008:15;3995:46;4083:1;4061:15;;;4078:2;4057:24;4050:35;;;;-1:-1:-1;4065:6:170;3136:980;-1:-1:-1;;;;;3136:980:170:o;4121:1063::-;4238:6;4246;4254;4262;4270;4278;4286;4339:3;4327:9;4318:7;4314:23;4310:33;4307:53;;;4356:1;4353;4346:12;4307:53;4395:9;4382:23;4414:31;4439:5;4414:31;:::i;:::-;4464:5;-1:-1:-1;4521:2:170;4506:18;;4493:32;4534:33;4493:32;4534:33;:::i;:::-;4586:7;-1:-1:-1;4640:2:170;4625:18;;4612:32;;-1:-1:-1;4695:2:170;4680:18;;4667:32;4718:18;4748:14;;;4745:34;;;4775:1;4772;4765:12;4745:34;4814:58;4864:7;4855:6;4844:9;4840:22;4814:58;:::i;:::-;4891:8;;-1:-1:-1;4788:84:170;-1:-1:-1;4979:3:170;4964:19;;4951:33;;-1:-1:-1;4996:16:170;;;4993:36;;;5025:1;5022;5015:12;4993:36;;5064:60;5116:7;5105:8;5094:9;5090:24;5064:60;:::i;:::-;4121:1063;;;;-1:-1:-1;4121:1063:170;;-1:-1:-1;4121:1063:170;;;;5038:86;;-1:-1:-1;;;4121:1063:170:o;5428:1264::-;5648:13;;5274:42;5263:54;5251:67;;5608:3;5593:19;;5720:4;5712:6;5708:17;5702:24;5735:62;5791:4;5780:9;5776:20;5762:12;5274:42;5263:54;5251:67;;5189:135;5735:62;;5846:4;5838:6;5834:17;5828:24;5861:64;5919:4;5908:9;5904:20;5888:14;5274:42;5263:54;5251:67;;5189:135;5861:64;;5981:4;5973:6;5969:17;5963:24;5956:4;5945:9;5941:20;5934:54;6044:4;6036:6;6032:17;6026:24;6019:4;6008:9;6004:20;5997:54;6100:4;6092:6;6088:17;6082:24;6115:55;6164:4;6153:9;6149:20;6133:14;5405:10;5394:22;5382:35;;5329:94;6115:55;;6226:4;6218:6;6214:17;6208:24;6201:4;6190:9;6186:20;6179:54;6289:4;6281:6;6277:17;6271:24;6264:4;6253:9;6249:20;6242:54;6315:6;6375:2;6367:6;6363:15;6357:22;6352:2;6341:9;6337:18;6330:50;;6399:6;6454:2;6446:6;6442:15;6436:22;6467:51;6514:2;6503:9;6499:18;6483:14;421:13;414:21;402:34;;351:91;6467:51;-1:-1:-1;;6537:6:170;6585:15;;;6579:22;6559:18;;;6552:50;6621:6;6669:15;;;6663:22;6643:18;;;;6636:50;;;;5428:1264;:::o;6697:607::-;6809:4;6838:2;6867;6856:9;6849:21;6899:6;6893:13;6942:6;6937:2;6926:9;6922:18;6915:34;6967:1;6977:140;6991:6;6988:1;6985:13;6977:140;;;7086:14;;;7082:23;;7076:30;7052:17;;;7071:2;7048:26;7041:66;7006:10;;6977:140;;;6981:3;7166:1;7161:2;7152:6;7141:9;7137:22;7133:31;7126:42;7295:2;7225:66;7220:2;7212:6;7208:15;7204:88;7193:9;7189:104;7185:113;7177:121;;;;6697:607;;;;:::o;7309:160::-;7374:20;;7430:13;;7423:21;7413:32;;7403:60;;7459:1;7456;7449:12;7474:163;7541:20;;7601:10;7590:22;;7580:33;;7570:61;;7627:1;7624;7617:12;7642:1211;7724:6;7777:3;7765:9;7756:7;7752:23;7748:33;7745:53;;;7794:1;7791;7784:12;7745:53;7820:17;;:::i;:::-;7860:29;7879:9;7860:29;:::i;:::-;7853:5;7846:44;7922:38;7956:2;7945:9;7941:18;7922:38;:::i;:::-;7917:2;7910:5;7906:14;7899:62;8021:2;8010:9;8006:18;7993:32;7988:2;7981:5;7977:14;7970:56;8086:2;8075:9;8071:18;8058:32;8053:2;8046:5;8042:14;8035:56;8152:3;8141:9;8137:19;8124:33;8118:3;8111:5;8107:15;8100:58;8191:39;8225:3;8214:9;8210:19;8191:39;:::i;:::-;8185:3;8178:5;8174:15;8167:64;8264:36;8295:3;8284:9;8280:19;8264:36;:::i;:::-;8258:3;8251:5;8247:15;8240:61;8334:36;8365:3;8354:9;8350:19;8334:36;:::i;:::-;8328:3;8321:5;8317:15;8310:61;8390:3;8425:37;8458:2;8447:9;8443:18;8425:37;:::i;:::-;8409:14;;;8402:61;8482:3;8517:38;8536:18;;;8517:38;:::i;:::-;8501:14;;;8494:62;8575:3;8610:38;8629:18;;;8610:38;:::i;:::-;8594:14;;;8587:62;8668:3;8716:18;;;8703:32;8687:14;;;8680:56;8755:3;8803:18;;;8790:32;8774:14;;;8767:56;;;;-1:-1:-1;8598:5:170;7642:1211;-1:-1:-1;7642:1211:170:o;8858:179::-;8936:13;;8989:22;8978:34;;8968:45;;8958:73;;9027:1;9024;9017:12;9042:473;9145:6;9153;9161;9169;9177;9230:3;9218:9;9209:7;9205:23;9201:33;9198:53;;;9247:1;9244;9237:12;9198:53;9270:39;9299:9;9270:39;:::i;:::-;9260:49;;9349:2;9338:9;9334:18;9328:25;9318:35;;9393:2;9382:9;9378:18;9372:25;9362:35;;9437:2;9426:9;9422:18;9416:25;9406:35;;9460:49;9504:3;9493:9;9489:19;9460:49;:::i;:::-;9450:59;;9042:473;;;;;;;;:::o;9520:184::-;9572:77;9569:1;9562:88;9669:4;9666:1;9659:15;9693:4;9690:1;9683:15;9709:128;9776:9;;;9797:11;;;9794:37;;;9811:18;;:::i;9842:273::-;9910:6;9963:2;9951:9;9942:7;9938:23;9934:32;9931:52;;;9979:1;9976;9969:12;9931:52;10011:9;10005:16;10061:4;10054:5;10050:16;10043:5;10040:27;10030:55;;10081:1;10078;10071:12;10120:292;10192:9;;;10159:7;10217:9;;10234:66;10228:73;;10213:89;10210:115;;;10305:18;;:::i;:::-;10378:1;10369:7;10364:16;10361:1;10358:23;10354:1;10347:9;10344:38;10334:72;;10386:18;;:::i;10417:184::-;10469:77;10466:1;10459:88;10566:4;10563:1;10556:15;10590:4;10587:1;10580:15;10606:308;10645:1;10671;10661:35;;10676:18;;:::i;:::-;10793:66;10790:1;10787:73;10718:66;10715:1;10712:73;10708:153;10705:179;;;10864:18;;:::i;:::-;-1:-1:-1;10898:10:170;;10606:308::o;10919:151::-;11009:4;11002:12;;;10988;;;10984:31;;11027:14;;11024:40;;;11044:18;;:::i;11075:482::-;11164:1;11207:5;11164:1;11221:330;11242:7;11232:8;11229:21;11221:330;;;11361:4;11293:66;11289:77;11283:4;11280:87;11277:113;;;11370:18;;:::i;:::-;11420:7;11410:8;11406:22;11403:55;;;11440:16;;;;11403:55;11519:22;;;;11479:15;;;;11221:330;;;11225:3;11075:482;;;;;:::o;11562:866::-;11611:5;11641:8;11631:80;;-1:-1:-1;11682:1:170;11696:5;;11631:80;11730:4;11720:76;;-1:-1:-1;11767:1:170;11781:5;;11720:76;11812:4;11830:1;11825:59;;;;11898:1;11893:130;;;;11805:218;;11825:59;11855:1;11846:10;;11869:5;;;11893:130;11930:3;11920:8;11917:17;11914:43;;;11937:18;;:::i;:::-;-1:-1:-1;;11993:1:170;11979:16;;12008:5;;11805:218;;12107:2;12097:8;12094:16;12088:3;12082:4;12079:13;12075:36;12069:2;12059:8;12056:16;12051:2;12045:4;12042:12;12038:35;12035:77;12032:159;;;-1:-1:-1;12144:19:170;;;12176:5;;12032:159;12223:34;12248:8;12242:4;12223:34;:::i;:::-;12353:6;12285:66;12281:79;12272:7;12269:92;12266:118;;;12364:18;;:::i;:::-;12402:20;;11562:866;-1:-1:-1;;;11562:866:170:o;12433:131::-;12493:5;12522:36;12549:8;12543:4;12522:36;:::i;12569:191::-;12608:1;12634:10;12671:2;12668:1;12664:10;12693:3;12683:37;;12700:18;;:::i;:::-;12738:10;;12734:20;;;;;12569:191;-1:-1:-1;;12569:191:170:o;12765:249::-;12836:10;12878;;;12890;;;12874:27;12921:20;;;;12836:10;12960:24;;;12950:58;;12988:18;;:::i;:::-;12950:58;;12765:249;;;;:::o;13019:172::-;13086:10;13116;;;13128;;;13112:27;;13151:11;;;13148:37;;;13165:18;;:::i;:::-;13148:37;13019:172;;;;:::o", "linkReferences": {} }, "methodIdentifiers": { "getTradeableOrder(address,address,bytes32,bytes,bytes)": "b8296fc4", "supportsInterface(bytes4)": "01ffc9a7", + "validateData(bytes)": "a6ffa36c", "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": "14a2a784" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\":\"\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This order type does not have any replay protection, meaning it may trigger again in the next validityBucket (e.g. 00:15-00:30)\",\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"stateVariables\":{\"SCALING_FACTOR\":{\"details\":\"Scaling factor for the strike price\"}},\"title\":\"StopLoss conditional order Requires providing two price oracles (e.g. chainlink) and a strike price. If the sellToken price falls below the strike price, the order will be triggered\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"notice\":\"Both oracles need to be denominated in the same quote currency (e.g. GNO/ETH and USD/ETH for GNO/USD stop loss orders)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/StopLoss.sol\":\"StopLoss\"},\"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/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/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/BaseConditionalOrder.sol\":{\"keccak256\":\"0x510558386b92b1d5961d8158ae6e3288a1d520c03123d109042a5ec3290b9588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e071465250cbc11d946f422f4ff774d757291cac00f4c69fbac1d1e34cdae402\",\"dweb:/ipfs/QmUF2qNwJhvs3GeWmsWnL6y21eL6mb3QEW7EPYY7NZc25v\"]},\"src/interfaces/IAggregatorV3Interface.sol\":{\"keccak256\":\"0x7edac36e73aa9a9693747b30013bc76a82f717a0c713d49dffa74842b872bb77\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://aa1e61229e0d2219bff2257a5ea2ea783a6c275cbee6ef8bd322fe229f88fa7b\",\"dweb:/ipfs/Qmdw8g8jLjofmzMBraACN23NE5i5QMmJsPCqRjhmfygzJX\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699\",\"dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ\"]},\"src/types/ConditionalOrdersUtilsLib.sol\":{\"keccak256\":\"0x38e4ce4fc58c018f510ee45d78ae49253e8aa70fdf559d83ebb6c838c6b47aae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a38ccd5b8ce2895a77b7474b1ac36ebfccc975b3839f6d3bfef72700f8f6f777\",\"dweb:/ipfs/QmSfs5zZ4U14NkZYSqAFUBcuKGjyfMM5Dp2sbj14FmVYPf\"]},\"src/types/StopLoss.sol\":{\"keccak256\":\"0x3f560c88d8f397e78c2879fe3a4976a601bd0aec9fe27bc23f6f59730c17cb39\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ac92e851a421f44f66235a7aba538e91a5bdaa99fd9025b9d951d83bb1654670\",\"dweb:/ipfs/Qmeqy44VqZ3LUrD9deGkCxwxWme1tYxaG3sCUTwVToPdih\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollNever\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtBlock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtEpoch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryNextBlock\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateData\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\":\"\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This order type does not have any replay protection, meaning it may trigger again in the next validityBucket (e.g. 00:15-00:30)\",\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"validateData(bytes)\":{\"details\":\"Throws if the data is invalid.\",\"params\":{\"data\":\"The ABI-encoded concrete order type's `Data` struct to be validated.\"}},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"stateVariables\":{\"SCALING_FACTOR\":{\"details\":\"Scaling factor for the strike price\"}},\"title\":\"StopLoss conditional order Requires providing two price oracles (e.g. chainlink) and a strike price. If the sellToken price falls below the strike price, the order will be triggered\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"validateData(bytes)\":{\"notice\":\"A helper function for SDK users to verify if a given conditional order's data is valid.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"notice\":\"Both oracles need to be denominated in the same quote currency (e.g. GNO/ETH and USD/ETH for GNO/USD stop loss orders)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/StopLoss.sol\":\"StopLoss\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/safe/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/BaseConditionalOrder.sol\":{\"keccak256\":\"0x83d14b5411a5a1adc00da2d3e17703cd7be15de3f5637b2a3f77501df14c5e9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c007603000bb506c58265f61863bb90966a210429f2985a2632d4f00c7bbc1f\",\"dweb:/ipfs/QmUz7ikMYiS8MGNsMxvcHzpkX2yYiPidxvcfG97Vpqs73j\"]},\"src/interfaces/IAggregatorV3Interface.sol\":{\"keccak256\":\"0x7edac36e73aa9a9693747b30013bc76a82f717a0c713d49dffa74842b872bb77\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://aa1e61229e0d2219bff2257a5ea2ea783a6c275cbee6ef8bd322fe229f88fa7b\",\"dweb:/ipfs/Qmdw8g8jLjofmzMBraACN23NE5i5QMmJsPCqRjhmfygzJX\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]},\"src/types/ConditionalOrdersUtilsLib.sol\":{\"keccak256\":\"0x38e4ce4fc58c018f510ee45d78ae49253e8aa70fdf559d83ebb6c838c6b47aae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a38ccd5b8ce2895a77b7474b1ac36ebfccc975b3839f6d3bfef72700f8f6f777\",\"dweb:/ipfs/QmSfs5zZ4U14NkZYSqAFUBcuKGjyfMM5Dp2sbj14FmVYPf\"]},\"src/types/StopLoss.sol\":{\"keccak256\":\"0x2a9e894a2b0f65a5accdf9e8689e40c73b8e24c83274566650c2a5dcbb59ea0a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://38b86327cc7a047ca691b0d0e791a2f0b5be54409dbdea12eef8a4688331b4e7\",\"dweb:/ipfs/QmPzpTRhm46nxyR1UdKrS66PrLsZvwTjhuQdWuAsxkDvdx\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -312,6 +380,60 @@ "type": "error", "name": "OrderNotValid" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollNever" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtBlock" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtEpoch" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryNextBlock" + }, { "inputs": [ { @@ -468,6 +590,18 @@ } ] }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function", + "name": "validateData" + }, { "inputs": [ { @@ -584,6 +718,12 @@ "supportsInterface(bytes4)": { "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas." }, + "validateData(bytes)": { + "details": "Throws if the data is invalid.", + "params": { + "data": "The ABI-encoded concrete order type's `Data` struct to be validated." + } + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "details": "As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.", "params": { @@ -603,6 +743,9 @@ "userdoc": { "kind": "user", "methods": { + "validateData(bytes)": { + "notice": "A helper function for SDK users to verify if a given conditional order's data is valid." + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "notice": "Verify if a given discrete order is valid." } @@ -612,20 +755,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -640,22 +782,6 @@ "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/libraries/GPv2Interaction.sol": { "keccak256": "0xb950f05f76ac8044b82314ea5510941fdbc0f0e76e7f159023d435652b429528", "urls": [ @@ -672,6 +798,22 @@ ], "license": "LGPL-3.0-or-later" }, + "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { + "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", + "urls": [ + "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", + "dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", + "urls": [ + "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", + "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" + ], + "license": "MIT" + }, "lib/safe/contracts/interfaces/IERC165.sol": { "keccak256": "0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb", "urls": [ @@ -681,10 +823,10 @@ "license": "LGPL-3.0-only" }, "src/BaseConditionalOrder.sol": { - "keccak256": "0x510558386b92b1d5961d8158ae6e3288a1d520c03123d109042a5ec3290b9588", + "keccak256": "0x83d14b5411a5a1adc00da2d3e17703cd7be15de3f5637b2a3f77501df14c5e9c", "urls": [ - "bzz-raw://e071465250cbc11d946f422f4ff774d757291cac00f4c69fbac1d1e34cdae402", - "dweb:/ipfs/QmUF2qNwJhvs3GeWmsWnL6y21eL6mb3QEW7EPYY7NZc25v" + "bzz-raw://4c007603000bb506c58265f61863bb90966a210429f2985a2632d4f00c7bbc1f", + "dweb:/ipfs/QmUz7ikMYiS8MGNsMxvcHzpkX2yYiPidxvcfG97Vpqs73j" ], "license": "MIT" }, @@ -697,10 +839,10 @@ "license": "GPL-3.0" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" }, @@ -713,10 +855,10 @@ "license": "MIT" }, "src/types/StopLoss.sol": { - "keccak256": "0x3f560c88d8f397e78c2879fe3a4976a601bd0aec9fe27bc23f6f59730c17cb39", + "keccak256": "0x2a9e894a2b0f65a5accdf9e8689e40c73b8e24c83274566650c2a5dcbb59ea0a", "urls": [ - "bzz-raw://ac92e851a421f44f66235a7aba538e91a5bdaa99fd9025b9d951d83bb1654670", - "dweb:/ipfs/Qmeqy44VqZ3LUrD9deGkCxwxWme1tYxaG3sCUTwVToPdih" + "bzz-raw://38b86327cc7a047ca691b0d0e791a2f0b5be54409dbdea12eef8a4688331b4e7", + "dweb:/ipfs/QmPzpTRhm46nxyR1UdKrS66PrLsZvwTjhuQdWuAsxkDvdx" ], "license": "GPL-3.0" } @@ -725,58 +867,58 @@ }, "ast": { "absolutePath": "src/types/StopLoss.sol", - "id": 55327, + "id": 55430, "exportedSymbols": { "BaseConditionalOrder": [ - 53501 + 53578 ], "GPv2Interaction": [ - 17090 + 14303 ], "GPv2Order": [ - 17246 + 14459 ], "IAggregatorV3Interface": [ - 54393 + 54470 ], "IConditionalOrder": [ - 54437 + 54540 ], "IConditionalOrderGenerator": [ - 54468 + 54571 ], "IERC165": [ 52197 ], "IERC20": [ - 670 + 45820 ], "INVALID_HASH": [ - 53402 + 53472 ], "ORACLE_INVALID_PRICE": [ - 55109 + 55212 ], "ORACLE_STALE_PRICE": [ - 55113 + 55216 ], "STRIKE_NOT_REACHED": [ - 55117 + 55220 ], "StopLoss": [ - 55326 + 55429 ], "Utils": [ - 54593 + 54696 ] }, "nodeType": "SourceUnit", - "src": "36:5775:145", + "src": "36:5785:147", "nodes": [ { - "id": 55099, + "id": 55202, "nodeType": "PragmaDirective", - "src": "36:31:145", + "src": "36:31:147", "nodes": [], "literals": [ "solidity", @@ -789,24 +931,24 @@ ] }, { - "id": 55101, + "id": 55204, "nodeType": "ImportDirective", - "src": "69:59:145", + "src": "69:69:147", "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/interfaces/IERC20.sol", - "file": "@openzeppelin/interfaces/IERC20.sol", + "absolutePath": "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol", + "file": "@openzeppelin/contracts/interfaces/IERC20.sol", "nameLocation": "-1:-1:-1", - "scope": 55327, - "sourceUnit": 3, + "scope": 55430, + "sourceUnit": 45153, "symbolAliases": [ { "foreign": { - "id": 55100, + "id": 55203, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "77:6:145", + "referencedDeclaration": 45820, + "src": "77:6:147", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -815,50 +957,50 @@ "unitAlias": "" }, { - "id": 55102, + "id": 55205, "nodeType": "ImportDirective", - "src": "130:37:145", + "src": "140:37:147", "nodes": [], "absolutePath": "src/BaseConditionalOrder.sol", "file": "../BaseConditionalOrder.sol", "nameLocation": "-1:-1:-1", - "scope": 55327, - "sourceUnit": 53502, + "scope": 55430, + "sourceUnit": 53579, "symbolAliases": [], "unitAlias": "" }, { - "id": 55103, + "id": 55206, "nodeType": "ImportDirective", - "src": "168:50:145", + "src": "178:50:147", "nodes": [], "absolutePath": "src/interfaces/IAggregatorV3Interface.sol", "file": "../interfaces/IAggregatorV3Interface.sol", "nameLocation": "-1:-1:-1", - "scope": 55327, - "sourceUnit": 54394, + "scope": 55430, + "sourceUnit": 54471, "symbolAliases": [], "unitAlias": "" }, { - "id": 55105, + "id": 55208, "nodeType": "ImportDirective", - "src": "219:83:145", + "src": "229:83:147", "nodes": [], "absolutePath": "src/types/ConditionalOrdersUtilsLib.sol", "file": "./ConditionalOrdersUtilsLib.sol", "nameLocation": "-1:-1:-1", - "scope": 55327, - "sourceUnit": 54594, + "scope": 55430, + "sourceUnit": 54697, "symbolAliases": [ { "foreign": { - "id": 55104, + "id": 55207, "name": "ConditionalOrdersUtilsLib", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "227:25:145", + "referencedDeclaration": 54696, + "src": "237:25:147", "typeDescriptions": {} }, "local": "Utils", @@ -868,15 +1010,15 @@ "unitAlias": "" }, { - "id": 55109, + "id": 55212, "nodeType": "VariableDeclaration", - "src": "377:61:145", + "src": "387:61:147", "nodes": [], "constant": true, "mutability": "constant", "name": "ORACLE_INVALID_PRICE", - "nameLocation": "393:20:145", - "scope": 55327, + "nameLocation": "403:20:147", + "scope": 55430, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -884,10 +1026,10 @@ "typeString": "string" }, "typeName": { - "id": 55107, + "id": 55210, "name": "string", "nodeType": "ElementaryTypeName", - "src": "377:6:145", + "src": "387:6:147", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -895,14 +1037,14 @@ }, "value": { "hexValue": "6f7261636c6520696e76616c6964207072696365", - "id": 55108, + "id": 55211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "416:22:145", + "src": "426:22:147", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f80f845f07d7eeba3f73260b6227018babc491600daf468fd28893bfb04bfd", "typeString": "literal_string \"oracle invalid price\"" @@ -912,15 +1054,15 @@ "visibility": "internal" }, { - "id": 55113, + "id": 55216, "nodeType": "VariableDeclaration", - "src": "484:57:145", + "src": "494:57:147", "nodes": [], "constant": true, "mutability": "constant", "name": "ORACLE_STALE_PRICE", - "nameLocation": "500:18:145", - "scope": 55327, + "nameLocation": "510:18:147", + "scope": 55430, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -928,10 +1070,10 @@ "typeString": "string" }, "typeName": { - "id": 55111, + "id": 55214, "name": "string", "nodeType": "ElementaryTypeName", - "src": "484:6:145", + "src": "494:6:147", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -939,14 +1081,14 @@ }, "value": { "hexValue": "6f7261636c65207374616c65207072696365", - "id": 55112, + "id": 55215, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "521:20:145", + "src": "531:20:147", "typeDescriptions": { "typeIdentifier": "t_stringliteral_703af3cd8a79c4e83275ed6b43d61b5e5a2f3ebad76f00973ced7bd7c18c0d38", "typeString": "literal_string \"oracle stale price\"" @@ -956,15 +1098,15 @@ "visibility": "internal" }, { - "id": 55117, + "id": 55220, "nodeType": "VariableDeclaration", - "src": "590:57:145", + "src": "600:57:147", "nodes": [], "constant": true, "mutability": "constant", "name": "STRIKE_NOT_REACHED", - "nameLocation": "606:18:145", - "scope": 55327, + "nameLocation": "616:18:147", + "scope": 55430, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -972,10 +1114,10 @@ "typeString": "string" }, "typeName": { - "id": 55115, + "id": 55218, "name": "string", "nodeType": "ElementaryTypeName", - "src": "590:6:145", + "src": "600:6:147", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -983,14 +1125,14 @@ }, "value": { "hexValue": "737472696b65206e6f742072656163686564", - "id": 55116, + "id": 55219, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "627:20:145", + "src": "637:20:147", "typeDescriptions": { "typeIdentifier": "t_stringliteral_214c0da9be21c8fb2ae677b87503579e7b864b168559deddd0c1e29d6bbd0ecc", "typeString": "literal_string \"strike not reached\"" @@ -1000,26 +1142,26 @@ "visibility": "internal" }, { - "id": 55326, + "id": 55429, "nodeType": "ContractDefinition", - "src": "1119:4691:145", + "src": "1129:4691:147", "nodes": [ { - "id": 55126, + "id": 55229, "nodeType": "VariableDeclaration", - "src": "1216:41:145", + "src": "1226:41:147", "nodes": [], "constant": true, "documentation": { - "id": 55121, + "id": 55224, "nodeType": "StructuredDocumentation", - "src": "1167:44:145", + "src": "1177:44:147", "text": "@dev Scaling factor for the strike price" }, "mutability": "constant", "name": "SCALING_FACTOR", - "nameLocation": "1232:14:145", - "scope": 55326, + "nameLocation": "1242:14:147", + "scope": 55429, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1027,10 +1169,10 @@ "typeString": "int256" }, "typeName": { - "id": 55122, + "id": 55225, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "1216:6:145", + "src": "1226:6:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -1041,21 +1183,21 @@ "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, - "id": 55125, + "id": 55228, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 55123, + "id": 55226, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1249:2:145", + "src": "1259:2:147", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -1066,21 +1208,21 @@ "operator": "**", "rightExpression": { "hexValue": "3138", - "id": 55124, + "id": 55227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1255:2:145", + "src": "1265:2:147", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, - "src": "1249:8:145", + "src": "1259:8:147", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" @@ -1089,44 +1231,44 @@ "visibility": "internal" }, { - "id": 55157, + "id": 55260, "nodeType": "StructDefinition", - "src": "2965:448:145", + "src": "2975:448:147", "nodes": [], "canonicalName": "StopLoss.Data", "members": [ { "constant": false, - "id": 55129, + "id": 55232, "mutability": "mutable", "name": "sellToken", - "nameLocation": "2994:9:145", + "nameLocation": "3004:9:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "2987:16:145", + "scope": 55260, + "src": "2997:16:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 55128, + "id": 55231, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55127, + "id": 55230, "name": "IERC20", "nameLocations": [ - "2987:6:145" + "2997:6:147" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "2987:6:145" + "referencedDeclaration": 45820, + "src": "2997:6:147" }, - "referencedDeclaration": 670, - "src": "2987:6:145", + "referencedDeclaration": 45820, + "src": "2997:6:147", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -1134,36 +1276,36 @@ }, { "constant": false, - "id": 55132, + "id": 55235, "mutability": "mutable", "name": "buyToken", - "nameLocation": "3020:8:145", + "nameLocation": "3030:8:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3013:15:145", + "scope": 55260, + "src": "3023:15:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 55131, + "id": 55234, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55130, + "id": 55233, "name": "IERC20", "nameLocations": [ - "3013:6:145" + "3023:6:147" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "3013:6:145" + "referencedDeclaration": 45820, + "src": "3023:6:147" }, - "referencedDeclaration": 670, - "src": "3013:6:145", + "referencedDeclaration": 45820, + "src": "3023:6:147", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -1171,13 +1313,13 @@ }, { "constant": false, - "id": 55134, + "id": 55237, "mutability": "mutable", "name": "sellAmount", - "nameLocation": "3046:10:145", + "nameLocation": "3056:10:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3038:18:145", + "scope": 55260, + "src": "3048:18:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1185,10 +1327,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55133, + "id": 55236, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3038:7:145", + "src": "3048:7:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1198,13 +1340,13 @@ }, { "constant": false, - "id": 55136, + "id": 55239, "mutability": "mutable", "name": "buyAmount", - "nameLocation": "3074:9:145", + "nameLocation": "3084:9:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3066:17:145", + "scope": 55260, + "src": "3076:17:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1212,10 +1354,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55135, + "id": 55238, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3066:7:145", + "src": "3076:7:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1225,13 +1367,13 @@ }, { "constant": false, - "id": 55138, + "id": 55241, "mutability": "mutable", "name": "appData", - "nameLocation": "3101:7:145", + "nameLocation": "3111:7:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3093:15:145", + "scope": 55260, + "src": "3103:15:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1239,10 +1381,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 55137, + "id": 55240, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3093:7:145", + "src": "3103:7:147", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1252,13 +1394,13 @@ }, { "constant": false, - "id": 55140, + "id": 55243, "mutability": "mutable", "name": "receiver", - "nameLocation": "3126:8:145", + "nameLocation": "3136:8:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3118:16:145", + "scope": 55260, + "src": "3128:16:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1266,10 +1408,10 @@ "typeString": "address" }, "typeName": { - "id": 55139, + "id": 55242, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3118:7:145", + "src": "3128:7:147", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1280,13 +1422,13 @@ }, { "constant": false, - "id": 55142, + "id": 55245, "mutability": "mutable", "name": "isSellOrder", - "nameLocation": "3149:11:145", + "nameLocation": "3159:11:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3144:16:145", + "scope": 55260, + "src": "3154:16:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1294,10 +1436,10 @@ "typeString": "bool" }, "typeName": { - "id": 55141, + "id": 55244, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3144:4:145", + "src": "3154:4:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1307,13 +1449,13 @@ }, { "constant": false, - "id": 55144, + "id": 55247, "mutability": "mutable", "name": "isPartiallyFillable", - "nameLocation": "3175:19:145", + "nameLocation": "3185:19:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3170:24:145", + "scope": 55260, + "src": "3180:24:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1321,10 +1463,10 @@ "typeString": "bool" }, "typeName": { - "id": 55143, + "id": 55246, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3170:4:145", + "src": "3180:4:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1334,13 +1476,13 @@ }, { "constant": false, - "id": 55146, + "id": 55249, "mutability": "mutable", "name": "validityBucketSeconds", - "nameLocation": "3211:21:145", + "nameLocation": "3221:21:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3204:28:145", + "scope": 55260, + "src": "3214:28:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1348,10 +1490,10 @@ "typeString": "uint32" }, "typeName": { - "id": 55145, + "id": 55248, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3204:6:145", + "src": "3214:6:147", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1361,36 +1503,36 @@ }, { "constant": false, - "id": 55149, + "id": 55252, "mutability": "mutable", "name": "sellTokenPriceOracle", - "nameLocation": "3265:20:145", + "nameLocation": "3275:20:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3242:43:145", + "scope": 55260, + "src": "3252:43:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54393", + "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54470", "typeString": "contract IAggregatorV3Interface" }, "typeName": { - "id": 55148, + "id": 55251, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55147, + "id": 55250, "name": "IAggregatorV3Interface", "nameLocations": [ - "3242:22:145" + "3252:22:147" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54393, - "src": "3242:22:145" + "referencedDeclaration": 54470, + "src": "3252:22:147" }, - "referencedDeclaration": 54393, - "src": "3242:22:145", + "referencedDeclaration": 54470, + "src": "3252:22:147", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54393", + "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54470", "typeString": "contract IAggregatorV3Interface" } }, @@ -1398,36 +1540,36 @@ }, { "constant": false, - "id": 55152, + "id": 55255, "mutability": "mutable", "name": "buyTokenPriceOracle", - "nameLocation": "3318:19:145", + "nameLocation": "3328:19:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3295:42:145", + "scope": 55260, + "src": "3305:42:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54393", + "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54470", "typeString": "contract IAggregatorV3Interface" }, "typeName": { - "id": 55151, + "id": 55254, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55150, + "id": 55253, "name": "IAggregatorV3Interface", "nameLocations": [ - "3295:22:145" + "3305:22:147" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54393, - "src": "3295:22:145" + "referencedDeclaration": 54470, + "src": "3305:22:147" }, - "referencedDeclaration": 54393, - "src": "3295:22:145", + "referencedDeclaration": 54470, + "src": "3305:22:147", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54393", + "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54470", "typeString": "contract IAggregatorV3Interface" } }, @@ -1435,13 +1577,13 @@ }, { "constant": false, - "id": 55154, + "id": 55257, "mutability": "mutable", "name": "strike", - "nameLocation": "3354:6:145", + "nameLocation": "3364:6:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3347:13:145", + "scope": 55260, + "src": "3357:13:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1449,10 +1591,10 @@ "typeString": "int256" }, "typeName": { - "id": 55153, + "id": 55256, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "3347:6:145", + "src": "3357:6:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -1462,13 +1604,13 @@ }, { "constant": false, - "id": 55156, + "id": 55259, "mutability": "mutable", "name": "maxTimeSinceLastOracleUpdate", - "nameLocation": "3378:28:145", + "nameLocation": "3388:28:147", "nodeType": "VariableDeclaration", - "scope": 55157, - "src": "3370:36:145", + "scope": 55260, + "src": "3380:36:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1476,10 +1618,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55155, + "id": 55258, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3370:7:145", + "src": "3380:7:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1489,74 +1631,74 @@ } ], "name": "Data", - "nameLocation": "2972:4:145", - "scope": 55326, + "nameLocation": "2982:4:147", + "scope": 55429, "visibility": "public" }, { - "id": 55325, + "id": 55428, "nodeType": "FunctionDefinition", - "src": "3419:2389:145", + "src": "3429:2389:147", "nodes": [], "body": { - "id": 55324, + "id": 55427, "nodeType": "Block", - "src": "3612:2196:145", + "src": "3622:2196:147", "nodes": [], "statements": [ { "assignments": [ - 55176 + 55279 ], "declarations": [ { "constant": false, - "id": 55176, + "id": 55279, "mutability": "mutable", "name": "data", - "nameLocation": "3634:4:145", + "nameLocation": "3644:4:147", "nodeType": "VariableDeclaration", - "scope": 55324, - "src": "3622:16:145", + "scope": 55427, + "src": "3632:16:147", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data" }, "typeName": { - "id": 55175, + "id": 55278, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55174, + "id": 55277, "name": "Data", "nameLocations": [ - "3622:4:145" + "3632:4:147" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 55157, - "src": "3622:4:145" + "referencedDeclaration": 55260, + "src": "3632:4:147" }, - "referencedDeclaration": 55157, - "src": "3622:4:145", + "referencedDeclaration": 55260, + "src": "3632:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_storage_ptr", + "typeIdentifier": "t_struct$_Data_$55260_storage_ptr", "typeString": "struct StopLoss.Data" } }, "visibility": "internal" } ], - "id": 55183, + "id": 55286, "initialValue": { "arguments": [ { - "id": 55179, + "id": 55282, "name": "staticInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55165, - "src": "3652:11:145", + "referencedDeclaration": 55268, + "src": "3662:11:147", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -1565,28 +1707,28 @@ { "components": [ { - "id": 55180, + "id": 55283, "name": "Data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55157, - "src": "3666:4:145", + "referencedDeclaration": 55260, + "src": "3676:4:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$55157_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$55260_storage_ptr_$", "typeString": "type(struct StopLoss.Data storage pointer)" } } ], - "id": 55181, + "id": 55284, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3665:6:145", + "src": "3675:6:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$55157_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$55260_storage_ptr_$", "typeString": "type(struct StopLoss.Data storage pointer)" } } @@ -1598,37 +1740,37 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_type$_t_struct$_Data_$55157_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$55260_storage_ptr_$", "typeString": "type(struct StopLoss.Data storage pointer)" } ], "expression": { - "id": 55177, + "id": 55280, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "3641:3:145", + "src": "3651:3:147", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 55178, + "id": 55281, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3645:6:145", + "memberLocation": "3655:6:147", "memberName": "decode", "nodeType": "MemberAccess", - "src": "3641:10:145", + "src": "3651:10:147", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 55182, + "id": 55285, "isConstant": false, "isLValue": false, "isPure": false, @@ -1637,40 +1779,40 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3641:31:145", + "src": "3651:31:147", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3622:50:145" + "src": "3632:50:147" }, { - "id": 55286, + "id": 55389, "nodeType": "Block", - "src": "3739:1561:145", + "src": "3749:1561:147", "statements": [ { "assignments": [ null, - 55185, + 55288, null, - 55187, + 55290, null ], "declarations": [ null, { "constant": false, - "id": 55185, + "id": 55288, "mutability": "mutable", "name": "basePrice", - "nameLocation": "3763:9:145", + "nameLocation": "3773:9:147", "nodeType": "VariableDeclaration", - "scope": 55286, - "src": "3756:16:145", + "scope": 55389, + "src": "3766:16:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1678,10 +1820,10 @@ "typeString": "int256" }, "typeName": { - "id": 55184, + "id": 55287, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "3756:6:145", + "src": "3766:6:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -1692,13 +1834,13 @@ null, { "constant": false, - "id": 55187, + "id": 55290, "mutability": "mutable", "name": "sellUpdatedAt", - "nameLocation": "3783:13:145", + "nameLocation": "3793:13:147", "nodeType": "VariableDeclaration", - "scope": 55286, - "src": "3775:21:145", + "scope": 55389, + "src": "3785:21:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1706,10 +1848,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55186, + "id": 55289, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3775:7:145", + "src": "3785:7:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1719,55 +1861,55 @@ }, null ], - "id": 55192, + "id": 55295, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { - "id": 55188, + "id": 55291, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "3801:4:145", + "referencedDeclaration": 55279, + "src": "3811:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55189, + "id": 55292, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3806:20:145", + "memberLocation": "3816:20:147", "memberName": "sellTokenPriceOracle", "nodeType": "MemberAccess", - "referencedDeclaration": 55149, - "src": "3801:25:145", + "referencedDeclaration": 55252, + "src": "3811:25:147", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54393", + "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54470", "typeString": "contract IAggregatorV3Interface" } }, - "id": 55190, + "id": 55293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3827:15:145", + "memberLocation": "3837:15:147", "memberName": "latestRoundData", "nodeType": "MemberAccess", - "referencedDeclaration": 54392, - "src": "3801:41:145", + "referencedDeclaration": 54469, + "src": "3811:41:147", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$", "typeString": "function () view external returns (uint80,int256,uint256,uint256,uint80)" } }, - "id": 55191, + "id": 55294, "isConstant": false, "isLValue": false, "isPure": false, @@ -1776,7 +1918,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3801:43:145", + "src": "3811:43:147", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$", @@ -1784,27 +1926,27 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3753:91:145" + "src": "3763:91:147" }, { "assignments": [ null, - 55194, + 55297, null, - 55196, + 55299, null ], "declarations": [ null, { "constant": false, - "id": 55194, + "id": 55297, "mutability": "mutable", "name": "quotePrice", - "nameLocation": "3868:10:145", + "nameLocation": "3878:10:147", "nodeType": "VariableDeclaration", - "scope": 55286, - "src": "3861:17:145", + "scope": 55389, + "src": "3871:17:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1812,10 +1954,10 @@ "typeString": "int256" }, "typeName": { - "id": 55193, + "id": 55296, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "3861:6:145", + "src": "3871:6:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -1826,13 +1968,13 @@ null, { "constant": false, - "id": 55196, + "id": 55299, "mutability": "mutable", "name": "buyUpdatedAt", - "nameLocation": "3889:12:145", + "nameLocation": "3899:12:147", "nodeType": "VariableDeclaration", - "scope": 55286, - "src": "3881:20:145", + "scope": 55389, + "src": "3891:20:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1840,10 +1982,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55195, + "id": 55298, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3881:7:145", + "src": "3891:7:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1853,55 +1995,55 @@ }, null ], - "id": 55201, + "id": 55304, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { - "id": 55197, + "id": 55300, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "3906:4:145", + "referencedDeclaration": 55279, + "src": "3916:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55198, + "id": 55301, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3911:19:145", + "memberLocation": "3921:19:147", "memberName": "buyTokenPriceOracle", "nodeType": "MemberAccess", - "referencedDeclaration": 55152, - "src": "3906:24:145", + "referencedDeclaration": 55255, + "src": "3916:24:147", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54393", + "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54470", "typeString": "contract IAggregatorV3Interface" } }, - "id": 55199, + "id": 55302, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3931:15:145", + "memberLocation": "3941:15:147", "memberName": "latestRoundData", "nodeType": "MemberAccess", - "referencedDeclaration": 54392, - "src": "3906:40:145", + "referencedDeclaration": 54469, + "src": "3916:40:147", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$", "typeString": "function () view external returns (uint80,int256,uint256,uint256,uint80)" } }, - "id": 55200, + "id": 55303, "isConstant": false, "isLValue": false, "isPure": false, @@ -1910,7 +2052,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3906:42:145", + "src": "3916:42:147", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$", @@ -1918,11 +2060,11 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3858:90:145" + "src": "3868:90:147" }, { "condition": { - "id": 55210, + "id": 55313, "isConstant": false, "isLValue": false, "isPure": false, @@ -1930,7 +2072,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4021:34:145", + "src": "4031:34:147", "subExpression": { "components": [ { @@ -1938,7 +2080,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 55208, + "id": 55311, "isConstant": false, "isLValue": false, "isPure": false, @@ -1948,18 +2090,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 55204, + "id": 55307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55202, + "id": 55305, "name": "basePrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55185, - "src": "4023:9:145", + "referencedDeclaration": 55288, + "src": "4033:9:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -1969,21 +2111,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 55203, + "id": 55306, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4035:1:145", + "src": "4045:1:147", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4023:13:145", + "src": "4033:13:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1996,18 +2138,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 55207, + "id": 55310, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55205, + "id": 55308, "name": "quotePrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55194, - "src": "4040:10:145", + "referencedDeclaration": 55297, + "src": "4050:10:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -2017,41 +2159,41 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 55206, + "id": 55309, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4053:1:145", + "src": "4063:1:147", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4040:14:145", + "src": "4050:14:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4023:31:145", + "src": "4033:31:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55209, + "id": 55312, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4022:33:145", + "src": "4032:33:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2063,24 +2205,24 @@ } }, "documentation": "@dev Guard against invalid price data", - "id": 55218, + "id": 55321, "nodeType": "IfStatement", - "src": "4017:133:145", + "src": "4027:133:147", "trueBody": { - "id": 55217, + "id": 55320, "nodeType": "Block", - "src": "4057:93:145", + "src": "4067:93:147", "statements": [ { "errorCall": { "arguments": [ { - "id": 55214, + "id": 55317, "name": "ORACLE_INVALID_PRICE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55109, - "src": "4114:20:145", + "referencedDeclaration": 55212, + "src": "4124:20:147", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -2095,33 +2237,33 @@ } ], "expression": { - "id": 55211, + "id": 55314, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "4082:17:145", + "referencedDeclaration": 54540, + "src": "4092:17:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55213, + "id": 55316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4100:13:145", + "memberLocation": "4110:13:147", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "4082:31:145", + "referencedDeclaration": 54484, + "src": "4092:31:147", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55215, + "id": 55318, "isConstant": false, "isLValue": false, "isPure": false, @@ -2130,23 +2272,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4082:53:145", + "src": "4092:53:147", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55216, + "id": 55319, "nodeType": "RevertStatement", - "src": "4075:60:145" + "src": "4085:60:147" } ] } }, { "condition": { - "id": 55235, + "id": 55338, "isConstant": false, "isLValue": false, "isPure": false, @@ -2154,7 +2296,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4353:204:145", + "src": "4363:204:147", "subExpression": { "components": [ { @@ -2162,7 +2304,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 55233, + "id": 55336, "isConstant": false, "isLValue": false, "isPure": false, @@ -2172,18 +2314,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55225, + "id": 55328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55219, + "id": 55322, "name": "sellUpdatedAt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55187, - "src": "4376:13:145", + "referencedDeclaration": 55290, + "src": "4386:13:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2196,33 +2338,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55224, + "id": 55327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55220, + "id": 55323, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "4393:5:145", + "src": "4403:5:147", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 55221, + "id": 55324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4399:9:145", + "memberLocation": "4409:9:147", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "4393:15:145", + "src": "4403:15:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2232,39 +2374,39 @@ "operator": "-", "rightExpression": { "expression": { - "id": 55222, + "id": 55325, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "4411:4:145", + "referencedDeclaration": 55279, + "src": "4421:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55223, + "id": 55326, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4416:28:145", + "memberLocation": "4426:28:147", "memberName": "maxTimeSinceLastOracleUpdate", "nodeType": "MemberAccess", - "referencedDeclaration": 55156, - "src": "4411:33:145", + "referencedDeclaration": 55259, + "src": "4421:33:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4393:51:145", + "src": "4403:51:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4376:68:145", + "src": "4386:68:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2277,18 +2419,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55232, + "id": 55335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55226, + "id": 55329, "name": "buyUpdatedAt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55196, - "src": "4472:12:145", + "referencedDeclaration": 55299, + "src": "4482:12:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2301,33 +2443,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55231, + "id": 55334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55227, + "id": 55330, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "4488:5:145", + "src": "4498:5:147", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 55228, + "id": 55331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4494:9:145", + "memberLocation": "4504:9:147", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "4488:15:145", + "src": "4498:15:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2337,59 +2479,59 @@ "operator": "-", "rightExpression": { "expression": { - "id": 55229, + "id": 55332, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "4506:4:145", + "referencedDeclaration": 55279, + "src": "4516:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55230, + "id": 55333, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4511:28:145", + "memberLocation": "4521:28:147", "memberName": "maxTimeSinceLastOracleUpdate", "nodeType": "MemberAccess", - "referencedDeclaration": 55156, - "src": "4506:33:145", + "referencedDeclaration": 55259, + "src": "4516:33:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4488:51:145", + "src": "4498:51:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4472:67:145", + "src": "4482:67:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4376:163:145", + "src": "4386:163:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55234, + "id": 55337, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4354:203:145", + "src": "4364:203:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2401,24 +2543,24 @@ } }, "documentation": "@dev Guard against stale data at a user-specified interval. The maxTimeSinceLastOracleUpdate should at least exceed the both oracles' update intervals.", - "id": 55243, + "id": 55346, "nodeType": "IfStatement", - "src": "4332:331:145", + "src": "4342:331:147", "trueBody": { - "id": 55242, + "id": 55345, "nodeType": "Block", - "src": "4572:91:145", + "src": "4582:91:147", "statements": [ { "errorCall": { "arguments": [ { - "id": 55239, + "id": 55342, "name": "ORACLE_STALE_PRICE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55113, - "src": "4629:18:145", + "referencedDeclaration": 55216, + "src": "4639:18:147", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -2433,33 +2575,33 @@ } ], "expression": { - "id": 55236, + "id": 55339, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "4597:17:145", + "referencedDeclaration": 54540, + "src": "4607:17:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55238, + "id": 55341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4615:13:145", + "memberLocation": "4625:13:147", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "4597:31:145", + "referencedDeclaration": 54484, + "src": "4607:31:147", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55240, + "id": 55343, "isConstant": false, "isLValue": false, "isPure": false, @@ -2468,34 +2610,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4597:51:145", + "src": "4607:51:147", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55241, + "id": 55344, "nodeType": "RevertStatement", - "src": "4590:58:145" + "src": "4600:58:147" } ] } }, { "expression": { - "id": 55254, + "id": 55357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 55244, + "id": 55347, "name": "basePrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55185, - "src": "4884:9:145", + "referencedDeclaration": 55288, + "src": "4894:9:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -2506,12 +2648,12 @@ "rightHandSide": { "arguments": [ { - "id": 55247, + "id": 55350, "name": "basePrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55185, - "src": "4913:9:145", + "referencedDeclaration": 55288, + "src": "4923:9:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -2523,48 +2665,48 @@ "argumentTypes": [], "expression": { "expression": { - "id": 55248, + "id": 55351, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "4924:4:145", + "referencedDeclaration": 55279, + "src": "4934:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55249, + "id": 55352, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4929:20:145", + "memberLocation": "4939:20:147", "memberName": "sellTokenPriceOracle", "nodeType": "MemberAccess", - "referencedDeclaration": 55149, - "src": "4924:25:145", + "referencedDeclaration": 55252, + "src": "4934:25:147", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54393", + "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54470", "typeString": "contract IAggregatorV3Interface" } }, - "id": 55250, + "id": 55353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4950:8:145", + "memberLocation": "4960:8:147", "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 54354, - "src": "4924:34:145", + "referencedDeclaration": 54431, + "src": "4934:34:147", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 55251, + "id": 55354, "isConstant": false, "isLValue": false, "isPure": false, @@ -2573,7 +2715,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4924:36:145", + "src": "4934:36:147", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -2582,14 +2724,14 @@ }, { "hexValue": "3138", - "id": 55252, + "id": 55355, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4962:2:145", + "src": "4972:2:147", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" @@ -2613,33 +2755,33 @@ } ], "expression": { - "id": 55245, + "id": 55348, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "4896:5:145", + "referencedDeclaration": 54696, + "src": "4906:5:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54593_$", + "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54696_$", "typeString": "type(library ConditionalOrdersUtilsLib)" } }, - "id": 55246, + "id": 55349, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4902:10:145", + "memberLocation": "4912:10:147", "memberName": "scalePrice", "nodeType": "MemberAccess", - "referencedDeclaration": 54592, - "src": "4896:16:145", + "referencedDeclaration": 54695, + "src": "4906:16:147", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_uint8_$_t_uint8_$returns$_t_int256_$", "typeString": "function (int256,uint8,uint8) pure returns (int256)" } }, - "id": 55253, + "id": 55356, "isConstant": false, "isLValue": false, "isPure": false, @@ -2648,37 +2790,37 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4896:69:145", + "src": "4906:69:147", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "4884:81:145", + "src": "4894:81:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "id": 55255, + "id": 55358, "nodeType": "ExpressionStatement", - "src": "4884:81:145" + "src": "4894:81:147" }, { "expression": { - "id": 55266, + "id": 55369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 55256, + "id": 55359, "name": "quotePrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55194, - "src": "4979:10:145", + "referencedDeclaration": 55297, + "src": "4989:10:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -2689,12 +2831,12 @@ "rightHandSide": { "arguments": [ { - "id": 55259, + "id": 55362, "name": "quotePrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55194, - "src": "5009:10:145", + "referencedDeclaration": 55297, + "src": "5019:10:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -2706,48 +2848,48 @@ "argumentTypes": [], "expression": { "expression": { - "id": 55260, + "id": 55363, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "5021:4:145", + "referencedDeclaration": 55279, + "src": "5031:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55261, + "id": 55364, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5026:19:145", + "memberLocation": "5036:19:147", "memberName": "buyTokenPriceOracle", "nodeType": "MemberAccess", - "referencedDeclaration": 55152, - "src": "5021:24:145", + "referencedDeclaration": 55255, + "src": "5031:24:147", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54393", + "typeIdentifier": "t_contract$_IAggregatorV3Interface_$54470", "typeString": "contract IAggregatorV3Interface" } }, - "id": 55262, + "id": 55365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5046:8:145", + "memberLocation": "5056:8:147", "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 54354, - "src": "5021:33:145", + "referencedDeclaration": 54431, + "src": "5031:33:147", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 55263, + "id": 55366, "isConstant": false, "isLValue": false, "isPure": false, @@ -2756,7 +2898,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5021:35:145", + "src": "5031:35:147", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -2765,14 +2907,14 @@ }, { "hexValue": "3138", - "id": 55264, + "id": 55367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5058:2:145", + "src": "5068:2:147", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" @@ -2796,33 +2938,33 @@ } ], "expression": { - "id": 55257, + "id": 55360, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "4992:5:145", + "referencedDeclaration": 54696, + "src": "5002:5:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54593_$", + "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54696_$", "typeString": "type(library ConditionalOrdersUtilsLib)" } }, - "id": 55258, + "id": 55361, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "4998:10:145", + "memberLocation": "5008:10:147", "memberName": "scalePrice", "nodeType": "MemberAccess", - "referencedDeclaration": 54592, - "src": "4992:16:145", + "referencedDeclaration": 54695, + "src": "5002:16:147", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_uint8_$_t_uint8_$returns$_t_int256_$", "typeString": "function (int256,uint8,uint8) pure returns (int256)" } }, - "id": 55265, + "id": 55368, "isConstant": false, "isLValue": false, "isPure": false, @@ -2831,26 +2973,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "4992:69:145", + "src": "5002:69:147", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "4979:82:145", + "src": "4989:82:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "id": 55267, + "id": 55370, "nodeType": "ExpressionStatement", - "src": "4979:82:145" + "src": "4989:82:147" }, { "condition": { - "id": 55277, + "id": 55380, "isConstant": false, "isLValue": false, "isPure": false, @@ -2858,7 +3000,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5140:57:145", + "src": "5150:57:147", "subExpression": { "components": [ { @@ -2866,7 +3008,7 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 55275, + "id": 55378, "isConstant": false, "isLValue": false, "isPure": false, @@ -2876,7 +3018,7 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 55272, + "id": 55375, "isConstant": false, "isLValue": false, "isPure": false, @@ -2886,18 +3028,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 55270, + "id": 55373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55268, + "id": 55371, "name": "basePrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55185, - "src": "5142:9:145", + "referencedDeclaration": 55288, + "src": "5152:9:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -2906,18 +3048,18 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 55269, + "id": 55372, "name": "SCALING_FACTOR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55126, - "src": "5154:14:145", + "referencedDeclaration": 55229, + "src": "5164:14:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "5142:26:145", + "src": "5152:26:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -2926,18 +3068,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 55271, + "id": 55374, "name": "quotePrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55194, - "src": "5171:10:145", + "referencedDeclaration": 55297, + "src": "5181:10:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "5142:39:145", + "src": "5152:39:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -2947,47 +3089,47 @@ "operator": "<=", "rightExpression": { "expression": { - "id": 55273, + "id": 55376, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "5185:4:145", + "referencedDeclaration": 55279, + "src": "5195:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55274, + "id": 55377, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5190:6:145", + "memberLocation": "5200:6:147", "memberName": "strike", "nodeType": "MemberAccess", - "referencedDeclaration": 55154, - "src": "5185:11:145", + "referencedDeclaration": 55257, + "src": "5195:11:147", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "5142:54:145", + "src": "5152:54:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55276, + "id": 55379, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5141:56:145", + "src": "5151:56:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2999,24 +3141,24 @@ } }, "documentation": "@dev Scale the strike price to 18 decimals.", - "id": 55285, + "id": 55388, "nodeType": "IfStatement", - "src": "5136:154:145", + "src": "5146:154:147", "trueBody": { - "id": 55284, + "id": 55387, "nodeType": "Block", - "src": "5199:91:145", + "src": "5209:91:147", "statements": [ { "errorCall": { "arguments": [ { - "id": 55281, + "id": 55384, "name": "STRIKE_NOT_REACHED", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55117, - "src": "5256:18:145", + "referencedDeclaration": 55220, + "src": "5266:18:147", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3031,33 +3173,33 @@ } ], "expression": { - "id": 55278, + "id": 55381, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "5224:17:145", + "referencedDeclaration": 54540, + "src": "5234:17:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55280, + "id": 55383, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5242:13:145", + "memberLocation": "5252:13:147", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "5224:31:145", + "referencedDeclaration": 54484, + "src": "5234:31:147", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55282, + "id": 55385, "isConstant": false, "isLValue": false, "isPure": false, @@ -3066,16 +3208,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5224:51:145", + "src": "5234:51:147", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55283, + "id": 55386, "nodeType": "RevertStatement", - "src": "5217:58:145" + "src": "5227:58:147" } ] } @@ -3084,20 +3226,20 @@ }, { "expression": { - "id": 55322, + "id": 55425, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 55287, + "id": 55390, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55172, - "src": "5310:5:145", + "referencedDeclaration": 55275, + "src": "5320:5:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, @@ -3107,83 +3249,83 @@ "arguments": [ { "expression": { - "id": 55290, + "id": 55393, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "5346:4:145", + "referencedDeclaration": 55279, + "src": "5356:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55291, + "id": 55394, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5351:9:145", + "memberLocation": "5361:9:147", "memberName": "sellToken", "nodeType": "MemberAccess", - "referencedDeclaration": 55129, - "src": "5346:14:145", + "referencedDeclaration": 55232, + "src": "5356:14:147", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, { "expression": { - "id": 55292, + "id": 55395, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "5374:4:145", + "referencedDeclaration": 55279, + "src": "5384:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55293, + "id": 55396, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5379:8:145", + "memberLocation": "5389:8:147", "memberName": "buyToken", "nodeType": "MemberAccess", - "referencedDeclaration": 55132, - "src": "5374:13:145", + "referencedDeclaration": 55235, + "src": "5384:13:147", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, { "expression": { - "id": 55294, + "id": 55397, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "5401:4:145", + "referencedDeclaration": 55279, + "src": "5411:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55295, + "id": 55398, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5406:8:145", + "memberLocation": "5416:8:147", "memberName": "receiver", "nodeType": "MemberAccess", - "referencedDeclaration": 55140, - "src": "5401:13:145", + "referencedDeclaration": 55243, + "src": "5411:13:147", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3191,27 +3333,27 @@ }, { "expression": { - "id": 55296, + "id": 55399, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "5428:4:145", + "referencedDeclaration": 55279, + "src": "5438:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55297, + "id": 55400, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5433:10:145", + "memberLocation": "5443:10:147", "memberName": "sellAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 55134, - "src": "5428:15:145", + "referencedDeclaration": 55237, + "src": "5438:15:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3219,27 +3361,27 @@ }, { "expression": { - "id": 55298, + "id": 55401, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "5457:4:145", + "referencedDeclaration": 55279, + "src": "5467:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55299, + "id": 55402, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5462:9:145", + "memberLocation": "5472:9:147", "memberName": "buyAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 55136, - "src": "5457:14:145", + "referencedDeclaration": 55239, + "src": "5467:14:147", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3249,27 +3391,27 @@ "arguments": [ { "expression": { - "id": 55302, + "id": 55405, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "5505:4:145", + "referencedDeclaration": 55279, + "src": "5515:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55303, + "id": 55406, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5510:21:145", + "memberLocation": "5520:21:147", "memberName": "validityBucketSeconds", "nodeType": "MemberAccess", - "referencedDeclaration": 55146, - "src": "5505:26:145", + "referencedDeclaration": 55249, + "src": "5515:26:147", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3284,33 +3426,33 @@ } ], "expression": { - "id": 55300, + "id": 55403, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "5485:5:145", + "referencedDeclaration": 54696, + "src": "5495:5:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54593_$", + "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54696_$", "typeString": "type(library ConditionalOrdersUtilsLib)" } }, - "id": 55301, + "id": 55404, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5491:13:145", + "memberLocation": "5501:13:147", "memberName": "validToBucket", "nodeType": "MemberAccess", - "referencedDeclaration": 54539, - "src": "5485:19:145", + "referencedDeclaration": 54642, + "src": "5495:19:147", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_uint32_$", "typeString": "function (uint32) view returns (uint32)" } }, - "id": 55304, + "id": 55407, "isConstant": false, "isLValue": false, "isPure": false, @@ -3319,7 +3461,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5485:47:145", + "src": "5495:47:147", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -3328,27 +3470,27 @@ }, { "expression": { - "id": 55305, + "id": 55408, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "5546:4:145", + "referencedDeclaration": 55279, + "src": "5556:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55306, + "id": 55409, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5551:7:145", + "memberLocation": "5561:7:147", "memberName": "appData", "nodeType": "MemberAccess", - "referencedDeclaration": 55138, - "src": "5546:12:145", + "referencedDeclaration": 55241, + "src": "5556:12:147", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3356,14 +3498,14 @@ }, { "hexValue": "30", - "id": 55307, + "id": 55410, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5572:1:145", + "src": "5582:1:147", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3373,27 +3515,27 @@ { "condition": { "expression": { - "id": 55308, + "id": 55411, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "5620:4:145", + "referencedDeclaration": 55279, + "src": "5630:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55309, + "id": 55412, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5625:11:145", + "memberLocation": "5635:11:147", "memberName": "isSellOrder", "nodeType": "MemberAccess", - "referencedDeclaration": 55142, - "src": "5620:16:145", + "referencedDeclaration": 55245, + "src": "5630:16:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3401,62 +3543,62 @@ }, "falseExpression": { "expression": { - "id": 55312, + "id": 55415, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "5661:9:145", + "referencedDeclaration": 14459, + "src": "5671:9:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55313, + "id": 55416, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "5671:8:145", + "memberLocation": "5681:8:147", "memberName": "KIND_BUY", "nodeType": "MemberAccess", - "referencedDeclaration": 17133, - "src": "5661:18:145", + "referencedDeclaration": 14346, + "src": "5671:18:147", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 55314, + "id": 55417, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "5620:59:145", + "src": "5630:59:147", "trueExpression": { "expression": { - "id": 55310, + "id": 55413, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "5639:9:145", + "referencedDeclaration": 14459, + "src": "5649:9:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55311, + "id": 55414, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "5649:9:145", + "memberLocation": "5659:9:147", "memberName": "KIND_SELL", "nodeType": "MemberAccess", - "referencedDeclaration": 17129, - "src": "5639:19:145", + "referencedDeclaration": 14342, + "src": "5649:19:147", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3469,27 +3611,27 @@ }, { "expression": { - "id": 55315, + "id": 55418, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55176, - "src": "5693:4:145", + "referencedDeclaration": 55279, + "src": "5703:4:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55157_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55260_memory_ptr", "typeString": "struct StopLoss.Data memory" } }, - "id": 55316, + "id": 55419, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "5698:19:145", + "memberLocation": "5708:19:147", "memberName": "isPartiallyFillable", "nodeType": "MemberAccess", - "referencedDeclaration": 55144, - "src": "5693:24:145", + "referencedDeclaration": 55247, + "src": "5703:24:147", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3497,27 +3639,27 @@ }, { "expression": { - "id": 55317, + "id": 55420, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "5731:9:145", + "referencedDeclaration": 14459, + "src": "5741:9:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55318, + "id": 55421, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "5741:13:145", + "memberLocation": "5751:13:147", "memberName": "BALANCE_ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 17137, - "src": "5731:23:145", + "referencedDeclaration": 14350, + "src": "5741:23:147", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3525,27 +3667,27 @@ }, { "expression": { - "id": 55319, + "id": 55422, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "5768:9:145", + "referencedDeclaration": 14459, + "src": "5778:9:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55320, + "id": 55423, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "5778:13:145", + "memberLocation": "5788:13:147", "memberName": "BALANCE_ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 17137, - "src": "5768:23:145", + "referencedDeclaration": 14350, + "src": "5778:23:147", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3555,11 +3697,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { @@ -3604,33 +3746,33 @@ } ], "expression": { - "id": 55288, + "id": 55391, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "5318:9:145", + "referencedDeclaration": 14459, + "src": "5328:9:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55289, + "id": 55392, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "5328:4:145", + "memberLocation": "5338:4:147", "memberName": "Data", "nodeType": "MemberAccess", - "referencedDeclaration": 17121, - "src": "5318:14:145", + "referencedDeclaration": 14334, + "src": "5328:14:147", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$17121_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$14334_storage_ptr_$", "typeString": "type(struct GPv2Order.Data storage pointer)" } }, - "id": 55321, + "id": 55424, "isConstant": false, "isLValue": false, "isPure": false, @@ -3639,53 +3781,53 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "5318:483:145", + "src": "5328:483:147", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "src": "5310:491:145", + "src": "5320:491:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "id": 55323, + "id": 55426, "nodeType": "ExpressionStatement", - "src": "5310:491:145" + "src": "5320:491:147" } ] }, "baseFunctions": [ - 53476 + 53546 ], "functionSelector": "b8296fc4", "implemented": true, "kind": "function", "modifiers": [], "name": "getTradeableOrder", - "nameLocation": "3428:17:145", + "nameLocation": "3438:17:147", "overrides": { - "id": 55169, + "id": 55272, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "3553:8:145" + "src": "3563:8:147" }, "parameters": { - "id": 55168, + "id": 55271, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55159, + "id": 55262, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 55325, - "src": "3446:7:145", + "scope": 55428, + "src": "3456:7:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3693,10 +3835,10 @@ "typeString": "address" }, "typeName": { - "id": 55158, + "id": 55261, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3446:7:145", + "src": "3456:7:147", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3707,13 +3849,13 @@ }, { "constant": false, - "id": 55161, + "id": 55264, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 55325, - "src": "3455:7:145", + "scope": 55428, + "src": "3465:7:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3721,10 +3863,10 @@ "typeString": "address" }, "typeName": { - "id": 55160, + "id": 55263, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3455:7:145", + "src": "3465:7:147", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3735,13 +3877,13 @@ }, { "constant": false, - "id": 55163, + "id": 55266, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 55325, - "src": "3464:7:145", + "scope": 55428, + "src": "3474:7:147", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3749,10 +3891,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 55162, + "id": 55265, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3464:7:145", + "src": "3474:7:147", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3762,13 +3904,13 @@ }, { "constant": false, - "id": 55165, + "id": 55268, "mutability": "mutable", "name": "staticInput", - "nameLocation": "3488:11:145", + "nameLocation": "3498:11:147", "nodeType": "VariableDeclaration", - "scope": 55325, - "src": "3473:26:145", + "scope": 55428, + "src": "3483:26:147", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -3776,10 +3918,10 @@ "typeString": "bytes" }, "typeName": { - "id": 55164, + "id": 55267, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3473:5:145", + "src": "3483:5:147", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3789,13 +3931,13 @@ }, { "constant": false, - "id": 55167, + "id": 55270, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 55325, - "src": "3501:14:145", + "scope": 55428, + "src": "3511:14:147", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -3803,10 +3945,10 @@ "typeString": "bytes" }, "typeName": { - "id": 55166, + "id": 55269, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3501:5:145", + "src": "3511:5:147", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3815,54 +3957,54 @@ "visibility": "internal" } ], - "src": "3445:71:145" + "src": "3455:71:147" }, "returnParameters": { - "id": 55173, + "id": 55276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55172, + "id": 55275, "mutability": "mutable", "name": "order", - "nameLocation": "3601:5:145", + "nameLocation": "3611:5:147", "nodeType": "VariableDeclaration", - "scope": 55325, - "src": "3579:27:145", + "scope": 55428, + "src": "3589:27:147", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 55171, + "id": 55274, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55170, + "id": 55273, "name": "GPv2Order.Data", "nameLocations": [ - "3579:9:145", - "3589:4:145" + "3589:9:147", + "3599:4:147" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "3579:14:145" + "referencedDeclaration": 14334, + "src": "3589:14:147" }, - "referencedDeclaration": 17121, - "src": "3579:14:145", + "referencedDeclaration": 14334, + "src": "3589:14:147", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "src": "3578:29:145" + "src": "3588:29:147" }, - "scope": 55326, + "scope": 55429, "stateMutability": "view", "virtual": false, "visibility": "public" @@ -3872,46 +4014,50 @@ "baseContracts": [ { "baseName": { - "id": 55119, + "id": 55222, "name": "BaseConditionalOrder", "nameLocations": [ - "1140:20:145" + "1150:20:147" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53501, - "src": "1140:20:145" + "referencedDeclaration": 53578, + "src": "1150:20:147" }, - "id": 55120, + "id": 55223, "nodeType": "InheritanceSpecifier", - "src": "1140:20:145" + "src": "1150:20:147" } ], "canonicalName": "StopLoss", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 55118, + "id": 55221, "nodeType": "StructuredDocumentation", - "src": "650:468:145", + "src": "660:468:147", "text": " @title StopLoss conditional order\n Requires providing two price oracles (e.g. chainlink) and a strike price. If the sellToken price falls below the strike price, the order will be triggered\n @notice Both oracles need to be denominated in the same quote currency (e.g. GNO/ETH and USD/ETH for GNO/USD stop loss orders)\n @dev This order type does not have any replay protection, meaning it may trigger again in the next validityBucket (e.g. 00:15-00:30)" }, "fullyImplemented": true, "linearizedBaseContracts": [ - 55326, - 53501, - 54468, + 55429, + 53578, + 54571, 52197, - 54437 + 54540 ], "name": "StopLoss", - "nameLocation": "1128:8:145", - "scope": 55327, + "nameLocation": "1138:8:147", + "scope": 55430, "usedErrors": [ - 54407 + 54484, + 54488, + 54494, + 54500, + 54504 ] } ], "license": "GPL-3.0" }, - "id": 145 + "id": 147 } \ No newline at end of file diff --git a/out/TWAP.sol/TWAP.json b/out/TWAP.sol/TWAP.json index 26b3ac5..95a5cdf 100644 --- a/out/TWAP.sol/TWAP.json +++ b/out/TWAP.sol/TWAP.json @@ -22,6 +22,60 @@ "name": "OrderNotValid", "type": "error" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollNever", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtBlock", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtEpoch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryNextBlock", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -191,6 +245,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "validateData", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [ { @@ -303,22 +370,22 @@ } ], "bytecode": { - "object": "0x60a060405234801561001057600080fd5b5060405161124638038061124683398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516111b5610091600039600081816093015261037701526111b56000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806314a2a7841461007957806393504c521461008e578063b8296fc4146100da575b600080fd5b61006461005f366004610c70565b6100fa565b60405190151581526020015b60405180910390f35b61008c610087366004610d34565b610193565b005b6100b57f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610070565b6100ed6100e8366004610e22565b6102b0565b6040516100709190610ec1565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061018d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101a48b8b89898989896102b0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b905260228101919091526042902090915089146102a357604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081018290529061031d8686018761106c565b90508060a001516000036103e8576040517f1c7662c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152602482018990527f00000000000000000000000000000000000000000000000000000000000000001690631c7662c890604401602060405180830381865afa1580156103be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e29190611108565b60a08201525b6103f181610476565b91508160a0015163ffffffff1642111561046a57604080518082018252600f81527f6e6f742077697468696e207370616e0000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b50979650505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101919091526104e082610622565b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff16815260200183606001518152602001836080015181526020016105856105808560a001518660c001518760e00151886101000151610a43565b610bd6565b63ffffffff1681526020018361012001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc98152509050919050565b806020015173ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16036106c257604080518082018252600a81527f73616d6520746f6b656e00000000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b805173ffffffffffffffffffffffffffffffffffffffff16158015906107015750602081015173ffffffffffffffffffffffffffffffffffffffff1615155b61076a57604080518082018252600d81527f696e76616c696420746f6b656e00000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60008160600151116107db57604080518082018252601881527f696e76616c696420706172742073656c6c20616d6f756e740000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b600081608001511161084c57604080518082018252601681527f696e76616c6964206d696e2070617274206c696d697400000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60a081015163ffffffff116108c057604080518082018252601281527f696e76616c69642073746172742074696d650000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60018160c001511180156108dc575060c081015163ffffffff10155b61094557604080518082018252601181527f696e76616c6964206e756d207061727473000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60008160e0015111801561096157506301e133808160e0015111155b6109ca57604080518082018252601181527f696e76616c6964206672657175656e6379000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b8060e001518161010001511115610a4057604080518082018252600c81527f696e76616c6964207370616e0000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b50565b6000600184118015610a59575063ffffffff8411155b610a6557610a65611121565b600083118015610a7957506301e133808311155b610a8557610a85611121565b82821115610a9557610a95611121565b42851115610b0257604080518082018252601181527f6265666f72652074776170207374617274000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b82840285014210610b7257604080518082018252601181527f616674657220747761702066696e697368000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60008386420381610b8557610b85611150565b04905082600003610ba3576001848260010102870103915050610bce565b8302850182017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190505b949350505050565b600063ffffffff821115610c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f3220626974730000000000000000000000000000000000000000000000000000606482015260840161029a565b5090565b600060208284031215610c8257600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610cb257600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610a4057600080fd5b8035610ce681610cb9565b919050565b60008083601f840112610cfd57600080fd5b50813567ffffffffffffffff811115610d1557600080fd5b602083019150836020828501011115610d2d57600080fd5b9250929050565b6000806000806000806000806000806102608b8d031215610d5457600080fd5b610d5e8b35610cb9565b8a35995060208b0135610d7081610cb9565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff80821115610da257600080fd5b610dae8e838f01610ceb565b909750955060c08d0135915080821115610dc757600080fd5b50610dd48d828e01610ceb565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20011215610e0d57600080fd5b60e08b0190509295989b9194979a5092959850565b600080600080600080600060a0888a031215610e3d57600080fd5b8735610e4881610cb9565b96506020880135610e5881610cb9565b955060408801359450606088013567ffffffffffffffff80821115610e7c57600080fd5b610e888b838c01610ceb565b909650945060808a0135915080821115610ea157600080fd5b50610eae8a828b01610ceb565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610f07602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610f2f604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610f5b60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610f908285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b81811015610fdc57858101830151858201604001528201610fc0565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b604051610140810167ffffffffffffffff81118282101715611066577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b6000610140828403121561107f57600080fd5b61108761101b565b61109083610cdb565b815261109e60208401610cdb565b60208201526110af60408401610cdb565b6040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152508091505092915050565b60006020828403121561111a57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220733968f1120306412e0bbb577306c40acd8fc83ab6a227fc90457b832d7d29f964736f6c63430008130033", - "sourceMap": "753:1449:147:-:0;;;848:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;900:30:147;;;753:1449;;14:313:168;107:6;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;202:16;;-1:-1:-1;;;;;247:31:168;;237:42;;227:70;;293:1;290;283:12;227:70;316:5;14:313;-1:-1:-1;;;14:313:168:o;:::-;753:1449:147;;;;;;;;;;;;;;;;;", + "object": "0x60a060405234801561001057600080fd5b5060405161159738038061159783398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516115066100916000396000818160ae01526103c401526115066000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806393504c521161005057806393504c52146100a9578063a6ffa36c146100f5578063b8296fc41461010857600080fd5b806301ffc9a71461006c57806314a2a78414610094575b600080fd5b61007f61007a366004610d78565b610128565b60405190151581526020015b60405180910390f35b6100a76100a2366004610e3c565b6101c1565b005b6100d07f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161008b565b6100a7610103366004610f83565b6102de565b61011b610116366004611052565b6102fd565b60405161008b91906110f1565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc40000000000000000000000000000000000000000000000000000000014806101bb57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101d28b8b89898989896102fd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b905260228101919091526042902090915089146102d157604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60405180910390fd5b5050505050505050505050565b6102fa818060200190518101906102f59190611261565b610580565b50565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081018290529061036a868601876112fd565b90508060a00151600003610435576040517f1c7662c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152602482018990527f00000000000000000000000000000000000000000000000000000000000000001690631c7662c890604401602060405180830381865afa15801561040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042f9190611399565b60a08201525b61043e8161099e565b91508160a0015163ffffffff164211156105745760008160e001518260a001514261046991906113e1565b6104739190611423565b61047e90600161145e565b90508160c0015181036104f057604080518082018252600f81527f6e6f742077697468696e207370616e0000000000000000000000000000000000602082015290517f981b64cd0000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60e08201516104ff9082611471565b8260a0015161050e919061145e565b604080518082018252600f81527f6e6f742077697468696e207370616e0000000000000000000000000000000000602082015290517f7e3346370000000000000000000000000000000000000000000000000000000081526102c8929190600401611488565b50979650505050505050565b806020015173ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff160361062057604080518082018252600a81527f73616d6520746f6b656e00000000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b805173ffffffffffffffffffffffffffffffffffffffff161580159061065f5750602081015173ffffffffffffffffffffffffffffffffffffffff1615155b6106c857604080518082018252600d81527f696e76616c696420746f6b656e00000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b600081606001511161073957604080518082018252601881527f696e76616c696420706172742073656c6c20616d6f756e740000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60008160800151116107aa57604080518082018252601681527f696e76616c6964206d696e2070617274206c696d697400000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60a081015163ffffffff1161081e57604080518082018252601281527f696e76616c69642073746172742074696d650000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60018160c0015111801561083a575060c081015163ffffffff10155b6108a357604080518082018252601181527f696e76616c6964206e756d207061727473000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60008160e001511180156108bf57506301e133808160e0015111155b61092857604080518082018252601181527f696e76616c6964206672657175656e6379000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b8060e0015181610100015111156102fa57604080518082018252600c81527f696e76616c6964207370616e0000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810191909152610a0882610580565b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff1681526020018360600151815260200183608001518152602001610aad610aa88560a001518660c001518760e00151886101000151610b4a565b610cde565b63ffffffff1681526020018361012001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc98152509050919050565b6000600184118015610b60575063ffffffff8411155b610b6c57610b6c6114a1565b600083118015610b8057506301e133808311155b610b8c57610b8c6114a1565b82821115610b9c57610b9c6114a1565b42851115610c0a57604080518082018252601181527f6265666f72652074776170207374617274000000000000000000000000000000602082015290517f7e3346370000000000000000000000000000000000000000000000000000000081526102c8918791600401611488565b82840285014210610c7a57604080518082018252601181527f616674657220747761702066696e697368000000000000000000000000000000602082015290517f981b64cd0000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60008386420381610c8d57610c8d6113f4565b04905082600003610cab576001848260010102870103915050610cd6565b8302850182017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190505b949350505050565b600063ffffffff821115610d74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f322062697473000000000000000000000000000000000000000000000000000060648201526084016102c8565b5090565b600060208284031215610d8a57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610dba57600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146102fa57600080fd5b8035610dee81610dc1565b919050565b60008083601f840112610e0557600080fd5b50813567ffffffffffffffff811115610e1d57600080fd5b602083019150836020828501011115610e3557600080fd5b9250929050565b6000806000806000806000806000806102608b8d031215610e5c57600080fd5b610e668b35610dc1565b8a35995060208b0135610e7881610dc1565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff80821115610eaa57600080fd5b610eb68e838f01610df3565b909750955060c08d0135915080821115610ecf57600080fd5b50610edc8d828e01610df3565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20011215610f1557600080fd5b60e08b0190509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610140810167ffffffffffffffff81118282101715610f7d57610f7d610f2a565b60405290565b600060208284031215610f9557600080fd5b813567ffffffffffffffff80821115610fad57600080fd5b818401915084601f830112610fc157600080fd5b813581811115610fd357610fd3610f2a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561101957611019610f2a565b8160405282815287602084870101111561103257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080600080600060a0888a03121561106d57600080fd5b873561107881610dc1565b9650602088013561108881610dc1565b955060408801359450606088013567ffffffffffffffff808211156110ac57600080fd5b6110b88b838c01610df3565b909650945060808a01359150808211156110d157600080fd5b506110de8a828b01610df3565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151611137602084018273ffffffffffffffffffffffffffffffffffffffff169052565b50604083015161115f604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a083015161118b60a084018263ffffffff169052565b5060c083015160c083015260e083015160e0830152610100808401518184015250610120808401516111c08285018215159052565b5050610140838101519083015261016092830151929091019190915290565b6000815180845260005b81811015611205576020818501810151868301820152016111e9565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610dba60208301846111df565b8051610dee81610dc1565b6000610140828403121561127457600080fd5b61127c610f59565b61128583611256565b815261129360208401611256565b60208201526112a460408401611256565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152508091505092915050565b6000610140828403121561131057600080fd5b611318610f59565b61132183610de3565b815261132f60208401610de3565b602082015261134060408401610de3565b6040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152508091505092915050565b6000602082840312156113ab57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156101bb576101bb6113b2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611459577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b808201808211156101bb576101bb6113b2565b80820281158282048414176101bb576101bb6113b2565b828152604060208201526000610cd660408301846111df565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fdfea264697066735822122083a2524be4e019bcb1dcbb9078ab7cf4dc1a9445dce27ae6673fdd67a1ce7e8b64736f6c63430008130033", + "sourceMap": "753:2449:149:-:0;;;848:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;900:30:149;;;753:2449;;14:313:170;107:6;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;202:16;;-1:-1:-1;;;;;247:31:170;;237:42;;227:70;;293:1;290;283:12;227:70;316:5;14:313;-1:-1:-1;;;14:313:170:o;:::-;753:2449:149;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806314a2a7841461007957806393504c521461008e578063b8296fc4146100da575b600080fd5b61006461005f366004610c70565b6100fa565b60405190151581526020015b60405180910390f35b61008c610087366004610d34565b610193565b005b6100b57f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610070565b6100ed6100e8366004610e22565b6102b0565b6040516100709190610ec1565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061018d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101a48b8b89898989896102b0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b905260228101919091526042902090915089146102a357604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081018290529061031d8686018761106c565b90508060a001516000036103e8576040517f1c7662c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152602482018990527f00000000000000000000000000000000000000000000000000000000000000001690631c7662c890604401602060405180830381865afa1580156103be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e29190611108565b60a08201525b6103f181610476565b91508160a0015163ffffffff1642111561046a57604080518082018252600f81527f6e6f742077697468696e207370616e0000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b50979650505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101919091526104e082610622565b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff16815260200183606001518152602001836080015181526020016105856105808560a001518660c001518760e00151886101000151610a43565b610bd6565b63ffffffff1681526020018361012001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc98152509050919050565b806020015173ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16036106c257604080518082018252600a81527f73616d6520746f6b656e00000000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b805173ffffffffffffffffffffffffffffffffffffffff16158015906107015750602081015173ffffffffffffffffffffffffffffffffffffffff1615155b61076a57604080518082018252600d81527f696e76616c696420746f6b656e00000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60008160600151116107db57604080518082018252601881527f696e76616c696420706172742073656c6c20616d6f756e740000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b600081608001511161084c57604080518082018252601681527f696e76616c6964206d696e2070617274206c696d697400000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60a081015163ffffffff116108c057604080518082018252601281527f696e76616c69642073746172742074696d650000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60018160c001511180156108dc575060c081015163ffffffff10155b61094557604080518082018252601181527f696e76616c6964206e756d207061727473000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60008160e0015111801561096157506301e133808160e0015111155b6109ca57604080518082018252601181527f696e76616c6964206672657175656e6379000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b8060e001518161010001511115610a4057604080518082018252600c81527f696e76616c6964207370616e0000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b50565b6000600184118015610a59575063ffffffff8411155b610a6557610a65611121565b600083118015610a7957506301e133808311155b610a8557610a85611121565b82821115610a9557610a95611121565b42851115610b0257604080518082018252601181527f6265666f72652074776170207374617274000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b82840285014210610b7257604080518082018252601181527f616674657220747761702066696e697368000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261029a9190600401610faf565b60008386420381610b8557610b85611150565b04905082600003610ba3576001848260010102870103915050610bce565b8302850182017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190505b949350505050565b600063ffffffff821115610c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f3220626974730000000000000000000000000000000000000000000000000000606482015260840161029a565b5090565b600060208284031215610c8257600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610cb257600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610a4057600080fd5b8035610ce681610cb9565b919050565b60008083601f840112610cfd57600080fd5b50813567ffffffffffffffff811115610d1557600080fd5b602083019150836020828501011115610d2d57600080fd5b9250929050565b6000806000806000806000806000806102608b8d031215610d5457600080fd5b610d5e8b35610cb9565b8a35995060208b0135610d7081610cb9565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff80821115610da257600080fd5b610dae8e838f01610ceb565b909750955060c08d0135915080821115610dc757600080fd5b50610dd48d828e01610ceb565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20011215610e0d57600080fd5b60e08b0190509295989b9194979a5092959850565b600080600080600080600060a0888a031215610e3d57600080fd5b8735610e4881610cb9565b96506020880135610e5881610cb9565b955060408801359450606088013567ffffffffffffffff80821115610e7c57600080fd5b610e888b838c01610ceb565b909650945060808a0135915080821115610ea157600080fd5b50610eae8a828b01610ceb565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151610f07602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151610f2f604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a0830151610f5b60a084018263ffffffff169052565b5060c083015160c083015260e083015160e083015261010080840151818401525061012080840151610f908285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b81811015610fdc57858101830151858201604001528201610fc0565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b604051610140810167ffffffffffffffff81118282101715611066577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b6000610140828403121561107f57600080fd5b61108761101b565b61109083610cdb565b815261109e60208401610cdb565b60208201526110af60408401610cdb565b6040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152508091505092915050565b60006020828403121561111a57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220733968f1120306412e0bbb577306c40acd8fc83ab6a227fc90457b832d7d29f964736f6c63430008130033", - "sourceMap": "753:1449:147:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:220:133;;;;;;:::i;:::-;;:::i;:::-;;;612:14:168;;605:22;587:41;;575:2;560:18;1944:220:133;;;;;;;;867:634;;;;;;:::i;:::-;;:::i;:::-;;797:44:147;;;;;;;;3041:42:168;3029:55;;;3011:74;;2999:2;2984:18;797:44:147;2842:249:168;1068:1132:147;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1944:220:133:-;2031:4;2054:59;;;2069:44;2054:59;;:103;;-1:-1:-1;2117:40:133;;;2132:25;2117:40;2054:103;2047:110;1944:220;-1:-1:-1;;1944:220:133:o;867:634::-;1153:36;1192:65;1210:5;1217:6;1225:3;1230:11;;1243:13;;1192:17;:65::i;:::-;5434:14:63;;;5473:16;;5520:9;5502:28;;5578:3;5557:25;;5595:23;;6176:4;6170:11;6220:10;6194:37;;6274:1;6251:25;;6244:50;;;6337:2;6314:26;;6307:46;;;;6410:2;6381:32;;1153:104:133;;-1:-1:-1;1359:5:133;:56;1353:142;;1471:12;;;;;;;;;;;;;;;;1439:45;;;;;;;1471:12;1439:45;;;:::i;:::-;;;;;;;;1353:142;1143:358;867:634;;;;;;;;;;:::o;1068:1132:147:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1693:41:147;;;;;;:::i;:::-;1664:70;;1857:4;:7;;;1868:1;1857:12;1853:95;;1903:33;;;;;:21;7695:55:168;;;1903:33:147;;;7677:74:168;7767:18;;;7760:34;;;1903:13:147;:21;;;;7650:18:168;;1903:33:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1885:7;;;:52;1853:95;1966:24;1985:4;1966:18;:24::i;:::-;1958:32;;2098:5;:13;;;2079:32;;:15;:32;;2073:121;;2167:15;;;;;;;;;;;;;;;;2135:48;;;;;;;2167:15;2135:48;;;:::i;2073:121::-;1271:929;1068:1132;;;;;;;;;:::o;2828:1141:148:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2988:14:148;2997:4;2988:8;:14::i;:::-;3386:576;;;;;;;;3426:4;:14;;;3386:576;;;;;;3464:4;:13;;;3386:576;;;;;;3501:4;:13;;;3386:576;;;;;;3540:4;:19;;;3386:576;;;;3584:4;:17;;;3386:576;;;;3624:80;:69;3658:4;:7;;;3667:4;:6;;;3675:4;:6;;;3683:4;:9;;;3624:33;:69::i;:::-;:78;:80::i;:::-;3386:576;;;;;;3727:4;:12;;;3386:576;;;;3764:1;3386:576;;;;3785:19;3386:576;;;;3837:5;3386:576;;;;;;3874:23;3386:576;;;;3928:23;3386:576;;;3378:584;;2828:1141;;;:::o;1646:963::-;1730:4;:13;;;1712:31;;:4;:14;;;:31;;;1706:98;;1785:18;;;;;;;;;;;;;;;;1753:51;;;;;;;1785:18;1753:51;;;:::i;1706:98::-;1828:14;;1820:37;;;;;;:77;;-1:-1:-1;1869:13:148;;;;1861:36;;;;1820:77;1814:164;;1953:13;;;;;;;;;;;;;;;;1921:46;;;;;;;1953:13;1921:46;;;:::i;1814:164::-;2015:1;1993:4;:19;;;:23;1987:96;;2058:24;;;;;;;;;;;;;;;;2026:57;;;;;;;2058:24;2026:57;;;:::i;1987:96::-;2119:1;2099:4;:17;;;:21;2093:92;;2162:22;;;;;;;;;;;;;;;;2130:55;;;;;;;2162:22;2130:55;;;:::i;2093:92::-;2201:7;;;;2211:16;-1:-1:-1;2195:93:148;;2269:18;;;;;;;;;;;;;;;;2237:51;;;;;;;2269:18;2237:51;;;:::i;2195:93::-;2313:1;2304:4;:6;;;:10;:40;;;;-1:-1:-1;2318:6:148;;;;2328:16;-1:-1:-1;2318:26:148;2304:40;2298:106;;2386:17;;;;;;;;;;;;;;;;2354:50;;;;;;;2386:17;2354:50;;;:::i;2298:106::-;2429:1;2420:4;:6;;;:10;:32;;;;;2444:8;2434:4;:6;;;:18;;2420:32;2414:98;;2494:17;;;;;;;;;;;;;;;;2462:50;;;;;;;2494:17;2462:50;;;:::i;2414:98::-;2541:4;:6;;;2528:4;:9;;;:19;;2522:80;;2589:12;;;;;;;;;;;;;;;;2557:45;;;;;;;2589:12;2557:45;;;:::i;2522:80::-;1646:963;:::o;993:4716:149:-;1136:15;1471:1;1460:8;:12;:44;;;;-1:-1:-1;1488:16:149;1476:28;;;1460:44;1453:52;;;;:::i;:::-;1534:1;1522:9;:13;:38;;;;;1552:8;1539:9;:21;;1522:38;1515:46;;;;:::i;:::-;1586:9;1578:4;:17;;1571:25;;;;:::i;:::-;1734:15;1721:9;:28;;1715:94;;1791:17;;;;;;;;;;;;;;;;1759:50;;;;;;;1791:17;1759:50;;;:::i;1715:94::-;2481:9;2470:8;:20;2457:9;:34;2439:15;:52;2433:151;;2551:17;;;;;;;;;;;;;;;;2519:50;;;;;;;2551:17;2519:50;;;:::i;2433:151::-;3026:12;3073:9;3060;3042:15;:27;3041:41;;;;;:::i;:::-;;3026:56;;3180:4;3188:1;3180:9;3176:1246;;4406:1;4393:9;4381:4;4388:1;4381:8;4380:22;4367:9;:36;:40;4360:47;;;;;3176:1246;5451:16;;5438:30;;:37;;:41;;;-1:-1:-1;993:4716:149;;;;;;;:::o;15264:187:7:-;15320:6;15355:16;15346:25;;;15338:76;;;;;;;8574:2:168;15338:76:7;;;8556:21:168;8613:2;8593:18;;;8586:30;8652:34;8632:18;;;8625:62;8723:8;8703:18;;;8696:36;8749:19;;15338:76:7;8372:402:168;15338:76:7;-1:-1:-1;15438:5:7;15264:187::o;14:332:168:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:168:o;639:154::-;725:42;718:5;714:54;707:5;704:65;694:93;;783:1;780;773:12;798:134;866:20;;895:31;866:20;895:31;:::i;:::-;798:134;;;:::o;937:347::-;988:8;998:6;1052:3;1045:4;1037:6;1033:17;1029:27;1019:55;;1070:1;1067;1060:12;1019:55;-1:-1:-1;1093:20:168;;1136:18;1125:30;;1122:50;;;1168:1;1165;1158:12;1122:50;1205:4;1197:6;1193:17;1181:29;;1257:3;1250:4;1241:6;1233;1229:19;1225:30;1222:39;1219:59;;;1274:1;1271;1264:12;1219:59;937:347;;;;;:::o;1289:1401::-;1458:6;1466;1474;1482;1490;1498;1506;1514;1522;1530;1583:3;1571:9;1562:7;1558:23;1554:33;1551:53;;;1600:1;1597;1590:12;1551:53;1613:49;1651:9;1638:23;1613:49;:::i;:::-;1694:9;1681:23;1671:33;;1754:2;1743:9;1739:18;1726:32;1767:31;1792:5;1767:31;:::i;:::-;1817:5;-1:-1:-1;1869:2:168;1854:18;;1841:32;;-1:-1:-1;1920:2:168;1905:18;;1892:32;;-1:-1:-1;1971:3:168;1956:19;;1943:33;;-1:-1:-1;2027:3:168;2012:19;;1999:33;2051:18;2081:14;;;2078:34;;;2108:1;2105;2098:12;2078:34;2147:58;2197:7;2188:6;2177:9;2173:22;2147:58;:::i;:::-;2224:8;;-1:-1:-1;2121:84:168;-1:-1:-1;2312:3:168;2297:19;;2284:33;;-1:-1:-1;2329:16:168;;;2326:36;;;2358:1;2355;2348:12;2326:36;;2397:60;2449:7;2438:8;2427:9;2423:24;2397:60;:::i;:::-;2476:8;;-1:-1:-1;2371:86:168;-1:-1:-1;;2625:3:168;2531:23;;;2556:66;2527:96;2523:106;2520:126;;;2642:1;2639;2632:12;2520:126;2680:3;2669:9;2665:19;2655:29;;1289:1401;;;;;;;;;;;;;:::o;3096:1063::-;3213:6;3221;3229;3237;3245;3253;3261;3314:3;3302:9;3293:7;3289:23;3285:33;3282:53;;;3331:1;3328;3321:12;3282:53;3370:9;3357:23;3389:31;3414:5;3389:31;:::i;:::-;3439:5;-1:-1:-1;3496:2:168;3481:18;;3468:32;3509:33;3468:32;3509:33;:::i;:::-;3561:7;-1:-1:-1;3615:2:168;3600:18;;3587:32;;-1:-1:-1;3670:2:168;3655:18;;3642:32;3693:18;3723:14;;;3720:34;;;3750:1;3747;3740:12;3720:34;3789:58;3839:7;3830:6;3819:9;3815:22;3789:58;:::i;:::-;3866:8;;-1:-1:-1;3763:84:168;-1:-1:-1;3954:3:168;3939:19;;3926:33;;-1:-1:-1;3971:16:168;;;3968:36;;;4000:1;3997;3990:12;3968:36;;4039:60;4091:7;4080:8;4069:9;4065:24;4039:60;:::i;:::-;3096:1063;;;;-1:-1:-1;3096:1063:168;;-1:-1:-1;3096:1063:168;;;;4013:86;;-1:-1:-1;;;3096:1063:168:o;4263:1285::-;4490:13;;2787:42;2776:54;2764:67;;4443:3;4428:19;;4562:4;4554:6;4550:17;4544:24;4577:69;4640:4;4629:9;4625:20;4611:12;2787:42;2776:54;2764:67;;2695:142;4577:69;;4695:4;4687:6;4683:17;4677:24;4710:71;4775:4;4764:9;4760:20;4744:14;2787:42;2776:54;2764:67;;2695:142;4710:71;;4837:4;4829:6;4825:17;4819:24;4812:4;4801:9;4797:20;4790:54;4900:4;4892:6;4888:17;4882:24;4875:4;4864:9;4860:20;4853:54;4956:4;4948:6;4944:17;4938:24;4971:55;5020:4;5009:9;5005:20;4989:14;4240:10;4229:22;4217:35;;4164:94;4971:55;;5082:4;5074:6;5070:17;5064:24;5057:4;5046:9;5042:20;5035:54;5145:4;5137:6;5133:17;5127:24;5120:4;5109:9;5105:20;5098:54;5171:6;5231:2;5223:6;5219:15;5213:22;5208:2;5197:9;5193:18;5186:50;;5255:6;5310:2;5302:6;5298:15;5292:22;5323:51;5370:2;5359:9;5355:18;5339:14;421:13;414:21;402:34;;351:91;5323:51;-1:-1:-1;;5393:6:168;5441:15;;;5435:22;5415:18;;;5408:50;5477:6;5525:15;;;5519:22;5499:18;;;;5492:50;;;;4263:1285;:::o;5553:607::-;5665:4;5694:2;5723;5712:9;5705:21;5755:6;5749:13;5798:6;5793:2;5782:9;5778:18;5771:34;5823:1;5833:140;5847:6;5844:1;5841:13;5833:140;;;5942:14;;;5938:23;;5932:30;5908:17;;;5927:2;5904:26;5897:66;5862:10;;5833:140;;;5837:3;6022:1;6017:2;6008:6;5997:9;5993:22;5989:31;5982:42;6151:2;6081:66;6076:2;6068:6;6064:15;6060:88;6049:9;6045:104;6041:113;6033:121;;;;5553:607;;;;:::o;6165:401::-;6232:2;6226:9;6274:3;6262:16;;6308:18;6293:34;;6329:22;;;6290:62;6287:242;;;6385:77;6382:1;6375:88;6486:4;6483:1;6476:15;6514:4;6511:1;6504:15;6287:242;6545:2;6538:22;6165:401;:::o;6571:927::-;6653:6;6706:3;6694:9;6685:7;6681:23;6677:33;6674:53;;;6723:1;6720;6713:12;6674:53;6749:17;;:::i;:::-;6789:29;6808:9;6789:29;:::i;:::-;6782:5;6775:44;6851:38;6885:2;6874:9;6870:18;6851:38;:::i;:::-;6846:2;6839:5;6835:14;6828:62;6922:38;6956:2;6945:9;6941:18;6922:38;:::i;:::-;6917:2;6910:5;6906:14;6899:62;7021:2;7010:9;7006:18;6993:32;6988:2;6981:5;6977:14;6970:56;7087:3;7076:9;7072:19;7059:33;7053:3;7046:5;7042:15;7035:58;7154:3;7143:9;7139:19;7126:33;7120:3;7113:5;7109:15;7102:58;7221:3;7210:9;7206:19;7193:33;7187:3;7180:5;7176:15;7169:58;7288:3;7277:9;7273:19;7260:33;7254:3;7247:5;7243:15;7236:58;7313:3;7376:2;7365:9;7361:18;7348:32;7343:2;7336:5;7332:14;7325:56;;7400:3;7463:2;7452:9;7448:18;7435:32;7430:2;7423:5;7419:14;7412:56;;7487:5;7477:15;;;6571:927;;;;:::o;7805:184::-;7875:6;7928:2;7916:9;7907:7;7903:23;7899:32;7896:52;;;7944:1;7941;7934:12;7896:52;-1:-1:-1;7967:16:168;;7805:184;-1:-1:-1;7805:184:168:o;7994:::-;8046:77;8043:1;8036:88;8143:4;8140:1;8133:15;8167:4;8164:1;8157:15;8183:184;8235:77;8232:1;8225:88;8332:4;8329:1;8322:15;8356:4;8353:1;8346:15", + "object": "0x608060405234801561001057600080fd5b50600436106100675760003560e01c806393504c521161005057806393504c52146100a9578063a6ffa36c146100f5578063b8296fc41461010857600080fd5b806301ffc9a71461006c57806314a2a78414610094575b600080fd5b61007f61007a366004610d78565b610128565b60405190151581526020015b60405180910390f35b6100a76100a2366004610e3c565b6101c1565b005b6100d07f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161008b565b6100a7610103366004610f83565b6102de565b61011b610116366004611052565b6102fd565b60405161008b91906110f1565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc40000000000000000000000000000000000000000000000000000000014806101bb57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101d28b8b89898989896102fd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b905260228101919091526042902090915089146102d157604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60405180910390fd5b5050505050505050505050565b6102fa818060200190518101906102f59190611261565b610580565b50565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081018290529061036a868601876112fd565b90508060a00151600003610435576040517f1c7662c800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152602482018990527f00000000000000000000000000000000000000000000000000000000000000001690631c7662c890604401602060405180830381865afa15801561040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042f9190611399565b60a08201525b61043e8161099e565b91508160a0015163ffffffff164211156105745760008160e001518260a001514261046991906113e1565b6104739190611423565b61047e90600161145e565b90508160c0015181036104f057604080518082018252600f81527f6e6f742077697468696e207370616e0000000000000000000000000000000000602082015290517f981b64cd0000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60e08201516104ff9082611471565b8260a0015161050e919061145e565b604080518082018252600f81527f6e6f742077697468696e207370616e0000000000000000000000000000000000602082015290517f7e3346370000000000000000000000000000000000000000000000000000000081526102c8929190600401611488565b50979650505050505050565b806020015173ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff160361062057604080518082018252600a81527f73616d6520746f6b656e00000000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b805173ffffffffffffffffffffffffffffffffffffffff161580159061065f5750602081015173ffffffffffffffffffffffffffffffffffffffff1615155b6106c857604080518082018252600d81527f696e76616c696420746f6b656e00000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b600081606001511161073957604080518082018252601881527f696e76616c696420706172742073656c6c20616d6f756e740000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60008160800151116107aa57604080518082018252601681527f696e76616c6964206d696e2070617274206c696d697400000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60a081015163ffffffff1161081e57604080518082018252601281527f696e76616c69642073746172742074696d650000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60018160c0015111801561083a575060c081015163ffffffff10155b6108a357604080518082018252601181527f696e76616c6964206e756d207061727473000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60008160e001511180156108bf57506301e133808160e0015111155b61092857604080518082018252601181527f696e76616c6964206672657175656e6379000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b8060e0015181610100015111156102fa57604080518082018252600c81527f696e76616c6964207370616e0000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810191909152610a0882610580565b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff1681526020018360600151815260200183608001518152602001610aad610aa88560a001518660c001518760e00151886101000151610b4a565b610cde565b63ffffffff1681526020018361012001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc98152509050919050565b6000600184118015610b60575063ffffffff8411155b610b6c57610b6c6114a1565b600083118015610b8057506301e133808311155b610b8c57610b8c6114a1565b82821115610b9c57610b9c6114a1565b42851115610c0a57604080518082018252601181527f6265666f72652074776170207374617274000000000000000000000000000000602082015290517f7e3346370000000000000000000000000000000000000000000000000000000081526102c8918791600401611488565b82840285014210610c7a57604080518082018252601181527f616674657220747761702066696e697368000000000000000000000000000000602082015290517f981b64cd0000000000000000000000000000000000000000000000000000000081526102c89190600401611243565b60008386420381610c8d57610c8d6113f4565b04905082600003610cab576001848260010102870103915050610cd6565b8302850182017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190505b949350505050565b600063ffffffff821115610d74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f322062697473000000000000000000000000000000000000000000000000000060648201526084016102c8565b5090565b600060208284031215610d8a57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610dba57600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146102fa57600080fd5b8035610dee81610dc1565b919050565b60008083601f840112610e0557600080fd5b50813567ffffffffffffffff811115610e1d57600080fd5b602083019150836020828501011115610e3557600080fd5b9250929050565b6000806000806000806000806000806102608b8d031215610e5c57600080fd5b610e668b35610dc1565b8a35995060208b0135610e7881610dc1565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff80821115610eaa57600080fd5b610eb68e838f01610df3565b909750955060c08d0135915080821115610ecf57600080fd5b50610edc8d828e01610df3565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20011215610f1557600080fd5b60e08b0190509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610140810167ffffffffffffffff81118282101715610f7d57610f7d610f2a565b60405290565b600060208284031215610f9557600080fd5b813567ffffffffffffffff80821115610fad57600080fd5b818401915084601f830112610fc157600080fd5b813581811115610fd357610fd3610f2a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561101957611019610f2a565b8160405282815287602084870101111561103257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080600080600060a0888a03121561106d57600080fd5b873561107881610dc1565b9650602088013561108881610dc1565b955060408801359450606088013567ffffffffffffffff808211156110ac57600080fd5b6110b88b838c01610df3565b909650945060808a01359150808211156110d157600080fd5b506110de8a828b01610df3565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff16815261018081016020830151611137602084018273ffffffffffffffffffffffffffffffffffffffff169052565b50604083015161115f604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a083015161118b60a084018263ffffffff169052565b5060c083015160c083015260e083015160e0830152610100808401518184015250610120808401516111c08285018215159052565b5050610140838101519083015261016092830151929091019190915290565b6000815180845260005b81811015611205576020818501810151868301820152016111e9565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610dba60208301846111df565b8051610dee81610dc1565b6000610140828403121561127457600080fd5b61127c610f59565b61128583611256565b815261129360208401611256565b60208201526112a460408401611256565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152508091505092915050565b6000610140828403121561131057600080fd5b611318610f59565b61132183610de3565b815261132f60208401610de3565b602082015261134060408401610de3565b6040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152508091505092915050565b6000602082840312156113ab57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156101bb576101bb6113b2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611459577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b808201808211156101bb576101bb6113b2565b80820281158282048414176101bb576101bb6113b2565b828152604060208201526000610cd660408301846111df565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fdfea264697066735822122083a2524be4e019bcb1dcbb9078ab7cf4dc1a9445dce27ae6673fdd67a1ce7e8b64736f6c63430008130033", + "sourceMap": "753:2449:149:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:220:135;;;;;;:::i;:::-;;:::i;:::-;;;612:14:170;;605:22;587:41;;575:2;560:18;1944:220:135;;;;;;;;867:634;;;;;;:::i;:::-;;:::i;:::-;;797:44:149;;;;;;;;3041:42:170;3029:55;;;3011:74;;2999:2;2984:18;797:44:149;2842:249:170;3065:135:149;;;;;;:::i;:::-;;:::i;1068:1938::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1944:220:135:-;2031:4;2054:59;;;2069:44;2054:59;;:103;;-1:-1:-1;2117:40:135;;;2132:25;2117:40;2054:103;2047:110;1944:220;-1:-1:-1;;1944:220:135:o;867:634::-;1153:36;1192:65;1210:5;1217:6;1225:3;1230:11;;1243:13;;1192:17;:65::i;:::-;5434:14:55;;;5473:16;;5520:9;5502:28;;5578:3;5557:25;;5595:23;;6176:4;6170:11;6220:10;6194:37;;6274:1;6251:25;;6244:50;;;6337:2;6314:26;;6307:46;;;;6410:2;6381:32;;1153:104:135;;-1:-1:-1;1359:5:135;:56;1353:142;;1471:12;;;;;;;;;;;;;;;;1439:45;;;;;;;1471:12;1439:45;;;:::i;:::-;;;;;;;;1353:142;1143:358;867:634;;;;;;;;;;:::o;3065:135:149:-;3139:54;3169:4;3158:34;;;;;;;;;;;;:::i;:::-;3139:18;:54::i;:::-;3065:135;:::o;1068:1938::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1693:41:149;;;;;;:::i;:::-;1664:70;;1857:4;:7;;;1868:1;1857:12;1853:95;;1903:33;;;;;:21;9917:55:170;;;1903:33:149;;;9899:74:170;9989:18;;;9982:34;;;1903:13:149;:21;;;;9872:18:170;;1903:33:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1885:7;;;:52;1853:95;1966:24;1985:4;1966:18;:24::i;:::-;1958:32;;2313:5;:13;;;2294:32;;:15;:32;;2288:712;;2402:19;2455:4;:6;;;2444:4;:7;;;2426:15;:25;;;;:::i;:::-;2425:36;;;;:::i;:::-;2424:42;;2465:1;2424:42;:::i;:::-;2402:64;;2500:4;:6;;;2485:11;:21;2481:509;;2698:15;;;;;;;;;;;;;;;;2670:44;;;;;;;2698:15;2670:44;;;:::i;2481:509::-;2950:6;;;;2936:20;;:11;:20;:::i;:::-;2925:4;:7;;;:32;;;;:::i;:::-;2959:15;;;;;;;;;;;;;;;;2892:83;;;;;;;;2959:15;2892:83;;;:::i;2288:712::-;1271:1735;1068:1938;;;;;;;;;:::o;1666:963:150:-;1750:4;:13;;;1732:31;;:4;:14;;;:31;;;1726:98;;1805:18;;;;;;;;;;;;;;;;1773:51;;;;;;;1805:18;1773:51;;;:::i;1726:98::-;1848:14;;1840:37;;;;;;:77;;-1:-1:-1;1889:13:150;;;;1881:36;;;;1840:77;1834:164;;1973:13;;;;;;;;;;;;;;;;1941:46;;;;;;;1973:13;1941:46;;;:::i;1834:164::-;2035:1;2013:4;:19;;;:23;2007:96;;2078:24;;;;;;;;;;;;;;;;2046:57;;;;;;;2078:24;2046:57;;;:::i;2007:96::-;2139:1;2119:4;:17;;;:21;2113:92;;2182:22;;;;;;;;;;;;;;;;2150:55;;;;;;;2182:22;2150:55;;;:::i;2113:92::-;2221:7;;;;2231:16;-1:-1:-1;2215:93:150;;2289:18;;;;;;;;;;;;;;;;2257:51;;;;;;;2289:18;2257:51;;;:::i;2215:93::-;2333:1;2324:4;:6;;;:10;:40;;;;-1:-1:-1;2338:6:150;;;;2348:16;-1:-1:-1;2338:26:150;2324:40;2318:106;;2406:17;;;;;;;;;;;;;;;;2374:50;;;;;;;2406:17;2374:50;;;:::i;2318:106::-;2449:1;2440:4;:6;;;:10;:32;;;;;2464:8;2454:4;:6;;;:18;;2440:32;2434:98;;2514:17;;;;;;;;;;;;;;;;2482:50;;;;;;;2514:17;2482:50;;;:::i;2434:98::-;2561:4;:6;;;2548:4;:9;;;:19;;2542:80;;2609:12;;;;;;;;;;;;;;;;2577:45;;;;;;;2609:12;2577:45;;;:::i;2848:1141::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3008:14:150;3017:4;3008:8;:14::i;:::-;3406:576;;;;;;;;3446:4;:14;;;3406:576;;;;;;3484:4;:13;;;3406:576;;;;;;3521:4;:13;;;3406:576;;;;;;3560:4;:19;;;3406:576;;;;3604:4;:17;;;3406:576;;;;3644:80;:69;3678:4;:7;;;3687:4;:6;;;3695:4;:6;;;3703:4;:9;;;3644:33;:69::i;:::-;:78;:80::i;:::-;3406:576;;;;;;3747:4;:12;;;3406:576;;;;3784:1;3406:576;;;;3805:19;3406:576;;;;3857:5;3406:576;;;;;;3894:23;3406:576;;;;3948:23;3406:576;;;3398:584;;2848:1141;;;:::o;993:4724:151:-;1136:15;1471:1;1460:8;:12;:44;;;;-1:-1:-1;1488:16:151;1476:28;;;1460:44;1453:52;;;;:::i;:::-;1534:1;1522:9;:13;:38;;;;;1552:8;1539:9;:21;;1522:38;1515:46;;;;:::i;:::-;1586:9;1578:4;:17;;1571:25;;;;:::i;:::-;1734:15;1721:9;:28;;1715:106;;1803:17;;;;;;;;;;;;;;;;1759:62;;;;;;;1792:9;;1759:62;;;:::i;1715:106::-;2493:9;2482:8;:20;2469:9;:34;2451:15;:52;2445:147;;2559:17;;;;;;;;;;;;;;;;2531:46;;;;;;;2559:17;2531:46;;;:::i;2445:147::-;3034:12;3081:9;3068;3050:15;:27;3049:41;;;;;:::i;:::-;;3034:56;;3188:4;3196:1;3188:9;3184:1246;;4414:1;4401:9;4389:4;4396:1;4389:8;4388:22;4375:9;:36;:40;4368:47;;;;;3184:1246;5459:16;;5446:30;;:37;;:41;;;-1:-1:-1;993:4724:151;;;;;;;:::o;15264:187:92:-;15320:6;15355:16;15346:25;;;15338:76;;;;;;;11996:2:170;15338:76:92;;;11978:21:170;12035:2;12015:18;;;12008:30;12074:34;12054:18;;;12047:62;12145:8;12125:18;;;12118:36;12171:19;;15338:76:92;11794:402:170;15338:76:92;-1:-1:-1;15438:5:92;15264:187::o;14:332:170:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:170:o;639:154::-;725:42;718:5;714:54;707:5;704:65;694:93;;783:1;780;773:12;798:134;866:20;;895:31;866:20;895:31;:::i;:::-;798:134;;;:::o;937:347::-;988:8;998:6;1052:3;1045:4;1037:6;1033:17;1029:27;1019:55;;1070:1;1067;1060:12;1019:55;-1:-1:-1;1093:20:170;;1136:18;1125:30;;1122:50;;;1168:1;1165;1158:12;1122:50;1205:4;1197:6;1193:17;1181:29;;1257:3;1250:4;1241:6;1233;1229:19;1225:30;1222:39;1219:59;;;1274:1;1271;1264:12;1219:59;937:347;;;;;:::o;1289:1401::-;1458:6;1466;1474;1482;1490;1498;1506;1514;1522;1530;1583:3;1571:9;1562:7;1558:23;1554:33;1551:53;;;1600:1;1597;1590:12;1551:53;1613:49;1651:9;1638:23;1613:49;:::i;:::-;1694:9;1681:23;1671:33;;1754:2;1743:9;1739:18;1726:32;1767:31;1792:5;1767:31;:::i;:::-;1817:5;-1:-1:-1;1869:2:170;1854:18;;1841:32;;-1:-1:-1;1920:2:170;1905:18;;1892:32;;-1:-1:-1;1971:3:170;1956:19;;1943:33;;-1:-1:-1;2027:3:170;2012:19;;1999:33;2051:18;2081:14;;;2078:34;;;2108:1;2105;2098:12;2078:34;2147:58;2197:7;2188:6;2177:9;2173:22;2147:58;:::i;:::-;2224:8;;-1:-1:-1;2121:84:170;-1:-1:-1;2312:3:170;2297:19;;2284:33;;-1:-1:-1;2329:16:170;;;2326:36;;;2358:1;2355;2348:12;2326:36;;2397:60;2449:7;2438:8;2427:9;2423:24;2397:60;:::i;:::-;2476:8;;-1:-1:-1;2371:86:170;-1:-1:-1;;2625:3:170;2531:23;;;2556:66;2527:96;2523:106;2520:126;;;2642:1;2639;2632:12;2520:126;2680:3;2669:9;2665:19;2655:29;;1289:1401;;;;;;;;;;;;;:::o;3096:184::-;3148:77;3145:1;3138:88;3245:4;3242:1;3235:15;3269:4;3266:1;3259:15;3285:247;3352:2;3346:9;3394:3;3382:16;;3428:18;3413:34;;3449:22;;;3410:62;3407:88;;;3475:18;;:::i;:::-;3511:2;3504:22;3285:247;:::o;3537:980::-;3605:6;3658:2;3646:9;3637:7;3633:23;3629:32;3626:52;;;3674:1;3671;3664:12;3626:52;3714:9;3701:23;3743:18;3784:2;3776:6;3773:14;3770:34;;;3800:1;3797;3790:12;3770:34;3838:6;3827:9;3823:22;3813:32;;3883:7;3876:4;3872:2;3868:13;3864:27;3854:55;;3905:1;3902;3895:12;3854:55;3941:2;3928:16;3963:2;3959;3956:10;3953:36;;;3969:18;;:::i;:::-;4103:2;4097:9;4165:4;4157:13;;4008:66;4153:22;;;4177:2;4149:31;4145:40;4133:53;;;4201:18;;;4221:22;;;4198:46;4195:72;;;4247:18;;:::i;:::-;4287:10;4283:2;4276:22;4322:2;4314:6;4307:18;4362:7;4357:2;4352;4348;4344:11;4340:20;4337:33;4334:53;;;4383:1;4380;4373:12;4334:53;4439:2;4434;4430;4426:11;4421:2;4413:6;4409:15;4396:46;4484:1;4462:15;;;4479:2;4458:24;4451:35;;;;-1:-1:-1;4466:6:170;3537:980;-1:-1:-1;;;;;3537:980:170:o;4522:1063::-;4639:6;4647;4655;4663;4671;4679;4687;4740:3;4728:9;4719:7;4715:23;4711:33;4708:53;;;4757:1;4754;4747:12;4708:53;4796:9;4783:23;4815:31;4840:5;4815:31;:::i;:::-;4865:5;-1:-1:-1;4922:2:170;4907:18;;4894:32;4935:33;4894:32;4935:33;:::i;:::-;4987:7;-1:-1:-1;5041:2:170;5026:18;;5013:32;;-1:-1:-1;5096:2:170;5081:18;;5068:32;5119:18;5149:14;;;5146:34;;;5176:1;5173;5166:12;5146:34;5215:58;5265:7;5256:6;5245:9;5241:22;5215:58;:::i;:::-;5292:8;;-1:-1:-1;5189:84:170;-1:-1:-1;5380:3:170;5365:19;;5352:33;;-1:-1:-1;5397:16:170;;;5394:36;;;5426:1;5423;5416:12;5394:36;;5465:60;5517:7;5506:8;5495:9;5491:24;5465:60;:::i;:::-;4522:1063;;;;-1:-1:-1;4522:1063:170;;-1:-1:-1;4522:1063:170;;;;5439:86;;-1:-1:-1;;;4522:1063:170:o;5689:1285::-;5916:13;;2787:42;2776:54;2764:67;;5869:3;5854:19;;5988:4;5980:6;5976:17;5970:24;6003:69;6066:4;6055:9;6051:20;6037:12;2787:42;2776:54;2764:67;;2695:142;6003:69;;6121:4;6113:6;6109:17;6103:24;6136:71;6201:4;6190:9;6186:20;6170:14;2787:42;2776:54;2764:67;;2695:142;6136:71;;6263:4;6255:6;6251:17;6245:24;6238:4;6227:9;6223:20;6216:54;6326:4;6318:6;6314:17;6308:24;6301:4;6290:9;6286:20;6279:54;6382:4;6374:6;6370:17;6364:24;6397:55;6446:4;6435:9;6431:20;6415:14;5666:10;5655:22;5643:35;;5590:94;6397:55;;6508:4;6500:6;6496:17;6490:24;6483:4;6472:9;6468:20;6461:54;6571:4;6563:6;6559:17;6553:24;6546:4;6535:9;6531:20;6524:54;6597:6;6657:2;6649:6;6645:15;6639:22;6634:2;6623:9;6619:18;6612:50;;6681:6;6736:2;6728:6;6724:15;6718:22;6749:51;6796:2;6785:9;6781:18;6765:14;421:13;414:21;402:34;;351:91;6749:51;-1:-1:-1;;6819:6:170;6867:15;;;6861:22;6841:18;;;6834:50;6903:6;6951:15;;;6945:22;6925:18;;;;6918:50;;;;5689:1285;:::o;6979:482::-;7021:3;7059:5;7053:12;7086:6;7081:3;7074:19;7111:1;7121:162;7135:6;7132:1;7129:13;7121:162;;;7197:4;7253:13;;;7249:22;;7243:29;7225:11;;;7221:20;;7214:59;7150:12;7121:162;;;7125:3;7328:1;7321:4;7312:6;7307:3;7303:16;7299:27;7292:38;7450:4;7380:66;7375:2;7367:6;7363:15;7359:88;7354:3;7350:98;7346:109;7339:116;;;6979:482;;;;:::o;7466:220::-;7615:2;7604:9;7597:21;7578:4;7635:45;7676:2;7665:9;7661:18;7653:6;7635:45;:::i;7691:146::-;7778:13;;7800:31;7778:13;7800:31;:::i;7842:946::-;7935:6;7988:3;7976:9;7967:7;7963:23;7959:33;7956:53;;;8005:1;8002;7995:12;7956:53;8031:17;;:::i;:::-;8071:48;8109:9;8071:48;:::i;:::-;8064:5;8057:63;8152:57;8205:2;8194:9;8190:18;8152:57;:::i;:::-;8147:2;8140:5;8136:14;8129:81;8242:57;8295:2;8284:9;8280:18;8242:57;:::i;:::-;8237:2;8230:5;8226:14;8219:81;8353:2;8342:9;8338:18;8332:25;8327:2;8320:5;8316:14;8309:49;8412:3;8401:9;8397:19;8391:26;8385:3;8378:5;8374:15;8367:51;8472:3;8461:9;8457:19;8451:26;8445:3;8438:5;8434:15;8427:51;8532:3;8521:9;8517:19;8511:26;8505:3;8498:5;8494:15;8487:51;8592:3;8581:9;8577:19;8571:26;8565:3;8558:5;8554:15;8547:51;8617:3;8673:2;8662:9;8658:18;8652:25;8647:2;8640:5;8636:14;8629:49;;8697:3;8753:2;8742:9;8738:18;8732:25;8727:2;8720:5;8716:14;8709:49;;8777:5;8767:15;;;7842:946;;;;:::o;8793:927::-;8875:6;8928:3;8916:9;8907:7;8903:23;8899:33;8896:53;;;8945:1;8942;8935:12;8896:53;8971:17;;:::i;:::-;9011:29;9030:9;9011:29;:::i;:::-;9004:5;8997:44;9073:38;9107:2;9096:9;9092:18;9073:38;:::i;:::-;9068:2;9061:5;9057:14;9050:62;9144:38;9178:2;9167:9;9163:18;9144:38;:::i;:::-;9139:2;9132:5;9128:14;9121:62;9243:2;9232:9;9228:18;9215:32;9210:2;9203:5;9199:14;9192:56;9309:3;9298:9;9294:19;9281:33;9275:3;9268:5;9264:15;9257:58;9376:3;9365:9;9361:19;9348:33;9342:3;9335:5;9331:15;9324:58;9443:3;9432:9;9428:19;9415:33;9409:3;9402:5;9398:15;9391:58;9510:3;9499:9;9495:19;9482:33;9476:3;9469:5;9465:15;9458:58;9535:3;9598:2;9587:9;9583:18;9570:32;9565:2;9558:5;9554:14;9547:56;;9622:3;9685:2;9674:9;9670:18;9657:32;9652:2;9645:5;9641:14;9634:56;;9709:5;9699:15;;;8793:927;;;;:::o;10027:184::-;10097:6;10150:2;10138:9;10129:7;10125:23;10121:32;10118:52;;;10166:1;10163;10156:12;10118:52;-1:-1:-1;10189:16:170;;10027:184;-1:-1:-1;10027:184:170:o;10216:::-;10268:77;10265:1;10258:88;10365:4;10362:1;10355:15;10389:4;10386:1;10379:15;10405:128;10472:9;;;10493:11;;;10490:37;;;10507:18;;:::i;10538:184::-;10590:77;10587:1;10580:88;10687:4;10684:1;10677:15;10711:4;10708:1;10701:15;10727:274;10767:1;10793;10783:189;;10828:77;10825:1;10818:88;10929:4;10926:1;10919:15;10957:4;10954:1;10947:15;10783:189;-1:-1:-1;10986:9:170;;10727:274::o;11006:125::-;11071:9;;;11092:10;;;11089:36;;;11105:18;;:::i;11136:168::-;11209:9;;;11240;;11257:15;;;11251:22;;11237:37;11227:71;;11278:18;;:::i;11309:291::-;11486:6;11475:9;11468:25;11529:2;11524;11513:9;11509:18;11502:30;11449:4;11549:45;11590:2;11579:9;11575:18;11567:6;11549:45;:::i;11605:184::-;11657:77;11654:1;11647:88;11754:4;11751:1;11744:15;11778:4;11775:1;11768:15", "linkReferences": {}, "immutableReferences": { - "55454": [ + "55557": [ { - "start": 147, + "start": 174, "length": 32 }, { - "start": 887, + "start": 964, "length": 32 } ] @@ -328,9 +395,10 @@ "composableCow()": "93504c52", "getTradeableOrder(address,address,bytes32,bytes,bytes)": "b8296fc4", "supportsInterface(bytes4)": "01ffc9a7", + "validateData(bytes)": "a6ffa36c", "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": "14a2a784" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ComposableCoW\",\"name\":\"_composableCow\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"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\"},{\"inputs\":[],\"name\":\"composableCow\",\"outputs\":[{\"internalType\":\"contract ComposableCoW\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\":\"\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Designed to be used with the CoW Protocol Conditional Order Framework.\",\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"getTradeableOrder(address,address,bytes32,bytes,bytes)\":{\"details\":\"`owner`, `sender` and `offchainInput` is not used.\",\"params\":{\"ctx\":\"the context of the order (bytes32(0) if merkle tree is used, otherwise the H(params))\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the parent `isValidSignature` call\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"},\"returns\":{\"order\":\"the tradeable order for submission to the CoW Protocol API\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"TWAP Conditional Order\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"notice\":\"TWAP conditional orders allow for splitting an order into a series of orders that are executed at a fixed interval. This is useful for ensuring that a trade is executed at a specific price, even if the price of the token changes during the trade.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/twap/TWAP.sol\":\"TWAP\"},\"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/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x687142c633b33037c3137b6bfeef848a44eb1ef83fb5fdb59a3affdf28a46516\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d26b5d0495ffb4c36b1abdf003f43ab478c324752ce60847af8019bad5a3ad0\",\"dweb:/ipfs/QmQGcXZcq7eBrZUyxLbHFkBFWCyMwFonvJwLRSsL82dbWx\"]},\"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/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"lib/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"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/BaseConditionalOrder.sol\":{\"keccak256\":\"0x510558386b92b1d5961d8158ae6e3288a1d520c03123d109042a5ec3290b9588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e071465250cbc11d946f422f4ff774d757291cac00f4c69fbac1d1e34cdae402\",\"dweb:/ipfs/QmUF2qNwJhvs3GeWmsWnL6y21eL6mb3QEW7EPYY7NZc25v\"]},\"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/types/twap/TWAP.sol\":{\"keccak256\":\"0x009eb71fc8e7f782e6d0d65f87188c530106ba4f1f8d5f6bf3a165e34710e611\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1634e714b4f7c7217f407b253b7eb3be06585213b3d2c69ddc495183cbe97a0f\",\"dweb:/ipfs/QmUjV8ivqgVfmVRDbJpKUGzxkFEGHZKCtAopYrYeyvyWKR\"]},\"src/types/twap/libraries/TWAPOrder.sol\":{\"keccak256\":\"0x5f17b26cd0f9d5cdc6451515852dd9d1d7f7b24aeab8c6d375fa68c20243f2e3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://fafbf95d8a428145e490fd378cda74e9d4ebc2aa566faa19a7a04c6080dec166\",\"dweb:/ipfs/QmU9exeSmHJcmCriXD9oQ9c8cAtWHtnM9AYQNbeJyr8HSb\"]},\"src/types/twap/libraries/TWAPOrderMathLib.sol\":{\"keccak256\":\"0x9cb5263a1b8689b6ff59b9bcd14de0d031d8ed7efef56080f32b80c6f15e8d68\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d0411cab6f65fc3ab6415f9009d6a1ba0eda0348c66c09a9937fb261cc4c18a9\",\"dweb:/ipfs/QmSdo9dtkteSATZbd8SJcE4M3bLiFZjebHhSsPmV8NZhfG\"]},\"src/vendored/CoWSettlement.sol\":{\"keccak256\":\"0x4e4e317b24017cd87eb11d16368b8c06ec19306d31946c330a86f9f136df38d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34b9b2fc2c89e60497457cd812da9c53718c15ddfbf70f6e11832d22092c1840\",\"dweb:/ipfs/QmYFzaynWZfdpmFRf2dZrQ32Ep53AtQDd5fTE3a89xVkaR\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ComposableCoW\",\"name\":\"_composableCow\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollNever\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtBlock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtEpoch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryNextBlock\",\"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\"},{\"inputs\":[],\"name\":\"composableCow\",\"outputs\":[{\"internalType\":\"contract ComposableCoW\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateData\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\":\"\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Designed to be used with the CoW Protocol Conditional Order Framework.\",\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"getTradeableOrder(address,address,bytes32,bytes,bytes)\":{\"details\":\"`owner`, `sender` and `offchainInput` is not used.\",\"params\":{\"ctx\":\"the context of the order (bytes32(0) if merkle tree is used, otherwise the H(params))\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the parent `isValidSignature` call\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"},\"returns\":{\"order\":\"the tradeable order for submission to the CoW Protocol API\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"validateData(bytes)\":{\"details\":\"Throws if the data is invalid.\",\"params\":{\"data\":\"The ABI-encoded concrete order type's `Data` struct to be validated.\"}},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"TWAP Conditional Order\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"validateData(bytes)\":{\"notice\":\"A helper function for SDK users to verify if a given conditional order's data is valid.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"notice\":\"TWAP conditional orders allow for splitting an order into a series of orders that are executed at a fixed interval. This is useful for ensuring that a trade is executed at a specific price, even if the price of the token changes during the trade.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/twap/TWAP.sol\":\"TWAP\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x687142c633b33037c3137b6bfeef848a44eb1ef83fb5fdb59a3affdf28a46516\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d26b5d0495ffb4c36b1abdf003f43ab478c324752ce60847af8019bad5a3ad0\",\"dweb:/ipfs/QmQGcXZcq7eBrZUyxLbHFkBFWCyMwFonvJwLRSsL82dbWx\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"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/BaseConditionalOrder.sol\":{\"keccak256\":\"0x83d14b5411a5a1adc00da2d3e17703cd7be15de3f5637b2a3f77501df14c5e9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c007603000bb506c58265f61863bb90966a210429f2985a2632d4f00c7bbc1f\",\"dweb:/ipfs/QmUz7ikMYiS8MGNsMxvcHzpkX2yYiPidxvcfG97Vpqs73j\"]},\"src/ComposableCoW.sol\":{\"keccak256\":\"0x565c6fabc8a1e185acfb4539baeb7e3cabb004b54da2c777cbdbb3c98dbd6a52\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2b876b6b4a69f69b7f9445e67a0e60dd7a65f028d54ba9c4c8c983a00ee23642\",\"dweb:/ipfs/Qmf95tsR515WFv2yBKp4NzhFc9xvfZRtS194Lq7SY2r7zC\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]},\"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/types/twap/TWAP.sol\":{\"keccak256\":\"0x7038b7e24f4633358e827eafa47dc9ebce9d5263a8aded1d03b0dd2c13aee90e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6f2c538ab1fefdced2579efa5e911929e9fdc3c0ffcfb3f9c76b3e7990dc4eda\",\"dweb:/ipfs/QmaLzibvYkfRu2RLEikhbhecbqsYuWgVxTyuYzWsuDsEDY\"]},\"src/types/twap/libraries/TWAPOrder.sol\":{\"keccak256\":\"0x917e44d1853c7dafcf8e42acc746ca3d387d7c002f213870df69562eb66a0272\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://26c1ba047f761e81cf8ffea282b1cb763fb5f70e9fc0b1264323030d0cac39c0\",\"dweb:/ipfs/QmQA2Y95jVktUkYf7nQC4ZeCNUbmPFAy5bcjKriBDnDyAa\"]},\"src/types/twap/libraries/TWAPOrderMathLib.sol\":{\"keccak256\":\"0x59c5e36543c2f5edd22f2fe94160903f72221b991c46d495b6f6e83394025ecc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://35fdcc6f376a4ae9663c9e346eb47bb474faeb8b2fff746bb73708365dec0a12\",\"dweb:/ipfs/QmQCppHz3x9vNLHy5rBpdbg3qY73KT9oSwSAru9g3iwxsY\"]},\"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" @@ -360,6 +428,60 @@ "type": "error", "name": "OrderNotValid" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollNever" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtBlock" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtEpoch" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryNextBlock" + }, { "inputs": [ { @@ -529,6 +651,18 @@ } ] }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function", + "name": "validateData" + }, { "inputs": [ { @@ -658,6 +792,12 @@ "supportsInterface(bytes4)": { "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas." }, + "validateData(bytes)": { + "details": "Throws if the data is invalid.", + "params": { + "data": "The ABI-encoded concrete order type's `Data` struct to be validated." + } + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "details": "As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.", "params": { @@ -677,6 +817,9 @@ "userdoc": { "kind": "user", "methods": { + "validateData(bytes)": { + "notice": "A helper function for SDK users to verify if a given conditional order's data is valid." + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "notice": "Verify if a given discrete order is valid." } @@ -686,20 +829,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -714,7 +856,23 @@ "libraries": {} }, "sources": { - "lib/@openzeppelin/contracts/interfaces/IERC20.sol": { + "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/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", "urls": [ "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", @@ -722,7 +880,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/interfaces/IERC20Metadata.sol": { + "lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol": { "keccak256": "0x687142c633b33037c3137b6bfeef848a44eb1ef83fb5fdb59a3affdf28a46516", "urls": [ "bzz-raw://0d26b5d0495ffb4c36b1abdf003f43ab478c324752ce60847af8019bad5a3ad0", @@ -730,7 +888,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", "urls": [ "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", @@ -738,7 +896,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol": { "keccak256": "0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca", "urls": [ "bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd", @@ -746,7 +904,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol": { + "lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol": { "keccak256": "0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac", "urls": [ "bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04", @@ -754,7 +912,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/utils/math/SafeCast.sol": { + "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": { "keccak256": "0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad", "urls": [ "bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278", @@ -762,22 +920,6 @@ ], "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": [ @@ -987,10 +1129,10 @@ "license": "LGPL-3.0-only" }, "src/BaseConditionalOrder.sol": { - "keccak256": "0x510558386b92b1d5961d8158ae6e3288a1d520c03123d109042a5ec3290b9588", + "keccak256": "0x83d14b5411a5a1adc00da2d3e17703cd7be15de3f5637b2a3f77501df14c5e9c", "urls": [ - "bzz-raw://e071465250cbc11d946f422f4ff774d757291cac00f4c69fbac1d1e34cdae402", - "dweb:/ipfs/QmUF2qNwJhvs3GeWmsWnL6y21eL6mb3QEW7EPYY7NZc25v" + "bzz-raw://4c007603000bb506c58265f61863bb90966a210429f2985a2632d4f00c7bbc1f", + "dweb:/ipfs/QmUz7ikMYiS8MGNsMxvcHzpkX2yYiPidxvcfG97Vpqs73j" ], "license": "MIT" }, @@ -1003,10 +1145,10 @@ "license": "GPL-3.0" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" }, @@ -1027,26 +1169,26 @@ "license": "GPL-3.0" }, "src/types/twap/TWAP.sol": { - "keccak256": "0x009eb71fc8e7f782e6d0d65f87188c530106ba4f1f8d5f6bf3a165e34710e611", + "keccak256": "0x7038b7e24f4633358e827eafa47dc9ebce9d5263a8aded1d03b0dd2c13aee90e", "urls": [ - "bzz-raw://1634e714b4f7c7217f407b253b7eb3be06585213b3d2c69ddc495183cbe97a0f", - "dweb:/ipfs/QmUjV8ivqgVfmVRDbJpKUGzxkFEGHZKCtAopYrYeyvyWKR" + "bzz-raw://6f2c538ab1fefdced2579efa5e911929e9fdc3c0ffcfb3f9c76b3e7990dc4eda", + "dweb:/ipfs/QmaLzibvYkfRu2RLEikhbhecbqsYuWgVxTyuYzWsuDsEDY" ], "license": "GPL-3.0" }, "src/types/twap/libraries/TWAPOrder.sol": { - "keccak256": "0x5f17b26cd0f9d5cdc6451515852dd9d1d7f7b24aeab8c6d375fa68c20243f2e3", + "keccak256": "0x917e44d1853c7dafcf8e42acc746ca3d387d7c002f213870df69562eb66a0272", "urls": [ - "bzz-raw://fafbf95d8a428145e490fd378cda74e9d4ebc2aa566faa19a7a04c6080dec166", - "dweb:/ipfs/QmU9exeSmHJcmCriXD9oQ9c8cAtWHtnM9AYQNbeJyr8HSb" + "bzz-raw://26c1ba047f761e81cf8ffea282b1cb763fb5f70e9fc0b1264323030d0cac39c0", + "dweb:/ipfs/QmQA2Y95jVktUkYf7nQC4ZeCNUbmPFAy5bcjKriBDnDyAa" ], "license": "GPL-3.0" }, "src/types/twap/libraries/TWAPOrderMathLib.sol": { - "keccak256": "0x9cb5263a1b8689b6ff59b9bcd14de0d031d8ed7efef56080f32b80c6f15e8d68", + "keccak256": "0x59c5e36543c2f5edd22f2fe94160903f72221b991c46d495b6f6e83394025ecc", "urls": [ - "bzz-raw://d0411cab6f65fc3ab6415f9009d6a1ba0eda0348c66c09a9937fb261cc4c18a9", - "dweb:/ipfs/QmSdo9dtkteSATZbd8SJcE4M3bLiFZjebHhSsPmV8NZhfG" + "bzz-raw://35fdcc6f376a4ae9663c9e346eb47bb474faeb8b2fff746bb73708365dec0a12", + "dweb:/ipfs/QmQCppHz3x9vNLHy5rBpdbg3qY73KT9oSwSAru9g3iwxsY" ], "license": "GPL-3.0" }, @@ -1063,16 +1205,16 @@ }, "ast": { "absolutePath": "src/types/twap/TWAP.sol", - "id": 55540, + "id": 55699, "exportedSymbols": { "BaseConditionalOrder": [ - 53501 + 53578 ], "CoWSettlement": [ - 55972 + 56132 ], "ComposableCoW": [ - 54177 + 54254 ], "EIP712": [ 52037 @@ -1099,19 +1241,19 @@ 51492 ], "GPv2Interaction": [ - 17090 + 14303 ], "GPv2Order": [ - 17246 + 14459 ], "HandlerContext": [ 50638 ], "IConditionalOrder": [ - 54437 + 54540 ], "IConditionalOrderGenerator": [ - 54468 + 54571 ], "IERC165": [ 52197 @@ -1126,7 +1268,7 @@ 50786 ], "INVALID_HASH": [ - 53402 + 53472 ], "ISafeSignatureVerifier": [ 51635 @@ -1144,19 +1286,19 @@ 50801 ], "ISwapGuard": [ - 54496 + 54599 ], "IValueFactory": [ - 54508 + 54611 ], "MarshalLib": [ 51598 ], "MerkleProof": [ - 1245 + 46395 ], "NOT_WITHIN_SPAN": [ - 55448 + 55551 ], "Safe": [ 48851 @@ -1165,22 +1307,22 @@ 52004 ], "TWAP": [ - 55539 + 55698 ], "TWAPOrder": [ - 55808 + 55967 ], "TokenCallbacks": [ 52110 ] }, "nodeType": "SourceUnit", - "src": "36:2167:147", + "src": "36:3167:149", "nodes": [ { - "id": 55440, + "id": 55543, "nodeType": "PragmaDirective", - "src": "36:31:147", + "src": "36:31:149", "nodes": [], "literals": [ "solidity", @@ -1193,50 +1335,50 @@ ] }, { - "id": 55441, + "id": 55544, "nodeType": "ImportDirective", - "src": "69:33:147", + "src": "69:33:149", "nodes": [], "absolutePath": "src/ComposableCoW.sol", "file": "../../ComposableCoW.sol", "nameLocation": "-1:-1:-1", - "scope": 55540, - "sourceUnit": 54178, + "scope": 55699, + "sourceUnit": 54255, "symbolAliases": [], "unitAlias": "" }, { - "id": 55442, + "id": 55545, "nodeType": "ImportDirective", - "src": "104:40:147", + "src": "104:40:149", "nodes": [], "absolutePath": "src/BaseConditionalOrder.sol", "file": "../../BaseConditionalOrder.sol", "nameLocation": "-1:-1:-1", - "scope": 55540, - "sourceUnit": 53502, + "scope": 55699, + "sourceUnit": 53579, "symbolAliases": [], "unitAlias": "" }, { - "id": 55444, + "id": 55547, "nodeType": "ImportDirective", - "src": "145:52:147", + "src": "145:52:149", "nodes": [], "absolutePath": "src/types/twap/libraries/TWAPOrder.sol", "file": "./libraries/TWAPOrder.sol", "nameLocation": "-1:-1:-1", - "scope": 55540, - "sourceUnit": 55809, + "scope": 55699, + "sourceUnit": 55968, "symbolAliases": [ { "foreign": { - "id": 55443, + "id": 55546, "name": "TWAPOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55808, - "src": "153:9:147", + "referencedDeclaration": 55967, + "src": "153:9:149", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -1245,15 +1387,15 @@ "unitAlias": "" }, { - "id": 55448, + "id": 55551, "nodeType": "VariableDeclaration", - "src": "278:51:147", + "src": "278:51:149", "nodes": [], "constant": true, "mutability": "constant", "name": "NOT_WITHIN_SPAN", - "nameLocation": "294:15:147", - "scope": 55540, + "nameLocation": "294:15:149", + "scope": 55699, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1261,10 +1403,10 @@ "typeString": "string" }, "typeName": { - "id": 55446, + "id": 55549, "name": "string", "nodeType": "ElementaryTypeName", - "src": "278:6:147", + "src": "278:6:149", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1272,14 +1414,14 @@ }, "value": { "hexValue": "6e6f742077697468696e207370616e", - "id": 55447, + "id": 55550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "312:17:147", + "src": "312:17:149", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9c7896a1230b65b3fedeb00c154cd44bb80077b089d6cb0c0fb91343a53c8fe6", "typeString": "literal_string \"not within span\"" @@ -1289,102 +1431,102 @@ "visibility": "internal" }, { - "id": 55539, + "id": 55698, "nodeType": "ContractDefinition", - "src": "753:1449:147", + "src": "753:2449:149", "nodes": [ { - "id": 55454, + "id": 55557, "nodeType": "VariableDeclaration", - "src": "797:44:147", + "src": "797:44:149", "nodes": [], "constant": false, "functionSelector": "93504c52", "mutability": "immutable", "name": "composableCow", - "nameLocation": "828:13:147", - "scope": 55539, + "nameLocation": "828:13:149", + "scope": 55698, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ComposableCoW_$54177", + "typeIdentifier": "t_contract$_ComposableCoW_$54254", "typeString": "contract ComposableCoW" }, "typeName": { - "id": 55453, + "id": 55556, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55452, + "id": 55555, "name": "ComposableCoW", "nameLocations": [ - "797:13:147" + "797:13:149" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54177, - "src": "797:13:147" + "referencedDeclaration": 54254, + "src": "797:13:149" }, - "referencedDeclaration": 54177, - "src": "797:13:147", + "referencedDeclaration": 54254, + "src": "797:13:149", "typeDescriptions": { - "typeIdentifier": "t_contract$_ComposableCoW_$54177", + "typeIdentifier": "t_contract$_ComposableCoW_$54254", "typeString": "contract ComposableCoW" } }, "visibility": "public" }, { - "id": 55465, + "id": 55568, "nodeType": "FunctionDefinition", - "src": "848:89:147", + "src": "848:89:149", "nodes": [], "body": { - "id": 55464, + "id": 55567, "nodeType": "Block", - "src": "890:47:147", + "src": "890:47:149", "nodes": [], "statements": [ { "expression": { - "id": 55462, + "id": 55565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 55460, + "id": 55563, "name": "composableCow", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55454, - "src": "900:13:147", + "referencedDeclaration": 55557, + "src": "900:13:149", "typeDescriptions": { - "typeIdentifier": "t_contract$_ComposableCoW_$54177", + "typeIdentifier": "t_contract$_ComposableCoW_$54254", "typeString": "contract ComposableCoW" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 55461, + "id": 55564, "name": "_composableCow", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55457, - "src": "916:14:147", + "referencedDeclaration": 55560, + "src": "916:14:149", "typeDescriptions": { - "typeIdentifier": "t_contract$_ComposableCoW_$54177", + "typeIdentifier": "t_contract$_ComposableCoW_$54254", "typeString": "contract ComposableCoW" } }, - "src": "900:30:147", + "src": "900:30:149", "typeDescriptions": { - "typeIdentifier": "t_contract$_ComposableCoW_$54177", + "typeIdentifier": "t_contract$_ComposableCoW_$54254", "typeString": "contract ComposableCoW" } }, - "id": 55463, + "id": 55566, "nodeType": "ExpressionStatement", - "src": "900:30:147" + "src": "900:30:149" } ] }, @@ -1394,109 +1536,109 @@ "name": "", "nameLocation": "-1:-1:-1", "parameters": { - "id": 55458, + "id": 55561, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55457, + "id": 55560, "mutability": "mutable", "name": "_composableCow", - "nameLocation": "874:14:147", + "nameLocation": "874:14:149", "nodeType": "VariableDeclaration", - "scope": 55465, - "src": "860:28:147", + "scope": 55568, + "src": "860:28:149", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ComposableCoW_$54177", + "typeIdentifier": "t_contract$_ComposableCoW_$54254", "typeString": "contract ComposableCoW" }, "typeName": { - "id": 55456, + "id": 55559, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55455, + "id": 55558, "name": "ComposableCoW", "nameLocations": [ - "860:13:147" + "860:13:149" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 54177, - "src": "860:13:147" + "referencedDeclaration": 54254, + "src": "860:13:149" }, - "referencedDeclaration": 54177, - "src": "860:13:147", + "referencedDeclaration": 54254, + "src": "860:13:149", "typeDescriptions": { - "typeIdentifier": "t_contract$_ComposableCoW_$54177", + "typeIdentifier": "t_contract$_ComposableCoW_$54254", "typeString": "contract ComposableCoW" } }, "visibility": "internal" } ], - "src": "859:30:147" + "src": "859:30:149" }, "returnParameters": { - "id": 55459, + "id": 55562, "nodeType": "ParameterList", "parameters": [], - "src": "890:0:147" + "src": "890:0:149" }, - "scope": 55539, + "scope": 55698, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { - "id": 55538, + "id": 55677, "nodeType": "FunctionDefinition", - "src": "1068:1132:147", + "src": "1068:1938:149", "nodes": [], "body": { - "id": 55537, + "id": 55676, "nodeType": "Block", - "src": "1271:929:147", + "src": "1271:1735:149", "nodes": [], "statements": [ { "assignments": [ - 55487 + 55590 ], "declarations": [ { "constant": false, - "id": 55487, + "id": 55590, "mutability": "mutable", "name": "twap", - "nameLocation": "1686:4:147", + "nameLocation": "1686:4:149", "nodeType": "VariableDeclaration", - "scope": 55537, - "src": "1664:26:147", + "scope": 55676, + "src": "1664:26:149", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data" }, "typeName": { - "id": 55486, + "id": 55589, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55485, + "id": 55588, "name": "TWAPOrder.Data", "nameLocations": [ - "1664:9:147", - "1674:4:147" + "1664:9:149", + "1674:4:149" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 55603, - "src": "1664:14:147" + "referencedDeclaration": 55762, + "src": "1664:14:149" }, - "referencedDeclaration": 55603, - "src": "1664:14:147", + "referencedDeclaration": 55762, + "src": "1664:14:149", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_storage_ptr", + "typeIdentifier": "t_struct$_Data_$55762_storage_ptr", "typeString": "struct TWAPOrder.Data" } }, @@ -1504,16 +1646,16 @@ } ], "documentation": " @dev Decode the payload into a TWAP bundle and get the order. `orderFor` will revert if\n there is no current valid order.\n NOTE: This will return an order even if the part of the TWAP bundle that is currently\n valid is filled. This is safe as CoW Protocol ensures that each `orderUid` is only\n settled once.", - "id": 55495, + "id": 55598, "initialValue": { "arguments": [ { - "id": 55490, + "id": 55593, "name": "staticInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55474, - "src": "1704:11:147", + "referencedDeclaration": 55577, + "src": "1704:11:149", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -1523,43 +1665,43 @@ "components": [ { "expression": { - "id": 55491, + "id": 55594, "name": "TWAPOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55808, - "src": "1718:9:147", + "referencedDeclaration": 55967, + "src": "1718:9:149", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TWAPOrder_$55808_$", + "typeIdentifier": "t_type$_t_contract$_TWAPOrder_$55967_$", "typeString": "type(library TWAPOrder)" } }, - "id": 55492, + "id": 55595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1728:4:147", + "memberLocation": "1728:4:149", "memberName": "Data", "nodeType": "MemberAccess", - "referencedDeclaration": 55603, - "src": "1718:14:147", + "referencedDeclaration": 55762, + "src": "1718:14:149", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$55603_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$55762_storage_ptr_$", "typeString": "type(struct TWAPOrder.Data storage pointer)" } } ], - "id": 55493, + "id": 55596, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1717:16:147", + "src": "1717:16:149", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$55603_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$55762_storage_ptr_$", "typeString": "type(struct TWAPOrder.Data storage pointer)" } } @@ -1571,37 +1713,37 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_type$_t_struct$_Data_$55603_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$55762_storage_ptr_$", "typeString": "type(struct TWAPOrder.Data storage pointer)" } ], "expression": { - "id": 55488, + "id": 55591, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "1693:3:147", + "src": "1693:3:149", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 55489, + "id": 55592, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1697:6:147", + "memberLocation": "1697:6:149", "memberName": "decode", "nodeType": "MemberAccess", - "src": "1693:10:147", + "src": "1693:10:149", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 55494, + "id": 55597, "isConstant": false, "isLValue": false, "isPure": false, @@ -1610,15 +1752,15 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1693:41:147", + "src": "1693:41:149", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1664:70:147" + "src": "1664:70:149" }, { "condition": { @@ -1626,34 +1768,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55499, + "id": 55602, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55496, + "id": 55599, "name": "twap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55487, - "src": "1857:4:147", + "referencedDeclaration": 55590, + "src": "1857:4:149", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55497, + "id": 55600, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1862:2:147", + "memberLocation": "1862:2:149", "memberName": "t0", "nodeType": "MemberAccess", - "referencedDeclaration": 55594, - "src": "1857:7:147", + "referencedDeclaration": 55753, + "src": "1857:7:149", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1663,65 +1805,65 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 55498, + "id": 55601, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1868:1:147", + "src": "1868:1:149", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1857:12:147", + "src": "1857:12:149", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "documentation": " @dev If `twap.t0` is set to 0, then get the start time from the context.", - "id": 55514, + "id": 55617, "nodeType": "IfStatement", - "src": "1853:95:147", + "src": "1853:95:149", "trueBody": { - "id": 55513, + "id": 55616, "nodeType": "Block", - "src": "1871:77:147", + "src": "1871:77:149", "statements": [ { "expression": { - "id": 55511, + "id": 55614, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 55500, + "id": 55603, "name": "twap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55487, - "src": "1885:4:147", + "referencedDeclaration": 55590, + "src": "1885:4:149", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55502, + "id": 55605, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "1890:2:147", + "memberLocation": "1890:2:149", "memberName": "t0", "nodeType": "MemberAccess", - "referencedDeclaration": 55594, - "src": "1885:7:147", + "referencedDeclaration": 55753, + "src": "1885:7:149", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1734,24 +1876,24 @@ { "arguments": [ { - "id": 55507, + "id": 55610, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55468, - "src": "1925:5:147", + "referencedDeclaration": 55571, + "src": "1925:5:149", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 55508, + "id": 55611, "name": "ctx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55472, - "src": "1932:3:147", + "referencedDeclaration": 55575, + "src": "1932:3:149", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1770,33 +1912,33 @@ } ], "expression": { - "id": 55505, + "id": 55608, "name": "composableCow", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55454, - "src": "1903:13:147", + "referencedDeclaration": 55557, + "src": "1903:13:149", "typeDescriptions": { - "typeIdentifier": "t_contract$_ComposableCoW_$54177", + "typeIdentifier": "t_contract$_ComposableCoW_$54254", "typeString": "contract ComposableCoW" } }, - "id": 55506, + "id": 55609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1917:7:147", + "memberLocation": "1917:7:149", "memberName": "cabinet", "nodeType": "MemberAccess", - "referencedDeclaration": 53587, - "src": "1903:21:147", + "referencedDeclaration": 53664, + "src": "1903:21:149", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (address,bytes32) view external returns (bytes32)" } }, - "id": 55509, + "id": 55612, "isConstant": false, "isLValue": false, "isPure": false, @@ -1805,7 +1947,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1903:33:147", + "src": "1903:33:149", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1820,26 +1962,26 @@ "typeString": "bytes32" } ], - "id": 55504, + "id": 55607, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1895:7:147", + "src": "1895:7:149", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 55503, + "id": 55606, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1895:7:147", + "src": "1895:7:149", "typeDescriptions": {} } }, - "id": 55510, + "id": 55613, "isConstant": false, "isLValue": false, "isPure": false, @@ -1848,42 +1990,42 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1895:42:147", + "src": "1895:42:149", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1885:52:147", + "src": "1885:52:149", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 55512, + "id": 55615, "nodeType": "ExpressionStatement", - "src": "1885:52:147" + "src": "1885:52:149" } ] } }, { "expression": { - "id": 55520, + "id": 55623, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 55515, + "id": 55618, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55481, - "src": "1958:5:147", + "referencedDeclaration": 55584, + "src": "1958:5:149", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, @@ -1892,14 +2034,14 @@ "rightHandSide": { "arguments": [ { - "id": 55518, + "id": 55621, "name": "twap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55487, - "src": "1985:4:147", + "referencedDeclaration": 55590, + "src": "1985:4:149", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } } @@ -1907,38 +2049,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } ], "expression": { - "id": 55516, + "id": 55619, "name": "TWAPOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55808, - "src": "1966:9:147", + "referencedDeclaration": 55967, + "src": "1966:9:149", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TWAPOrder_$55808_$", + "typeIdentifier": "t_type$_t_contract$_TWAPOrder_$55967_$", "typeString": "type(library TWAPOrder)" } }, - "id": 55517, + "id": 55620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1976:8:147", + "memberLocation": "1976:8:149", "memberName": "orderFor", "nodeType": "MemberAccess", - "referencedDeclaration": 55807, - "src": "1966:18:147", + "referencedDeclaration": 55966, + "src": "1966:18:149", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$55603_memory_ptr_$returns$_t_struct$_Data_$17121_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$55762_memory_ptr_$returns$_t_struct$_Data_$14334_memory_ptr_$", "typeString": "function (struct TWAPOrder.Data memory) view returns (struct GPv2Order.Data memory)" } }, - "id": 55519, + "id": 55622, "isConstant": false, "isLValue": false, "isPure": false, @@ -1947,26 +2089,26 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1966:24:147", + "src": "1966:24:149", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "src": "1958:32:147", + "src": "1958:32:149", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "id": 55521, + "id": 55624, "nodeType": "ExpressionStatement", - "src": "1958:32:147" + "src": "1958:32:149" }, { "condition": { - "id": 55528, + "id": 55631, "isConstant": false, "isLValue": false, "isPure": false, @@ -1974,7 +2116,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2077:35:147", + "src": "2292:35:149", "subExpression": { "components": [ { @@ -1982,33 +2124,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55526, + "id": 55629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55522, + "id": 55625, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2079:5:147", + "src": "2294:5:149", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 55523, + "id": 55626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2085:9:147", + "memberLocation": "2300:9:149", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "2079:15:147", + "src": "2294:15:149", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2018,47 +2160,47 @@ "operator": "<=", "rightExpression": { "expression": { - "id": 55524, + "id": 55627, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55481, - "src": "2098:5:147", + "referencedDeclaration": 55584, + "src": "2313:5:149", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "id": 55525, + "id": 55628, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2104:7:147", + "memberLocation": "2319:7:149", "memberName": "validTo", "nodeType": "MemberAccess", - "referencedDeclaration": 17108, - "src": "2098:13:147", + "referencedDeclaration": 14321, + "src": "2313:13:149", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "2079:32:147", + "src": "2294:32:149", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55527, + "id": 55630, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2078:34:147", + "src": "2293:34:149", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2069,84 +2211,577 @@ "typeString": "bool" } }, - "documentation": "@dev Revert if the order is outside the TWAP bundle's span.", - "id": 55536, + "documentation": "@dev As the `TWAPOrder.orderFor` function will revert if the TWAP has not started\n or if the TWAP has finished, the _only_ time now that `block.timestamp` can be\n greater than `order.validTo` is if the order is outside the TWAP bundle's span.", + "id": 55675, "nodeType": "IfStatement", - "src": "2073:121:147", + "src": "2288:712:149", "trueBody": { - "id": 55535, + "id": 55674, "nodeType": "Block", - "src": "2114:80:147", + "src": "2329:671:149", "statements": [ { - "errorCall": { - "arguments": [ - { - "id": 55532, - "name": "NOT_WITHIN_SPAN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55448, - "src": "2167:15:147", + "assignments": [ + 55633 + ], + "declarations": [ + { + "constant": false, + "id": 55633, + "mutability": "mutable", + "name": "currentPart", + "nameLocation": "2410:11:149", + "nodeType": "VariableDeclaration", + "scope": 55674, + "src": "2402:19:149", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 55632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2402:7:149", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ + }, + "visibility": "internal" + } + ], + "id": 55646, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 55645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 55642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 55638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 55634, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "2426:5:149", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 55635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2432:9:149", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "2426:15:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "id": 55636, + "name": "twap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55590, + "src": "2444:4:149", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", + "typeString": "struct TWAPOrder.Data memory" + } + }, + "id": 55637, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2449:2:149", + "memberName": "t0", + "nodeType": "MemberAccess", + "referencedDeclaration": 55753, + "src": "2444:7:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2426:25:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 55639, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2425:27:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "expression": { + "id": 55640, + "name": "twap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55590, + "src": "2455:4:149", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", + "typeString": "struct TWAPOrder.Data memory" + } + }, + "id": 55641, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2460:1:149", + "memberName": "t", + "nodeType": "MemberAccess", + "referencedDeclaration": 55757, + "src": "2455:6:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2425:36:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], + "id": 55643, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2424:38:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 55644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2465:1:149", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2424:42:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2402:64:149" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 55650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 55647, + "name": "currentPart", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55633, + "src": "2485:11:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "expression": { - "id": 55529, - "name": "IConditionalOrder", + "id": 55648, + "name": "twap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "2135:17:147", + "referencedDeclaration": 55590, + "src": "2500:4:149", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", - "typeString": "type(contract IConditionalOrder)" + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", + "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55531, + "id": 55649, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2153:13:147", - "memberName": "OrderNotValid", + "memberLocation": "2505:1:149", + "memberName": "n", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "2135:31:147", + "referencedDeclaration": 55755, + "src": "2500:6:149", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 55533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2135:48:147", - "tryCall": false, + "src": "2485:21:149", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 55534, - "nodeType": "RevertStatement", - "src": "2128:55:147" + "falseBody": { + "id": 55672, + "nodeType": "Block", + "src": "2735:255:149", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 55668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 55661, + "name": "twap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55590, + "src": "2925:4:149", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", + "typeString": "struct TWAPOrder.Data memory" + } + }, + "id": 55662, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2930:2:149", + "memberName": "t0", + "nodeType": "MemberAccess", + "referencedDeclaration": 55753, + "src": "2925:7:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 55666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 55663, + "name": "currentPart", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55633, + "src": "2936:11:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "expression": { + "id": 55664, + "name": "twap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55590, + "src": "2950:4:149", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", + "typeString": "struct TWAPOrder.Data memory" + } + }, + "id": 55665, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2955:1:149", + "memberName": "t", + "nodeType": "MemberAccess", + "referencedDeclaration": 55757, + "src": "2950:6:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2936:20:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 55667, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2935:22:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2925:32:149", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 55669, + "name": "NOT_WITHIN_SPAN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55551, + "src": "2959:15:149", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 55658, + "name": "IConditionalOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54540, + "src": "2892:17:149", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", + "typeString": "type(contract IConditionalOrder)" + } + }, + "id": 55660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2910:14:149", + "memberName": "PollTryAtEpoch", + "nodeType": "MemberAccess", + "referencedDeclaration": 54500, + "src": "2892:32:149", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,string memory) pure" + } + }, + "id": 55670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2892:83:149", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55671, + "nodeType": "RevertStatement", + "src": "2885:90:149" + } + ] + }, + "id": 55673, + "nodeType": "IfStatement", + "src": "2481:509:149", + "trueBody": { + "id": 55657, + "nodeType": "Block", + "src": "2508:221:149", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 55654, + "name": "NOT_WITHIN_SPAN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55551, + "src": "2698:15:149", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 55651, + "name": "IConditionalOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54540, + "src": "2670:17:149", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", + "typeString": "type(contract IConditionalOrder)" + } + }, + "id": 55653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2688:9:149", + "memberName": "PollNever", + "nodeType": "MemberAccess", + "referencedDeclaration": 54504, + "src": "2670:27:149", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 55655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2670:44:149", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55656, + "nodeType": "RevertStatement", + "src": "2663:51:149" + } + ] + } } ] } @@ -2154,12 +2789,12 @@ ] }, "baseFunctions": [ - 53476 + 53546 ], "documentation": { - "id": 55466, + "id": 55569, "nodeType": "StructuredDocumentation", - "src": "943:120:147", + "src": "943:120:149", "text": " @inheritdoc IConditionalOrderGenerator\n @dev `owner`, `sender` and `offchainInput` is not used." }, "functionSelector": "b8296fc4", @@ -2167,26 +2802,26 @@ "kind": "function", "modifiers": [], "name": "getTradeableOrder", - "nameLocation": "1077:17:147", + "nameLocation": "1077:17:149", "overrides": { - "id": 55478, + "id": 55581, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "1212:8:147" + "src": "1212:8:149" }, "parameters": { - "id": 55477, + "id": 55580, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55468, + "id": 55571, "mutability": "mutable", "name": "owner", - "nameLocation": "1103:5:147", + "nameLocation": "1103:5:149", "nodeType": "VariableDeclaration", - "scope": 55538, - "src": "1095:13:147", + "scope": 55677, + "src": "1095:13:149", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2194,10 +2829,10 @@ "typeString": "address" }, "typeName": { - "id": 55467, + "id": 55570, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1095:7:147", + "src": "1095:7:149", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2208,13 +2843,13 @@ }, { "constant": false, - "id": 55470, + "id": 55573, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 55538, - "src": "1110:7:147", + "scope": 55677, + "src": "1110:7:149", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2222,10 +2857,10 @@ "typeString": "address" }, "typeName": { - "id": 55469, + "id": 55572, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1110:7:147", + "src": "1110:7:149", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2236,13 +2871,13 @@ }, { "constant": false, - "id": 55472, + "id": 55575, "mutability": "mutable", "name": "ctx", - "nameLocation": "1127:3:147", + "nameLocation": "1127:3:149", "nodeType": "VariableDeclaration", - "scope": 55538, - "src": "1119:11:147", + "scope": 55677, + "src": "1119:11:149", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2250,10 +2885,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 55471, + "id": 55574, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1119:7:147", + "src": "1119:7:149", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2263,13 +2898,13 @@ }, { "constant": false, - "id": 55474, + "id": 55577, "mutability": "mutable", "name": "staticInput", - "nameLocation": "1147:11:147", + "nameLocation": "1147:11:149", "nodeType": "VariableDeclaration", - "scope": 55538, - "src": "1132:26:147", + "scope": 55677, + "src": "1132:26:149", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -2277,10 +2912,10 @@ "typeString": "bytes" }, "typeName": { - "id": 55473, + "id": 55576, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1132:5:147", + "src": "1132:5:149", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2290,13 +2925,13 @@ }, { "constant": false, - "id": 55476, + "id": 55579, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 55538, - "src": "1160:14:147", + "scope": 55677, + "src": "1160:14:149", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -2304,10 +2939,10 @@ "typeString": "bytes" }, "typeName": { - "id": 55475, + "id": 55578, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1160:5:147", + "src": "1160:5:149", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2316,103 +2951,356 @@ "visibility": "internal" } ], - "src": "1094:81:147" + "src": "1094:81:149" }, "returnParameters": { - "id": 55482, + "id": 55585, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55481, + "id": 55584, "mutability": "mutable", "name": "order", - "nameLocation": "1260:5:147", + "nameLocation": "1260:5:149", "nodeType": "VariableDeclaration", - "scope": 55538, - "src": "1238:27:147", + "scope": 55677, + "src": "1238:27:149", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 55480, + "id": 55583, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55479, + "id": 55582, "name": "GPv2Order.Data", "nameLocations": [ - "1238:9:147", - "1248:4:147" + "1238:9:149", + "1248:4:149" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "1238:14:147" + "referencedDeclaration": 14334, + "src": "1238:14:149" }, - "referencedDeclaration": 17121, - "src": "1238:14:147", + "referencedDeclaration": 14334, + "src": "1238:14:149", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "src": "1237:29:147" + "src": "1237:29:149" }, - "scope": 55539, + "scope": 55698, "stateMutability": "view", "virtual": false, "visibility": "public" + }, + { + "id": 55697, + "nodeType": "FunctionDefinition", + "src": "3065:135:149", + "nodes": [], + "body": { + "id": 55696, + "nodeType": "Block", + "src": "3129:71:149", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 55689, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55680, + "src": "3169:4:149", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "expression": { + "id": 55690, + "name": "TWAPOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55967, + "src": "3176:9:149", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_TWAPOrder_$55967_$", + "typeString": "type(library TWAPOrder)" + } + }, + "id": 55691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3186:4:149", + "memberName": "Data", + "nodeType": "MemberAccess", + "referencedDeclaration": 55762, + "src": "3176:14:149", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Data_$55762_storage_ptr_$", + "typeString": "type(struct TWAPOrder.Data storage pointer)" + } + } + ], + "id": 55692, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3175:16:149", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Data_$55762_storage_ptr_$", + "typeString": "type(struct TWAPOrder.Data storage pointer)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_struct$_Data_$55762_storage_ptr_$", + "typeString": "type(struct TWAPOrder.Data storage pointer)" + } + ], + "expression": { + "id": 55687, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "3158:3:149", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 55688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3162:6:149", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "3158:10:149", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 55693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3158:34:149", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", + "typeString": "struct TWAPOrder.Data memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", + "typeString": "struct TWAPOrder.Data memory" + } + ], + "expression": { + "id": 55684, + "name": "TWAPOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55967, + "src": "3139:9:149", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_TWAPOrder_$55967_$", + "typeString": "type(library TWAPOrder)" + } + }, + "id": 55686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3149:8:149", + "memberName": "validate", + "nodeType": "MemberAccess", + "referencedDeclaration": 55912, + "src": "3139:18:149", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_Data_$55762_memory_ptr_$returns$__$", + "typeString": "function (struct TWAPOrder.Data memory) pure" + } + }, + "id": 55694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3139:54:149", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55695, + "nodeType": "ExpressionStatement", + "src": "3139:54:149" + } + ] + }, + "baseFunctions": [ + 53577 + ], + "documentation": { + "id": 55678, + "nodeType": "StructuredDocumentation", + "src": "3012:48:149", + "text": " @inheritdoc IConditionalOrder" + }, + "functionSelector": "a6ffa36c", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "validateData", + "nameLocation": "3074:12:149", + "overrides": { + "id": 55682, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3120:8:149" + }, + "parameters": { + "id": 55681, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 55680, + "mutability": "mutable", + "name": "data", + "nameLocation": "3100:4:149", + "nodeType": "VariableDeclaration", + "scope": 55697, + "src": "3087:17:149", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 55679, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3087:5:149", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3086:19:149" + }, + "returnParameters": { + "id": 55683, + "nodeType": "ParameterList", + "parameters": [], + "src": "3129:0:149" + }, + "scope": 55698, + "stateMutability": "pure", + "virtual": false, + "visibility": "external" } ], "abstract": false, "baseContracts": [ { "baseName": { - "id": 55450, + "id": 55553, "name": "BaseConditionalOrder", "nameLocations": [ - "770:20:147" + "770:20:149" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53501, - "src": "770:20:147" + "referencedDeclaration": 53578, + "src": "770:20:149" }, - "id": 55451, + "id": 55554, "nodeType": "InheritanceSpecifier", - "src": "770:20:147" + "src": "770:20:149" } ], "canonicalName": "TWAP", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 55449, + "id": 55552, "nodeType": "StructuredDocumentation", - "src": "332:420:147", + "src": "332:420:149", "text": " @title TWAP Conditional Order\n @author mfw78 \n @notice TWAP conditional orders allow for splitting an order into a series of orders that are\n executed at a fixed interval. This is useful for ensuring that a trade is executed at a\n specific price, even if the price of the token changes during the trade.\n @dev Designed to be used with the CoW Protocol Conditional Order Framework." }, "fullyImplemented": true, "linearizedBaseContracts": [ - 55539, - 53501, - 54468, + 55698, + 53578, + 54571, 52197, - 54437 + 54540 ], "name": "TWAP", - "nameLocation": "762:4:147", - "scope": 55540, + "nameLocation": "762:4:149", + "scope": 55699, "usedErrors": [ - 54407 + 54484, + 54488, + 54494, + 54500, + 54504 ] } ], "license": "GPL-3.0" }, - "id": 147 + "id": 149 } \ No newline at end of file diff --git a/out/TWAPOrder.sol/TWAPOrder.json b/out/TWAPOrder.sol/TWAPOrder.json index fcc743b..5fdbad4 100644 --- a/out/TWAPOrder.sol/TWAPOrder.json +++ b/out/TWAPOrder.sol/TWAPOrder.json @@ -1,17 +1,17 @@ { "abi": [], "bytecode": { - "object": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208476ae4500a4f9bbc24b9eca0f89650916f45dd2b16cae2a81c016b0af8d981464736f6c63430008130033", - "sourceMap": "1061:2910:148:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1061:2910:148;;;;;;;;;;;;;;;;;", + "object": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e29ab8aef112f58c64b245c01b72bc96b6a6204514f36ce629944e86cbe82c0b64736f6c63430008130033", + "sourceMap": "1081:2910:150:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1081:2910:150;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208476ae4500a4f9bbc24b9eca0f89650916f45dd2b16cae2a81c016b0af8d981464736f6c63430008130033", - "sourceMap": "1061:2910:148:-:0;;;;;;;;", + "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e29ab8aef112f58c64b245c01b72bc96b6a6204514f36ce629944e86cbe82c0b64736f6c63430008130033", + "sourceMap": "1081:2910:150:-:0;;;;;;;;", "linkReferences": {} }, "methodIdentifiers": {}, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Structs, errors, and functions for time-weighted average orders.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Time-weighted Average Order Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/twap/libraries/TWAPOrder.sol\":\"TWAPOrder\"},\"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/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x687142c633b33037c3137b6bfeef848a44eb1ef83fb5fdb59a3affdf28a46516\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d26b5d0495ffb4c36b1abdf003f43ab478c324752ce60847af8019bad5a3ad0\",\"dweb:/ipfs/QmQGcXZcq7eBrZUyxLbHFkBFWCyMwFonvJwLRSsL82dbWx\"]},\"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/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"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/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699\",\"dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ\"]},\"src/types/twap/libraries/TWAPOrder.sol\":{\"keccak256\":\"0x5f17b26cd0f9d5cdc6451515852dd9d1d7f7b24aeab8c6d375fa68c20243f2e3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://fafbf95d8a428145e490fd378cda74e9d4ebc2aa566faa19a7a04c6080dec166\",\"dweb:/ipfs/QmU9exeSmHJcmCriXD9oQ9c8cAtWHtnM9AYQNbeJyr8HSb\"]},\"src/types/twap/libraries/TWAPOrderMathLib.sol\":{\"keccak256\":\"0x9cb5263a1b8689b6ff59b9bcd14de0d031d8ed7efef56080f32b80c6f15e8d68\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d0411cab6f65fc3ab6415f9009d6a1ba0eda0348c66c09a9937fb261cc4c18a9\",\"dweb:/ipfs/QmSdo9dtkteSATZbd8SJcE4M3bLiFZjebHhSsPmV8NZhfG\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"Structs, errors, and functions for time-weighted average orders.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Time-weighted Average Order Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/twap/libraries/TWAPOrder.sol\":\"TWAPOrder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x687142c633b33037c3137b6bfeef848a44eb1ef83fb5fdb59a3affdf28a46516\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d26b5d0495ffb4c36b1abdf003f43ab478c324752ce60847af8019bad5a3ad0\",\"dweb:/ipfs/QmQGcXZcq7eBrZUyxLbHFkBFWCyMwFonvJwLRSsL82dbWx\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/safe/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]},\"src/types/twap/libraries/TWAPOrder.sol\":{\"keccak256\":\"0x917e44d1853c7dafcf8e42acc746ca3d387d7c002f213870df69562eb66a0272\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://26c1ba047f761e81cf8ffea282b1cb763fb5f70e9fc0b1264323030d0cac39c0\",\"dweb:/ipfs/QmQA2Y95jVktUkYf7nQC4ZeCNUbmPFAy5bcjKriBDnDyAa\"]},\"src/types/twap/libraries/TWAPOrderMathLib.sol\":{\"keccak256\":\"0x59c5e36543c2f5edd22f2fe94160903f72221b991c46d495b6f6e83394025ecc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://35fdcc6f376a4ae9663c9e346eb47bb474faeb8b2fff746bb73708365dec0a12\",\"dweb:/ipfs/QmQCppHz3x9vNLHy5rBpdbg3qY73KT9oSwSAru9g3iwxsY\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -32,20 +32,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -60,7 +59,23 @@ "libraries": {} }, "sources": { - "lib/@openzeppelin/contracts/interfaces/IERC20.sol": { + "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/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", "urls": [ "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", @@ -68,7 +83,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/interfaces/IERC20Metadata.sol": { + "lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol": { "keccak256": "0x687142c633b33037c3137b6bfeef848a44eb1ef83fb5fdb59a3affdf28a46516", "urls": [ "bzz-raw://0d26b5d0495ffb4c36b1abdf003f43ab478c324752ce60847af8019bad5a3ad0", @@ -76,7 +91,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", "urls": [ "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", @@ -84,7 +99,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol": { "keccak256": "0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca", "urls": [ "bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd", @@ -92,7 +107,7 @@ ], "license": "MIT" }, - "lib/@openzeppelin/contracts/utils/math/SafeCast.sol": { + "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": { "keccak256": "0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad", "urls": [ "bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278", @@ -100,22 +115,6 @@ ], "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/interfaces/IERC165.sol": { "keccak256": "0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb", "urls": [ @@ -125,26 +124,26 @@ "license": "LGPL-3.0-only" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" }, "src/types/twap/libraries/TWAPOrder.sol": { - "keccak256": "0x5f17b26cd0f9d5cdc6451515852dd9d1d7f7b24aeab8c6d375fa68c20243f2e3", + "keccak256": "0x917e44d1853c7dafcf8e42acc746ca3d387d7c002f213870df69562eb66a0272", "urls": [ - "bzz-raw://fafbf95d8a428145e490fd378cda74e9d4ebc2aa566faa19a7a04c6080dec166", - "dweb:/ipfs/QmU9exeSmHJcmCriXD9oQ9c8cAtWHtnM9AYQNbeJyr8HSb" + "bzz-raw://26c1ba047f761e81cf8ffea282b1cb763fb5f70e9fc0b1264323030d0cac39c0", + "dweb:/ipfs/QmQA2Y95jVktUkYf7nQC4ZeCNUbmPFAy5bcjKriBDnDyAa" ], "license": "GPL-3.0" }, "src/types/twap/libraries/TWAPOrderMathLib.sol": { - "keccak256": "0x9cb5263a1b8689b6ff59b9bcd14de0d031d8ed7efef56080f32b80c6f15e8d68", + "keccak256": "0x59c5e36543c2f5edd22f2fe94160903f72221b991c46d495b6f6e83394025ecc", "urls": [ - "bzz-raw://d0411cab6f65fc3ab6415f9009d6a1ba0eda0348c66c09a9937fb261cc4c18a9", - "dweb:/ipfs/QmSdo9dtkteSATZbd8SJcE4M3bLiFZjebHhSsPmV8NZhfG" + "bzz-raw://35fdcc6f376a4ae9663c9e346eb47bb474faeb8b2fff746bb73708365dec0a12", + "dweb:/ipfs/QmQCppHz3x9vNLHy5rBpdbg3qY73KT9oSwSAru9g3iwxsY" ], "license": "GPL-3.0" } @@ -153,61 +152,61 @@ }, "ast": { "absolutePath": "src/types/twap/libraries/TWAPOrder.sol", - "id": 55809, + "id": 55968, "exportedSymbols": { "GPv2Order": [ - 17246 + 14459 ], "IConditionalOrder": [ - 54437 + 54540 ], "IERC20": [ - 670 + 45820 ], "IERC20Metadata": [ - 695 + 45845 ], "INVALID_FREQUENCY": [ - 55573 + 55732 ], "INVALID_MIN_PART_LIMIT": [ - 55564 + 55723 ], "INVALID_NUM_PARTS": [ - 55570 + 55729 ], "INVALID_PART_SELL_AMOUNT": [ - 55561 + 55720 ], "INVALID_SAME_TOKEN": [ - 55555 + 55714 ], "INVALID_SPAN": [ - 55576 + 55735 ], "INVALID_START_TIME": [ - 55567 + 55726 ], "INVALID_TOKEN": [ - 55558 + 55717 ], "SafeCast": [ - 2786 + 47936 ], "TWAPOrder": [ - 55808 + 55967 ], "TWAPOrderMathLib": [ - 55941 + 56101 ] }, "nodeType": "SourceUnit", - "src": "36:3936:148", + "src": "36:3956:150", "nodes": [ { - "id": 55541, + "id": 55700, "nodeType": "PragmaDirective", - "src": "36:31:148", + "src": "36:31:150", "nodes": [], "literals": [ "solidity", @@ -220,36 +219,36 @@ ] }, { - "id": 55544, + "id": 55703, "nodeType": "ImportDirective", - "src": "69:83:148", + "src": "69:93:150", "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/interfaces/IERC20Metadata.sol", - "file": "@openzeppelin/interfaces/IERC20Metadata.sol", + "absolutePath": "lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol", + "file": "@openzeppelin/contracts/interfaces/IERC20Metadata.sol", "nameLocation": "-1:-1:-1", - "scope": 55809, - "sourceUnit": 6, + "scope": 55968, + "sourceUnit": 45156, "symbolAliases": [ { "foreign": { - "id": 55542, + "id": 55701, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "77:6:148", + "referencedDeclaration": 45820, + "src": "77:6:150", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { - "id": 55543, + "id": 55702, "name": "IERC20Metadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 695, - "src": "85:14:148", + "referencedDeclaration": 45845, + "src": "85:14:150", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -258,24 +257,24 @@ "unitAlias": "" }, { - "id": 55546, + "id": 55705, "nodeType": "ImportDirective", - "src": "153:63:148", + "src": "163:73:150", "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/utils/math/SafeCast.sol", - "file": "@openzeppelin/utils/math/SafeCast.sol", + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol", + "file": "@openzeppelin/contracts/utils/math/SafeCast.sol", "nameLocation": "-1:-1:-1", - "scope": 55809, - "sourceUnit": 2787, + "scope": 55968, + "sourceUnit": 47937, "symbolAliases": [ { "foreign": { - "id": 55545, + "id": 55704, "name": "SafeCast", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2786, - "src": "161:8:148", + "referencedDeclaration": 47936, + "src": "171:8:150", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -284,24 +283,24 @@ "unitAlias": "" }, { - "id": 55548, + "id": 55707, "nodeType": "ImportDirective", - "src": "217:62:148", + "src": "237:62:150", "nodes": [], "absolutePath": "lib/cowprotocol/src/contracts/libraries/GPv2Order.sol", "file": "cowprotocol/libraries/GPv2Order.sol", "nameLocation": "-1:-1:-1", - "scope": 55809, - "sourceUnit": 17247, + "scope": 55968, + "sourceUnit": 14460, "symbolAliases": [ { "foreign": { - "id": 55547, + "id": 55706, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "225:9:148", + "referencedDeclaration": 14459, + "src": "245:9:150", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -310,24 +309,24 @@ "unitAlias": "" }, { - "id": 55550, + "id": 55709, "nodeType": "ImportDirective", - "src": "281:76:148", + "src": "301:76:150", "nodes": [], "absolutePath": "src/interfaces/IConditionalOrder.sol", "file": "../../../interfaces/IConditionalOrder.sol", "nameLocation": "-1:-1:-1", - "scope": 55809, - "sourceUnit": 54469, + "scope": 55968, + "sourceUnit": 54572, "symbolAliases": [ { "foreign": { - "id": 55549, + "id": 55708, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "289:17:148", + "referencedDeclaration": 54540, + "src": "309:17:150", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -336,24 +335,24 @@ "unitAlias": "" }, { - "id": 55552, + "id": 55711, "nodeType": "ImportDirective", - "src": "358:56:148", + "src": "378:56:150", "nodes": [], "absolutePath": "src/types/twap/libraries/TWAPOrderMathLib.sol", "file": "./TWAPOrderMathLib.sol", "nameLocation": "-1:-1:-1", - "scope": 55809, - "sourceUnit": 55942, + "scope": 55968, + "sourceUnit": 56102, "symbolAliases": [ { "foreign": { - "id": 55551, + "id": 55710, "name": "TWAPOrderMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55941, - "src": "366:16:148", + "referencedDeclaration": 56101, + "src": "386:16:150", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -362,15 +361,15 @@ "unitAlias": "" }, { - "id": 55555, + "id": 55714, "nodeType": "VariableDeclaration", - "src": "438:49:148", + "src": "458:49:150", "nodes": [], "constant": true, "mutability": "constant", "name": "INVALID_SAME_TOKEN", - "nameLocation": "454:18:148", - "scope": 55809, + "nameLocation": "474:18:150", + "scope": 55968, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -378,10 +377,10 @@ "typeString": "string" }, "typeName": { - "id": 55553, + "id": 55712, "name": "string", "nodeType": "ElementaryTypeName", - "src": "438:6:148", + "src": "458:6:150", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -389,14 +388,14 @@ }, "value": { "hexValue": "73616d6520746f6b656e", - "id": 55554, + "id": 55713, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "475:12:148", + "src": "495:12:150", "typeDescriptions": { "typeIdentifier": "t_stringliteral_86bbb7ee30d9797db5b3535b2271ac1052ddd439800dec418537905b212d4577", "typeString": "literal_string \"same token\"" @@ -406,15 +405,15 @@ "visibility": "internal" }, { - "id": 55558, + "id": 55717, "nodeType": "VariableDeclaration", - "src": "489:47:148", + "src": "509:47:150", "nodes": [], "constant": true, "mutability": "constant", "name": "INVALID_TOKEN", - "nameLocation": "505:13:148", - "scope": 55809, + "nameLocation": "525:13:150", + "scope": 55968, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -422,10 +421,10 @@ "typeString": "string" }, "typeName": { - "id": 55556, + "id": 55715, "name": "string", "nodeType": "ElementaryTypeName", - "src": "489:6:148", + "src": "509:6:150", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -433,14 +432,14 @@ }, "value": { "hexValue": "696e76616c696420746f6b656e", - "id": 55557, + "id": 55716, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "521:15:148", + "src": "541:15:150", "typeDescriptions": { "typeIdentifier": "t_stringliteral_91766924399ba2aa6ad0c8d1146b6e8fd47173f69f3b391bd887f350814cada7", "typeString": "literal_string \"invalid token\"" @@ -450,15 +449,15 @@ "visibility": "internal" }, { - "id": 55561, + "id": 55720, "nodeType": "VariableDeclaration", - "src": "538:69:148", + "src": "558:69:150", "nodes": [], "constant": true, "mutability": "constant", "name": "INVALID_PART_SELL_AMOUNT", - "nameLocation": "554:24:148", - "scope": 55809, + "nameLocation": "574:24:150", + "scope": 55968, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -466,10 +465,10 @@ "typeString": "string" }, "typeName": { - "id": 55559, + "id": 55718, "name": "string", "nodeType": "ElementaryTypeName", - "src": "538:6:148", + "src": "558:6:150", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -477,14 +476,14 @@ }, "value": { "hexValue": "696e76616c696420706172742073656c6c20616d6f756e74", - "id": 55560, + "id": 55719, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "581:26:148", + "src": "601:26:150", "typeDescriptions": { "typeIdentifier": "t_stringliteral_13888f3e2c66a6833a702e4c524c8f569844c933aeed3a714d9bdec19e4fcaf0", "typeString": "literal_string \"invalid part sell amount\"" @@ -494,15 +493,15 @@ "visibility": "internal" }, { - "id": 55564, + "id": 55723, "nodeType": "VariableDeclaration", - "src": "609:65:148", + "src": "629:65:150", "nodes": [], "constant": true, "mutability": "constant", "name": "INVALID_MIN_PART_LIMIT", - "nameLocation": "625:22:148", - "scope": 55809, + "nameLocation": "645:22:150", + "scope": 55968, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -510,10 +509,10 @@ "typeString": "string" }, "typeName": { - "id": 55562, + "id": 55721, "name": "string", "nodeType": "ElementaryTypeName", - "src": "609:6:148", + "src": "629:6:150", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -521,14 +520,14 @@ }, "value": { "hexValue": "696e76616c6964206d696e2070617274206c696d6974", - "id": 55563, + "id": 55722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "650:24:148", + "src": "670:24:150", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a2217506efe7ecc630d04c43936a49a469540df426720272fca665a12832b72b", "typeString": "literal_string \"invalid min part limit\"" @@ -538,15 +537,15 @@ "visibility": "internal" }, { - "id": 55567, + "id": 55726, "nodeType": "VariableDeclaration", - "src": "676:57:148", + "src": "696:57:150", "nodes": [], "constant": true, "mutability": "constant", "name": "INVALID_START_TIME", - "nameLocation": "692:18:148", - "scope": 55809, + "nameLocation": "712:18:150", + "scope": 55968, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -554,10 +553,10 @@ "typeString": "string" }, "typeName": { - "id": 55565, + "id": 55724, "name": "string", "nodeType": "ElementaryTypeName", - "src": "676:6:148", + "src": "696:6:150", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -565,14 +564,14 @@ }, "value": { "hexValue": "696e76616c69642073746172742074696d65", - "id": 55566, + "id": 55725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "713:20:148", + "src": "733:20:150", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1adc8832bf64f8080a4f959bae6e863f2710f9a78ea46fd936465b76a9b6aecb", "typeString": "literal_string \"invalid start time\"" @@ -582,15 +581,15 @@ "visibility": "internal" }, { - "id": 55570, + "id": 55729, "nodeType": "VariableDeclaration", - "src": "735:55:148", + "src": "755:55:150", "nodes": [], "constant": true, "mutability": "constant", "name": "INVALID_NUM_PARTS", - "nameLocation": "751:17:148", - "scope": 55809, + "nameLocation": "771:17:150", + "scope": 55968, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -598,10 +597,10 @@ "typeString": "string" }, "typeName": { - "id": 55568, + "id": 55727, "name": "string", "nodeType": "ElementaryTypeName", - "src": "735:6:148", + "src": "755:6:150", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -609,14 +608,14 @@ }, "value": { "hexValue": "696e76616c6964206e756d207061727473", - "id": 55569, + "id": 55728, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "771:19:148", + "src": "791:19:150", "typeDescriptions": { "typeIdentifier": "t_stringliteral_80b4cba6110efa5851d166269351f4bce765a9d763a3fbeba551d7c59deda87d", "typeString": "literal_string \"invalid num parts\"" @@ -626,15 +625,15 @@ "visibility": "internal" }, { - "id": 55573, + "id": 55732, "nodeType": "VariableDeclaration", - "src": "792:55:148", + "src": "812:55:150", "nodes": [], "constant": true, "mutability": "constant", "name": "INVALID_FREQUENCY", - "nameLocation": "808:17:148", - "scope": 55809, + "nameLocation": "828:17:150", + "scope": 55968, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -642,10 +641,10 @@ "typeString": "string" }, "typeName": { - "id": 55571, + "id": 55730, "name": "string", "nodeType": "ElementaryTypeName", - "src": "792:6:148", + "src": "812:6:150", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -653,14 +652,14 @@ }, "value": { "hexValue": "696e76616c6964206672657175656e6379", - "id": 55572, + "id": 55731, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "828:19:148", + "src": "848:19:150", "typeDescriptions": { "typeIdentifier": "t_stringliteral_02d9ff67245f7036e86dadba92838cb1907f2df253a93bf8e16f91992d01392d", "typeString": "literal_string \"invalid frequency\"" @@ -670,15 +669,15 @@ "visibility": "internal" }, { - "id": 55576, + "id": 55735, "nodeType": "VariableDeclaration", - "src": "849:45:148", + "src": "869:45:150", "nodes": [], "constant": true, "mutability": "constant", "name": "INVALID_SPAN", - "nameLocation": "865:12:148", - "scope": 55809, + "nameLocation": "885:12:150", + "scope": 55968, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -686,10 +685,10 @@ "typeString": "string" }, "typeName": { - "id": 55574, + "id": 55733, "name": "string", "nodeType": "ElementaryTypeName", - "src": "849:6:148", + "src": "869:6:150", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -697,14 +696,14 @@ }, "value": { "hexValue": "696e76616c6964207370616e", - "id": 55575, + "id": 55734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "880:14:148", + "src": "900:14:150", "typeDescriptions": { "typeIdentifier": "t_stringliteral_885fcd8116586d7a0ccd3778a637aebb1dbfdafa74da00b2a2b75f817eb43e0e", "typeString": "literal_string \"invalid span\"" @@ -714,31 +713,31 @@ "visibility": "internal" }, { - "id": 55808, + "id": 55967, "nodeType": "ContractDefinition", - "src": "1061:2910:148", + "src": "1081:2910:150", "nodes": [ { - "id": 55580, + "id": 55739, "nodeType": "UsingForDirective", - "src": "1085:27:148", + "src": "1105:27:150", "nodes": [], "global": false, "libraryName": { - "id": 55578, + "id": 55737, "name": "SafeCast", "nameLocations": [ - "1091:8:148" + "1111:8:150" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2786, - "src": "1091:8:148" + "referencedDeclaration": 47936, + "src": "1111:8:150" }, "typeName": { - "id": 55579, + "id": 55738, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1104:7:148", + "src": "1124:7:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -746,44 +745,44 @@ } }, { - "id": 55603, + "id": 55762, "nodeType": "StructDefinition", - "src": "1138:375:148", + "src": "1158:375:150", "nodes": [], "canonicalName": "TWAPOrder.Data", "members": [ { "constant": false, - "id": 55583, + "id": 55742, "mutability": "mutable", "name": "sellToken", - "nameLocation": "1167:9:148", + "nameLocation": "1187:9:150", "nodeType": "VariableDeclaration", - "scope": 55603, - "src": "1160:16:148", + "scope": 55762, + "src": "1180:16:150", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 55582, + "id": 55741, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55581, + "id": 55740, "name": "IERC20", "nameLocations": [ - "1160:6:148" + "1180:6:150" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "1160:6:148" + "referencedDeclaration": 45820, + "src": "1180:6:150" }, - "referencedDeclaration": 670, - "src": "1160:6:148", + "referencedDeclaration": 45820, + "src": "1180:6:150", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -791,36 +790,36 @@ }, { "constant": false, - "id": 55586, + "id": 55745, "mutability": "mutable", "name": "buyToken", - "nameLocation": "1193:8:148", + "nameLocation": "1213:8:150", "nodeType": "VariableDeclaration", - "scope": 55603, - "src": "1186:15:148", + "scope": 55762, + "src": "1206:15:150", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 55585, + "id": 55744, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55584, + "id": 55743, "name": "IERC20", "nameLocations": [ - "1186:6:148" + "1206:6:150" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "1186:6:148" + "referencedDeclaration": 45820, + "src": "1206:6:150" }, - "referencedDeclaration": 670, - "src": "1186:6:148", + "referencedDeclaration": 45820, + "src": "1206:6:150", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -828,13 +827,13 @@ }, { "constant": false, - "id": 55588, + "id": 55747, "mutability": "mutable", "name": "receiver", - "nameLocation": "1219:8:148", + "nameLocation": "1239:8:150", "nodeType": "VariableDeclaration", - "scope": 55603, - "src": "1211:16:148", + "scope": 55762, + "src": "1231:16:150", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -842,10 +841,10 @@ "typeString": "address" }, "typeName": { - "id": 55587, + "id": 55746, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1211:7:148", + "src": "1231:7:150", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -856,13 +855,13 @@ }, { "constant": false, - "id": 55590, + "id": 55749, "mutability": "mutable", "name": "partSellAmount", - "nameLocation": "1245:14:148", + "nameLocation": "1265:14:150", "nodeType": "VariableDeclaration", - "scope": 55603, - "src": "1237:22:148", + "scope": 55762, + "src": "1257:22:150", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -870,10 +869,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55589, + "id": 55748, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1237:7:148", + "src": "1257:7:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -883,13 +882,13 @@ }, { "constant": false, - "id": 55592, + "id": 55751, "mutability": "mutable", "name": "minPartLimit", - "nameLocation": "1321:12:148", + "nameLocation": "1341:12:150", "nodeType": "VariableDeclaration", - "scope": 55603, - "src": "1313:20:148", + "scope": 55762, + "src": "1333:20:150", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -897,10 +896,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55591, + "id": 55750, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1313:7:148", + "src": "1333:7:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -910,13 +909,13 @@ }, { "constant": false, - "id": 55594, + "id": 55753, "mutability": "mutable", "name": "t0", - "nameLocation": "1419:2:148", + "nameLocation": "1439:2:150", "nodeType": "VariableDeclaration", - "scope": 55603, - "src": "1411:10:148", + "scope": 55762, + "src": "1431:10:150", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -924,10 +923,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55593, + "id": 55752, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1411:7:148", + "src": "1431:7:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -937,13 +936,13 @@ }, { "constant": false, - "id": 55596, + "id": 55755, "mutability": "mutable", "name": "n", - "nameLocation": "1439:1:148", + "nameLocation": "1459:1:150", "nodeType": "VariableDeclaration", - "scope": 55603, - "src": "1431:9:148", + "scope": 55762, + "src": "1451:9:150", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -951,10 +950,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55595, + "id": 55754, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1431:7:148", + "src": "1451:7:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -964,13 +963,13 @@ }, { "constant": false, - "id": 55598, + "id": 55757, "mutability": "mutable", "name": "t", - "nameLocation": "1458:1:148", + "nameLocation": "1478:1:150", "nodeType": "VariableDeclaration", - "scope": 55603, - "src": "1450:9:148", + "scope": 55762, + "src": "1470:9:150", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -978,10 +977,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55597, + "id": 55756, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1450:7:148", + "src": "1470:7:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -991,13 +990,13 @@ }, { "constant": false, - "id": 55600, + "id": 55759, "mutability": "mutable", "name": "span", - "nameLocation": "1477:4:148", + "nameLocation": "1497:4:150", "nodeType": "VariableDeclaration", - "scope": 55603, - "src": "1469:12:148", + "scope": 55762, + "src": "1489:12:150", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1005,10 +1004,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55599, + "id": 55758, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1469:7:148", + "src": "1489:7:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1018,13 +1017,13 @@ }, { "constant": false, - "id": 55602, + "id": 55761, "mutability": "mutable", "name": "appData", - "nameLocation": "1499:7:148", + "nameLocation": "1519:7:150", "nodeType": "VariableDeclaration", - "scope": 55603, - "src": "1491:15:148", + "scope": 55762, + "src": "1511:15:150", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1032,10 +1031,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 55601, + "id": 55760, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1491:7:148", + "src": "1511:7:150", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1045,24 +1044,24 @@ } ], "name": "Data", - "nameLocation": "1145:4:148", - "scope": 55808, + "nameLocation": "1165:4:150", + "scope": 55967, "visibility": "public" }, { - "id": 55753, + "id": 55912, "nodeType": "FunctionDefinition", - "src": "1646:963:148", + "src": "1666:963:150", "nodes": [], "body": { - "id": 55752, + "id": 55911, "nodeType": "Block", - "src": "1696:913:148", + "src": "1716:913:150", "nodes": [], "statements": [ { "condition": { - "id": 55616, + "id": 55775, "isConstant": false, "isLValue": false, "isPure": false, @@ -1070,44 +1069,44 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1710:34:148", + "src": "1730:34:150", "subExpression": { "components": [ { "commonType": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, - "id": 55614, + "id": 55773, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55610, + "id": 55769, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "1712:4:148", + "referencedDeclaration": 55766, + "src": "1732:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55611, + "id": 55770, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1717:9:148", + "memberLocation": "1737:9:150", "memberName": "sellToken", "nodeType": "MemberAccess", - "referencedDeclaration": 55583, - "src": "1712:14:148", + "referencedDeclaration": 55742, + "src": "1732:14:150", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -1115,47 +1114,47 @@ "operator": "!=", "rightExpression": { "expression": { - "id": 55612, + "id": 55771, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "1730:4:148", + "referencedDeclaration": 55766, + "src": "1750:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55613, + "id": 55772, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1735:8:148", + "memberLocation": "1755:8:150", "memberName": "buyToken", "nodeType": "MemberAccess", - "referencedDeclaration": 55586, - "src": "1730:13:148", + "referencedDeclaration": 55745, + "src": "1750:13:150", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, - "src": "1712:31:148", + "src": "1732:31:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55615, + "id": 55774, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1711:33:148", + "src": "1731:33:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1166,19 +1165,19 @@ "typeString": "bool" } }, - "id": 55623, + "id": 55782, "nodeType": "IfStatement", - "src": "1706:98:148", + "src": "1726:98:150", "trueBody": { "errorCall": { "arguments": [ { - "id": 55620, + "id": 55779, "name": "INVALID_SAME_TOKEN", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55555, - "src": "1785:18:148", + "referencedDeclaration": 55714, + "src": "1805:18:150", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1193,33 +1192,33 @@ } ], "expression": { - "id": 55617, + "id": 55776, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "1753:17:148", + "referencedDeclaration": 54540, + "src": "1773:17:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55619, + "id": 55778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1771:13:148", + "memberLocation": "1791:13:150", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "1753:31:148", + "referencedDeclaration": 54484, + "src": "1773:31:150", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55621, + "id": 55780, "isConstant": false, "isLValue": false, "isPure": false, @@ -1228,21 +1227,21 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1753:51:148", + "src": "1773:51:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55622, + "id": 55781, "nodeType": "RevertStatement", - "src": "1746:58:148" + "src": "1766:58:150" } }, { "condition": { - "id": 55646, + "id": 55805, "isConstant": false, "isLValue": false, "isPure": false, @@ -1250,7 +1249,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1818:80:148", + "src": "1838:80:150", "subExpression": { "components": [ { @@ -1258,7 +1257,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 55644, + "id": 55803, "isConstant": false, "isLValue": false, "isPure": false, @@ -1268,7 +1267,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 55633, + "id": 55792, "isConstant": false, "isLValue": false, "isPure": false, @@ -1277,29 +1276,29 @@ "arguments": [ { "expression": { - "id": 55626, + "id": 55785, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "1828:4:148", + "referencedDeclaration": 55766, + "src": "1848:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55627, + "id": 55786, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1833:9:148", + "memberLocation": "1853:9:150", "memberName": "sellToken", "nodeType": "MemberAccess", - "referencedDeclaration": 55583, - "src": "1828:14:148", + "referencedDeclaration": 55742, + "src": "1848:14:150", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } } @@ -1307,30 +1306,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } ], - "id": 55625, + "id": 55784, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1820:7:148", + "src": "1840:7:150", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 55624, + "id": 55783, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1820:7:148", + "src": "1840:7:150", "typeDescriptions": {} } }, - "id": 55628, + "id": 55787, "isConstant": false, "isLValue": false, "isPure": false, @@ -1339,7 +1338,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1820:23:148", + "src": "1840:23:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1352,14 +1351,14 @@ "arguments": [ { "hexValue": "30", - "id": 55631, + "id": 55790, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1855:1:148", + "src": "1875:1:150", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1374,26 +1373,26 @@ "typeString": "int_const 0" } ], - "id": 55630, + "id": 55789, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1847:7:148", + "src": "1867:7:150", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 55629, + "id": 55788, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1847:7:148", + "src": "1867:7:150", "typeDescriptions": {} } }, - "id": 55632, + "id": 55791, "isConstant": false, "isLValue": false, "isPure": true, @@ -1402,14 +1401,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1847:10:148", + "src": "1867:10:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1820:37:148", + "src": "1840:37:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1422,7 +1421,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 55643, + "id": 55802, "isConstant": false, "isLValue": false, "isPure": false, @@ -1431,29 +1430,29 @@ "arguments": [ { "expression": { - "id": 55636, + "id": 55795, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "1869:4:148", + "referencedDeclaration": 55766, + "src": "1889:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55637, + "id": 55796, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1874:8:148", + "memberLocation": "1894:8:150", "memberName": "buyToken", "nodeType": "MemberAccess", - "referencedDeclaration": 55586, - "src": "1869:13:148", + "referencedDeclaration": 55745, + "src": "1889:13:150", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } } @@ -1461,30 +1460,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } ], - "id": 55635, + "id": 55794, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1861:7:148", + "src": "1881:7:150", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 55634, + "id": 55793, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1861:7:148", + "src": "1881:7:150", "typeDescriptions": {} } }, - "id": 55638, + "id": 55797, "isConstant": false, "isLValue": false, "isPure": false, @@ -1493,7 +1492,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1861:22:148", + "src": "1881:22:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -1506,14 +1505,14 @@ "arguments": [ { "hexValue": "30", - "id": 55641, + "id": 55800, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1895:1:148", + "src": "1915:1:150", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1528,26 +1527,26 @@ "typeString": "int_const 0" } ], - "id": 55640, + "id": 55799, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1887:7:148", + "src": "1907:7:150", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 55639, + "id": 55798, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1887:7:148", + "src": "1907:7:150", "typeDescriptions": {} } }, - "id": 55642, + "id": 55801, "isConstant": false, "isLValue": false, "isPure": true, @@ -1556,34 +1555,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1887:10:148", + "src": "1907:10:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1861:36:148", + "src": "1881:36:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1820:77:148", + "src": "1840:77:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55645, + "id": 55804, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1819:79:148", + "src": "1839:79:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1594,24 +1593,24 @@ "typeString": "bool" } }, - "id": 55654, + "id": 55813, "nodeType": "IfStatement", - "src": "1814:164:148", + "src": "1834:164:150", "trueBody": { - "id": 55653, + "id": 55812, "nodeType": "Block", - "src": "1900:78:148", + "src": "1920:78:150", "statements": [ { "errorCall": { "arguments": [ { - "id": 55650, + "id": 55809, "name": "INVALID_TOKEN", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55558, - "src": "1953:13:148", + "referencedDeclaration": 55717, + "src": "1973:13:150", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1626,33 +1625,33 @@ } ], "expression": { - "id": 55647, + "id": 55806, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "1921:17:148", + "referencedDeclaration": 54540, + "src": "1941:17:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55649, + "id": 55808, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1939:13:148", + "memberLocation": "1959:13:150", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "1921:31:148", + "referencedDeclaration": 54484, + "src": "1941:31:150", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55651, + "id": 55810, "isConstant": false, "isLValue": false, "isPure": false, @@ -1661,23 +1660,23 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1921:46:148", + "src": "1941:46:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55652, + "id": 55811, "nodeType": "RevertStatement", - "src": "1914:53:148" + "src": "1934:53:150" } ] } }, { "condition": { - "id": 55660, + "id": 55819, "isConstant": false, "isLValue": false, "isPure": false, @@ -1685,7 +1684,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1991:26:148", + "src": "2011:26:150", "subExpression": { "components": [ { @@ -1693,34 +1692,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55658, + "id": 55817, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55655, + "id": 55814, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "1993:4:148", + "referencedDeclaration": 55766, + "src": "2013:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55656, + "id": 55815, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1998:14:148", + "memberLocation": "2018:14:150", "memberName": "partSellAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 55590, - "src": "1993:19:148", + "referencedDeclaration": 55749, + "src": "2013:19:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1730,35 +1729,35 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 55657, + "id": 55816, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2015:1:148", + "src": "2035:1:150", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1993:23:148", + "src": "2013:23:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55659, + "id": 55818, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1992:25:148", + "src": "2012:25:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1769,19 +1768,19 @@ "typeString": "bool" } }, - "id": 55667, + "id": 55826, "nodeType": "IfStatement", - "src": "1987:96:148", + "src": "2007:96:150", "trueBody": { "errorCall": { "arguments": [ { - "id": 55664, + "id": 55823, "name": "INVALID_PART_SELL_AMOUNT", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55561, - "src": "2058:24:148", + "referencedDeclaration": 55720, + "src": "2078:24:150", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1796,33 +1795,33 @@ } ], "expression": { - "id": 55661, + "id": 55820, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "2026:17:148", + "referencedDeclaration": 54540, + "src": "2046:17:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55663, + "id": 55822, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2044:13:148", + "memberLocation": "2064:13:150", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "2026:31:148", + "referencedDeclaration": 54484, + "src": "2046:31:150", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55665, + "id": 55824, "isConstant": false, "isLValue": false, "isPure": false, @@ -1831,21 +1830,21 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2026:57:148", + "src": "2046:57:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55666, + "id": 55825, "nodeType": "RevertStatement", - "src": "2019:64:148" + "src": "2039:64:150" } }, { "condition": { - "id": 55673, + "id": 55832, "isConstant": false, "isLValue": false, "isPure": false, @@ -1853,7 +1852,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2097:24:148", + "src": "2117:24:150", "subExpression": { "components": [ { @@ -1861,34 +1860,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55671, + "id": 55830, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55668, + "id": 55827, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "2099:4:148", + "referencedDeclaration": 55766, + "src": "2119:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55669, + "id": 55828, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2104:12:148", + "memberLocation": "2124:12:150", "memberName": "minPartLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 55592, - "src": "2099:17:148", + "referencedDeclaration": 55751, + "src": "2119:17:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1898,35 +1897,35 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 55670, + "id": 55829, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2119:1:148", + "src": "2139:1:150", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2099:21:148", + "src": "2119:21:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55672, + "id": 55831, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2098:23:148", + "src": "2118:23:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1937,19 +1936,19 @@ "typeString": "bool" } }, - "id": 55680, + "id": 55839, "nodeType": "IfStatement", - "src": "2093:92:148", + "src": "2113:92:150", "trueBody": { "errorCall": { "arguments": [ { - "id": 55677, + "id": 55836, "name": "INVALID_MIN_PART_LIMIT", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55564, - "src": "2162:22:148", + "referencedDeclaration": 55723, + "src": "2182:22:150", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1964,33 +1963,33 @@ } ], "expression": { - "id": 55674, + "id": 55833, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "2130:17:148", + "referencedDeclaration": 54540, + "src": "2150:17:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55676, + "id": 55835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2148:13:148", + "memberLocation": "2168:13:150", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "2130:31:148", + "referencedDeclaration": 54484, + "src": "2150:31:150", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55678, + "id": 55837, "isConstant": false, "isLValue": false, "isPure": false, @@ -1999,21 +1998,21 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2130:55:148", + "src": "2150:55:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55679, + "id": 55838, "nodeType": "RevertStatement", - "src": "2123:62:148" + "src": "2143:62:150" } }, { "condition": { - "id": 55690, + "id": 55849, "isConstant": false, "isLValue": false, "isPure": false, @@ -2021,7 +2020,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2199:29:148", + "src": "2219:29:150", "subExpression": { "components": [ { @@ -2029,34 +2028,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55688, + "id": 55847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55681, + "id": 55840, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "2201:4:148", + "referencedDeclaration": 55766, + "src": "2221:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55682, + "id": 55841, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2206:2:148", + "memberLocation": "2226:2:150", "memberName": "t0", "nodeType": "MemberAccess", - "referencedDeclaration": 55594, - "src": "2201:7:148", + "referencedDeclaration": 55753, + "src": "2221:7:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2068,22 +2067,22 @@ "expression": { "arguments": [ { - "id": 55685, + "id": 55844, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2216:6:148", + "src": "2236:6:150", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 55684, + "id": 55843, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2216:6:148", + "src": "2236:6:150", "typeDescriptions": {} } } @@ -2095,18 +2094,18 @@ "typeString": "type(uint32)" } ], - "id": 55683, + "id": 55842, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "2211:4:148", + "src": "2231:4:150", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 55686, + "id": 55845, "isConstant": false, "isLValue": false, "isPure": true, @@ -2115,42 +2114,42 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2211:12:148", + "src": "2231:12:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint32", "typeString": "type(uint32)" } }, - "id": 55687, + "id": 55846, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2224:3:148", + "memberLocation": "2244:3:150", "memberName": "max", "nodeType": "MemberAccess", - "src": "2211:16:148", + "src": "2231:16:150", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "2201:26:148", + "src": "2221:26:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55689, + "id": 55848, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2200:28:148", + "src": "2220:28:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2161,19 +2160,19 @@ "typeString": "bool" } }, - "id": 55697, + "id": 55856, "nodeType": "IfStatement", - "src": "2195:93:148", + "src": "2215:93:150", "trueBody": { "errorCall": { "arguments": [ { - "id": 55694, + "id": 55853, "name": "INVALID_START_TIME", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55567, - "src": "2269:18:148", + "referencedDeclaration": 55726, + "src": "2289:18:150", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -2188,33 +2187,33 @@ } ], "expression": { - "id": 55691, + "id": 55850, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "2237:17:148", + "referencedDeclaration": 54540, + "src": "2257:17:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55693, + "id": 55852, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2255:13:148", + "memberLocation": "2275:13:150", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "2237:31:148", + "referencedDeclaration": 54484, + "src": "2257:31:150", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55695, + "id": 55854, "isConstant": false, "isLValue": false, "isPure": false, @@ -2223,21 +2222,21 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2237:51:148", + "src": "2257:51:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55696, + "id": 55855, "nodeType": "RevertStatement", - "src": "2230:58:148" + "src": "2250:58:150" } }, { "condition": { - "id": 55712, + "id": 55871, "isConstant": false, "isLValue": false, "isPure": false, @@ -2245,7 +2244,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2302:43:148", + "src": "2322:43:150", "subExpression": { "components": [ { @@ -2253,7 +2252,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 55710, + "id": 55869, "isConstant": false, "isLValue": false, "isPure": false, @@ -2263,34 +2262,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55701, + "id": 55860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55698, + "id": 55857, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "2304:4:148", + "referencedDeclaration": 55766, + "src": "2324:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55699, + "id": 55858, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2309:1:148", + "memberLocation": "2329:1:150", "memberName": "n", "nodeType": "MemberAccess", - "referencedDeclaration": 55596, - "src": "2304:6:148", + "referencedDeclaration": 55755, + "src": "2324:6:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2300,21 +2299,21 @@ "operator": ">", "rightExpression": { "hexValue": "31", - "id": 55700, + "id": 55859, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2313:1:148", + "src": "2333:1:150", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "2304:10:148", + "src": "2324:10:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2327,34 +2326,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55709, + "id": 55868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55702, + "id": 55861, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "2318:4:148", + "referencedDeclaration": 55766, + "src": "2338:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55703, + "id": 55862, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2323:1:148", + "memberLocation": "2343:1:150", "memberName": "n", "nodeType": "MemberAccess", - "referencedDeclaration": 55596, - "src": "2318:6:148", + "referencedDeclaration": 55755, + "src": "2338:6:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2366,22 +2365,22 @@ "expression": { "arguments": [ { - "id": 55706, + "id": 55865, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2333:6:148", + "src": "2353:6:150", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 55705, + "id": 55864, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2333:6:148", + "src": "2353:6:150", "typeDescriptions": {} } } @@ -2393,18 +2392,18 @@ "typeString": "type(uint32)" } ], - "id": 55704, + "id": 55863, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "2328:4:148", + "src": "2348:4:150", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 55707, + "id": 55866, "isConstant": false, "isLValue": false, "isPure": true, @@ -2413,48 +2412,48 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2328:12:148", + "src": "2348:12:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint32", "typeString": "type(uint32)" } }, - "id": 55708, + "id": 55867, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2341:3:148", + "memberLocation": "2361:3:150", "memberName": "max", "nodeType": "MemberAccess", - "src": "2328:16:148", + "src": "2348:16:150", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "2318:26:148", + "src": "2338:26:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2304:40:148", + "src": "2324:40:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55711, + "id": 55870, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2303:42:148", + "src": "2323:42:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2465,19 +2464,19 @@ "typeString": "bool" } }, - "id": 55719, + "id": 55878, "nodeType": "IfStatement", - "src": "2298:106:148", + "src": "2318:106:150", "trueBody": { "errorCall": { "arguments": [ { - "id": 55716, + "id": 55875, "name": "INVALID_NUM_PARTS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55570, - "src": "2386:17:148", + "referencedDeclaration": 55729, + "src": "2406:17:150", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -2492,33 +2491,33 @@ } ], "expression": { - "id": 55713, + "id": 55872, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "2354:17:148", + "referencedDeclaration": 54540, + "src": "2374:17:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55715, + "id": 55874, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2372:13:148", + "memberLocation": "2392:13:150", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "2354:31:148", + "referencedDeclaration": 54484, + "src": "2374:31:150", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55717, + "id": 55876, "isConstant": false, "isLValue": false, "isPure": false, @@ -2527,21 +2526,21 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2354:50:148", + "src": "2374:50:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55718, + "id": 55877, "nodeType": "RevertStatement", - "src": "2347:57:148" + "src": "2367:57:150" } }, { "condition": { - "id": 55730, + "id": 55889, "isConstant": false, "isLValue": false, "isPure": false, @@ -2549,7 +2548,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2418:35:148", + "src": "2438:35:150", "subExpression": { "components": [ { @@ -2557,7 +2556,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 55728, + "id": 55887, "isConstant": false, "isLValue": false, "isPure": false, @@ -2567,34 +2566,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55723, + "id": 55882, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55720, + "id": 55879, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "2420:4:148", + "referencedDeclaration": 55766, + "src": "2440:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55721, + "id": 55880, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2425:1:148", + "memberLocation": "2445:1:150", "memberName": "t", "nodeType": "MemberAccess", - "referencedDeclaration": 55598, - "src": "2420:6:148", + "referencedDeclaration": 55757, + "src": "2440:6:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2604,21 +2603,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 55722, + "id": 55881, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2429:1:148", + "src": "2449:1:150", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2420:10:148", + "src": "2440:10:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2631,34 +2630,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55727, + "id": 55886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55724, + "id": 55883, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "2434:4:148", + "referencedDeclaration": 55766, + "src": "2454:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55725, + "id": 55884, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2439:1:148", + "memberLocation": "2459:1:150", "memberName": "t", "nodeType": "MemberAccess", - "referencedDeclaration": 55598, - "src": "2434:6:148", + "referencedDeclaration": 55757, + "src": "2454:6:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2668,14 +2667,14 @@ "operator": "<=", "rightExpression": { "hexValue": "333635", - "id": 55726, + "id": 55885, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2444:8:148", + "src": "2464:8:150", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_31536000_by_1", @@ -2683,27 +2682,27 @@ }, "value": "365" }, - "src": "2434:18:148", + "src": "2454:18:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2420:32:148", + "src": "2440:32:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55729, + "id": 55888, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2419:34:148", + "src": "2439:34:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2714,19 +2713,19 @@ "typeString": "bool" } }, - "id": 55737, + "id": 55896, "nodeType": "IfStatement", - "src": "2414:98:148", + "src": "2434:98:150", "trueBody": { "errorCall": { "arguments": [ { - "id": 55734, + "id": 55893, "name": "INVALID_FREQUENCY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55573, - "src": "2494:17:148", + "referencedDeclaration": 55732, + "src": "2514:17:150", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -2741,33 +2740,33 @@ } ], "expression": { - "id": 55731, + "id": 55890, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "2462:17:148", + "referencedDeclaration": 54540, + "src": "2482:17:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55733, + "id": 55892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2480:13:148", + "memberLocation": "2500:13:150", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "2462:31:148", + "referencedDeclaration": 54484, + "src": "2482:31:150", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55735, + "id": 55894, "isConstant": false, "isLValue": false, "isPure": false, @@ -2776,21 +2775,21 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2462:50:148", + "src": "2482:50:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55736, + "id": 55895, "nodeType": "RevertStatement", - "src": "2455:57:148" + "src": "2475:57:150" } }, { "condition": { - "id": 55744, + "id": 55903, "isConstant": false, "isLValue": false, "isPure": false, @@ -2798,7 +2797,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2526:22:148", + "src": "2546:22:150", "subExpression": { "components": [ { @@ -2806,34 +2805,34 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55742, + "id": 55901, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55738, + "id": 55897, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "2528:4:148", + "referencedDeclaration": 55766, + "src": "2548:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55739, + "id": 55898, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2533:4:148", + "memberLocation": "2553:4:150", "memberName": "span", "nodeType": "MemberAccess", - "referencedDeclaration": 55600, - "src": "2528:9:148", + "referencedDeclaration": 55759, + "src": "2548:9:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2843,47 +2842,47 @@ "operator": "<=", "rightExpression": { "expression": { - "id": 55740, + "id": 55899, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55607, - "src": "2541:4:148", + "referencedDeclaration": 55766, + "src": "2561:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55741, + "id": 55900, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2546:1:148", + "memberLocation": "2566:1:150", "memberName": "t", "nodeType": "MemberAccess", - "referencedDeclaration": 55598, - "src": "2541:6:148", + "referencedDeclaration": 55757, + "src": "2561:6:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2528:19:148", + "src": "2548:19:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55743, + "id": 55902, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2527:21:148", + "src": "2547:21:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2894,19 +2893,19 @@ "typeString": "bool" } }, - "id": 55751, + "id": 55910, "nodeType": "IfStatement", - "src": "2522:80:148", + "src": "2542:80:150", "trueBody": { "errorCall": { "arguments": [ { - "id": 55748, + "id": 55907, "name": "INVALID_SPAN", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55576, - "src": "2589:12:148", + "referencedDeclaration": 55735, + "src": "2609:12:150", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -2921,33 +2920,33 @@ } ], "expression": { - "id": 55745, + "id": 55904, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "2557:17:148", + "referencedDeclaration": 54540, + "src": "2577:17:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55747, + "id": 55906, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2575:13:148", + "memberLocation": "2595:13:150", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "2557:31:148", + "referencedDeclaration": 54484, + "src": "2577:31:150", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55749, + "id": 55908, "isConstant": false, "isLValue": false, "isPure": false, @@ -2956,109 +2955,109 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2557:45:148", + "src": "2577:45:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55750, + "id": 55909, "nodeType": "RevertStatement", - "src": "2550:52:148" + "src": "2570:52:150" } } ] }, "documentation": { - "id": 55604, + "id": 55763, "nodeType": "StructuredDocumentation", - "src": "1541:100:148", + "src": "1561:100:150", "text": " @dev revert if the order is invalid\n @param self The TWAP order to validate" }, "implemented": true, "kind": "function", "modifiers": [], "name": "validate", - "nameLocation": "1655:8:148", + "nameLocation": "1675:8:150", "parameters": { - "id": 55608, + "id": 55767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55607, + "id": 55766, "mutability": "mutable", "name": "self", - "nameLocation": "1676:4:148", + "nameLocation": "1696:4:150", "nodeType": "VariableDeclaration", - "scope": 55753, - "src": "1664:16:148", + "scope": 55912, + "src": "1684:16:150", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data" }, "typeName": { - "id": 55606, + "id": 55765, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55605, + "id": 55764, "name": "Data", "nameLocations": [ - "1664:4:148" + "1684:4:150" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 55603, - "src": "1664:4:148" + "referencedDeclaration": 55762, + "src": "1684:4:150" }, - "referencedDeclaration": 55603, - "src": "1664:4:148", + "referencedDeclaration": 55762, + "src": "1684:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_storage_ptr", + "typeIdentifier": "t_struct$_Data_$55762_storage_ptr", "typeString": "struct TWAPOrder.Data" } }, "visibility": "internal" } ], - "src": "1663:18:148" + "src": "1683:18:150" }, "returnParameters": { - "id": 55609, + "id": 55768, "nodeType": "ParameterList", "parameters": [], - "src": "1696:0:148" + "src": "1716:0:150" }, - "scope": 55808, + "scope": 55967, "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { - "id": 55807, + "id": 55966, "nodeType": "FunctionDefinition", - "src": "2828:1141:148", + "src": "2848:1141:150", "nodes": [], "body": { - "id": 55806, + "id": 55965, "nodeType": "Block", - "src": "2916:1053:148", + "src": "2936:1053:150", "nodes": [], "statements": [ { "expression": { "arguments": [ { - "id": 55764, + "id": 55923, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55757, - "src": "2997:4:148", + "referencedDeclaration": 55916, + "src": "3017:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } } @@ -3066,22 +3065,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } ], - "id": 55763, + "id": 55922, "name": "validate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55753, - "src": "2988:8:148", + "referencedDeclaration": 55912, + "src": "3008:8:150", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_Data_$55603_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_pure$_t_struct$_Data_$55762_memory_ptr_$returns$__$", "typeString": "function (struct TWAPOrder.Data memory) pure" } }, - "id": 55765, + "id": 55924, "isConstant": false, "isLValue": false, "isPure": false, @@ -3090,33 +3089,33 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2988:14:148", + "src": "3008:14:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55766, + "id": 55925, "nodeType": "ExpressionStatement", - "src": "2988:14:148" + "src": "3008:14:150" }, { "expression": { - "id": 55804, + "id": 55963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 55767, + "id": 55926, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55761, - "src": "3378:5:148", + "referencedDeclaration": 55920, + "src": "3398:5:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, @@ -3126,83 +3125,83 @@ "arguments": [ { "expression": { - "id": 55770, + "id": 55929, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55757, - "src": "3426:4:148", + "referencedDeclaration": 55916, + "src": "3446:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55771, + "id": 55930, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3431:9:148", + "memberLocation": "3451:9:150", "memberName": "sellToken", "nodeType": "MemberAccess", - "referencedDeclaration": 55583, - "src": "3426:14:148", + "referencedDeclaration": 55742, + "src": "3446:14:150", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, { "expression": { - "id": 55772, + "id": 55931, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55757, - "src": "3464:4:148", + "referencedDeclaration": 55916, + "src": "3484:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55773, + "id": 55932, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3469:8:148", + "memberLocation": "3489:8:150", "memberName": "buyToken", "nodeType": "MemberAccess", - "referencedDeclaration": 55586, - "src": "3464:13:148", + "referencedDeclaration": 55745, + "src": "3484:13:150", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, { "expression": { - "id": 55774, + "id": 55933, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55757, - "src": "3501:4:148", + "referencedDeclaration": 55916, + "src": "3521:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55775, + "id": 55934, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3506:8:148", + "memberLocation": "3526:8:150", "memberName": "receiver", "nodeType": "MemberAccess", - "referencedDeclaration": 55588, - "src": "3501:13:148", + "referencedDeclaration": 55747, + "src": "3521:13:150", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3210,27 +3209,27 @@ }, { "expression": { - "id": 55776, + "id": 55935, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55757, - "src": "3540:4:148", + "referencedDeclaration": 55916, + "src": "3560:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55777, + "id": 55936, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3545:14:148", + "memberLocation": "3565:14:150", "memberName": "partSellAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 55590, - "src": "3540:19:148", + "referencedDeclaration": 55749, + "src": "3560:19:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3238,27 +3237,27 @@ }, { "expression": { - "id": 55778, + "id": 55937, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55757, - "src": "3584:4:148", + "referencedDeclaration": 55916, + "src": "3604:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55779, + "id": 55938, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3589:12:148", + "memberLocation": "3609:12:150", "memberName": "minPartLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 55592, - "src": "3584:17:148", + "referencedDeclaration": 55751, + "src": "3604:17:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3272,27 +3271,27 @@ "arguments": [ { "expression": { - "id": 55782, + "id": 55941, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55757, - "src": "3658:4:148", + "referencedDeclaration": 55916, + "src": "3678:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55783, + "id": 55942, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3663:2:148", + "memberLocation": "3683:2:150", "memberName": "t0", "nodeType": "MemberAccess", - "referencedDeclaration": 55594, - "src": "3658:7:148", + "referencedDeclaration": 55753, + "src": "3678:7:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3300,27 +3299,27 @@ }, { "expression": { - "id": 55784, + "id": 55943, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55757, - "src": "3667:4:148", + "referencedDeclaration": 55916, + "src": "3687:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55785, + "id": 55944, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3672:1:148", + "memberLocation": "3692:1:150", "memberName": "n", "nodeType": "MemberAccess", - "referencedDeclaration": 55596, - "src": "3667:6:148", + "referencedDeclaration": 55755, + "src": "3687:6:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3328,27 +3327,27 @@ }, { "expression": { - "id": 55786, + "id": 55945, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55757, - "src": "3675:4:148", + "referencedDeclaration": 55916, + "src": "3695:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55787, + "id": 55946, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3680:1:148", + "memberLocation": "3700:1:150", "memberName": "t", "nodeType": "MemberAccess", - "referencedDeclaration": 55598, - "src": "3675:6:148", + "referencedDeclaration": 55757, + "src": "3695:6:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3356,27 +3355,27 @@ }, { "expression": { - "id": 55788, + "id": 55947, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55757, - "src": "3683:4:148", + "referencedDeclaration": 55916, + "src": "3703:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55789, + "id": 55948, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3688:4:148", + "memberLocation": "3708:4:150", "memberName": "span", "nodeType": "MemberAccess", - "referencedDeclaration": 55600, - "src": "3683:9:148", + "referencedDeclaration": 55759, + "src": "3703:9:150", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3403,33 +3402,33 @@ } ], "expression": { - "id": 55780, + "id": 55939, "name": "TWAPOrderMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55941, - "src": "3624:16:148", + "referencedDeclaration": 56101, + "src": "3644:16:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_TWAPOrderMathLib_$55941_$", + "typeIdentifier": "t_type$_t_contract$_TWAPOrderMathLib_$56101_$", "typeString": "type(library TWAPOrderMathLib)" } }, - "id": 55781, + "id": 55940, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3641:16:148", + "memberLocation": "3661:16:150", "memberName": "calculateValidTo", "nodeType": "MemberAccess", - "referencedDeclaration": 55940, - "src": "3624:33:148", + "referencedDeclaration": 56100, + "src": "3644:33:150", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256,uint256) view returns (uint256)" } }, - "id": 55790, + "id": 55949, "isConstant": false, "isLValue": false, "isPure": false, @@ -3438,29 +3437,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3624:69:148", + "src": "3644:69:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 55791, + "id": 55950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3694:8:148", + "memberLocation": "3714:8:150", "memberName": "toUint32", "nodeType": "MemberAccess", - "referencedDeclaration": 1948, - "src": "3624:78:148", + "referencedDeclaration": 47098, + "src": "3644:78:150", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint32_$attached_to$_t_uint256_$", "typeString": "function (uint256) pure returns (uint32)" } }, - "id": 55792, + "id": 55951, "isConstant": false, "isLValue": false, "isPure": false, @@ -3469,7 +3468,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3624:80:148", + "src": "3644:80:150", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -3478,27 +3477,27 @@ }, { "expression": { - "id": 55793, + "id": 55952, "name": "self", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55757, - "src": "3727:4:148", + "referencedDeclaration": 55916, + "src": "3747:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data memory" } }, - "id": 55794, + "id": 55953, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3732:7:148", + "memberLocation": "3752:7:150", "memberName": "appData", "nodeType": "MemberAccess", - "referencedDeclaration": 55602, - "src": "3727:12:148", + "referencedDeclaration": 55761, + "src": "3747:12:150", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3506,14 +3505,14 @@ }, { "hexValue": "30", - "id": 55795, + "id": 55954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3764:1:148", + "src": "3784:1:150", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3522,27 +3521,27 @@ }, { "expression": { - "id": 55796, + "id": 55955, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "3785:9:148", + "referencedDeclaration": 14459, + "src": "3805:9:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55797, + "id": 55956, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3795:9:148", + "memberLocation": "3815:9:150", "memberName": "KIND_SELL", "nodeType": "MemberAccess", - "referencedDeclaration": 17129, - "src": "3785:19:148", + "referencedDeclaration": 14342, + "src": "3805:19:150", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3550,14 +3549,14 @@ }, { "hexValue": "66616c7365", - "id": 55798, + "id": 55957, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3837:5:148", + "src": "3857:5:150", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3566,27 +3565,27 @@ }, { "expression": { - "id": 55799, + "id": 55958, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "3874:9:148", + "referencedDeclaration": 14459, + "src": "3894:9:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55800, + "id": 55959, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3884:13:148", + "memberLocation": "3904:13:150", "memberName": "BALANCE_ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 17137, - "src": "3874:23:148", + "referencedDeclaration": 14350, + "src": "3894:23:150", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3594,27 +3593,27 @@ }, { "expression": { - "id": 55801, + "id": 55960, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "3928:9:148", + "referencedDeclaration": 14459, + "src": "3948:9:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55802, + "id": 55961, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "3938:13:148", + "memberLocation": "3958:13:150", "memberName": "BALANCE_ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 17137, - "src": "3928:23:148", + "referencedDeclaration": 14350, + "src": "3948:23:150", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3624,11 +3623,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { @@ -3673,51 +3672,51 @@ } ], "expression": { - "id": 55768, + "id": 55927, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "3386:9:148", + "referencedDeclaration": 14459, + "src": "3406:9:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55769, + "id": 55928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3396:4:148", + "memberLocation": "3416:4:150", "memberName": "Data", "nodeType": "MemberAccess", - "referencedDeclaration": 17121, - "src": "3386:14:148", + "referencedDeclaration": 14334, + "src": "3406:14:150", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$17121_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$14334_storage_ptr_$", "typeString": "type(struct GPv2Order.Data storage pointer)" } }, - "id": 55803, + "id": 55962, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "3415:9:148", - "3454:8:148", - "3491:8:148", - "3528:10:148", - "3573:9:148", - "3615:7:148", - "3718:7:148", - "3753:9:148", - "3779:4:148", - "3818:17:148", - "3856:16:148", - "3911:15:148" + "3435:9:150", + "3474:8:150", + "3511:8:150", + "3548:10:150", + "3593:9:150", + "3635:7:150", + "3738:7:150", + "3773:9:150", + "3799:4:150", + "3838:17:150", + "3876:16:150", + "3931:15:150" ], "names": [ "sellToken", @@ -3734,126 +3733,126 @@ "buyTokenBalance" ], "nodeType": "FunctionCall", - "src": "3386:576:148", + "src": "3406:576:150", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "src": "3378:584:148", + "src": "3398:584:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "id": 55805, + "id": 55964, "nodeType": "ExpressionStatement", - "src": "3378:584:148" + "src": "3398:584:150" } ] }, "documentation": { - "id": 55754, + "id": 55913, "nodeType": "StructuredDocumentation", - "src": "2615:208:148", + "src": "2635:208:150", "text": " @dev Generate the `GPv2Order` for the current part of the TWAP order.\n @param self The TWAP order to generate the order for.\n @return order The `GPv2Order` for the current part." }, "implemented": true, "kind": "function", "modifiers": [], "name": "orderFor", - "nameLocation": "2837:8:148", + "nameLocation": "2857:8:150", "parameters": { - "id": 55758, + "id": 55917, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55757, + "id": 55916, "mutability": "mutable", "name": "self", - "nameLocation": "2858:4:148", + "nameLocation": "2878:4:150", "nodeType": "VariableDeclaration", - "scope": 55807, - "src": "2846:16:148", + "scope": 55966, + "src": "2866:16:150", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55762_memory_ptr", "typeString": "struct TWAPOrder.Data" }, "typeName": { - "id": 55756, + "id": 55915, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55755, + "id": 55914, "name": "Data", "nameLocations": [ - "2846:4:148" + "2866:4:150" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 55603, - "src": "2846:4:148" + "referencedDeclaration": 55762, + "src": "2866:4:150" }, - "referencedDeclaration": 55603, - "src": "2846:4:148", + "referencedDeclaration": 55762, + "src": "2866:4:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55603_storage_ptr", + "typeIdentifier": "t_struct$_Data_$55762_storage_ptr", "typeString": "struct TWAPOrder.Data" } }, "visibility": "internal" } ], - "src": "2845:18:148" + "src": "2865:18:150" }, "returnParameters": { - "id": 55762, + "id": 55921, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55761, + "id": 55920, "mutability": "mutable", "name": "order", - "nameLocation": "2909:5:148", + "nameLocation": "2929:5:150", "nodeType": "VariableDeclaration", - "scope": 55807, - "src": "2887:27:148", + "scope": 55966, + "src": "2907:27:150", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 55760, + "id": 55919, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55759, + "id": 55918, "name": "GPv2Order.Data", "nameLocations": [ - "2887:9:148", - "2897:4:148" + "2907:9:150", + "2917:4:150" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "2887:14:148" + "referencedDeclaration": 14334, + "src": "2907:14:150" }, - "referencedDeclaration": 17121, - "src": "2887:14:148", + "referencedDeclaration": 14334, + "src": "2907:14:150", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "src": "2886:29:148" + "src": "2906:29:150" }, - "scope": 55808, + "scope": 55967, "stateMutability": "view", "virtual": false, "visibility": "internal" @@ -3865,22 +3864,22 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 55577, + "id": 55736, "nodeType": "StructuredDocumentation", - "src": "897:163:148", + "src": "917:163:150", "text": " @title Time-weighted Average Order Library\n @author mfw78 \n @dev Structs, errors, and functions for time-weighted average orders." }, "fullyImplemented": true, "linearizedBaseContracts": [ - 55808 + 55967 ], "name": "TWAPOrder", - "nameLocation": "1069:9:148", - "scope": 55809, + "nameLocation": "1089:9:150", + "scope": 55968, "usedErrors": [] } ], "license": "GPL-3.0" }, - "id": 148 + "id": 150 } \ No newline at end of file diff --git a/out/TWAPOrderMathLib.sol/TWAPOrderMathLib.json b/out/TWAPOrderMathLib.sol/TWAPOrderMathLib.json index 8f65e73..fce2020 100644 --- a/out/TWAPOrderMathLib.sol/TWAPOrderMathLib.json +++ b/out/TWAPOrderMathLib.sol/TWAPOrderMathLib.json @@ -1,17 +1,17 @@ { "abi": [], "bytecode": { - "object": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201a6b71807ae329f4a56534a50e1755f3f52a3bb6a52d0114281961c356c256ca64736f6c63430008130033", - "sourceMap": "602:5109:149:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;602:5109:149;;;;;;;;;;;;;;;;;", + "object": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f59690ca429c77b5f98dc0914aa8f3b0390de8b0dc2260c19271a8e4cd06e8464736f6c63430008130033", + "sourceMap": "602:5117:151:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;602:5117:151;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201a6b71807ae329f4a56534a50e1755f3f52a3bb6a52d0114281961c356c256ca64736f6c63430008130033", - "sourceMap": "602:5109:149:-:0;;;;;;;;", + "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f59690ca429c77b5f98dc0914aa8f3b0390de8b0dc2260c19271a8e4cd06e8464736f6c63430008130033", + "sourceMap": "602:5117:151:-:0;;;;;;;;", "linkReferences": {} }, "methodIdentifiers": {}, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"TWAP Math is separated to facilitate easier unit testing / SMT verification.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"CoWProtocol TWAP Order Math Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/twap/libraries/TWAPOrderMathLib.sol\":\"TWAPOrderMathLib\"},\"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/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/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699\",\"dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ\"]},\"src/types/twap/libraries/TWAPOrderMathLib.sol\":{\"keccak256\":\"0x9cb5263a1b8689b6ff59b9bcd14de0d031d8ed7efef56080f32b80c6f15e8d68\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d0411cab6f65fc3ab6415f9009d6a1ba0eda0348c66c09a9937fb261cc4c18a9\",\"dweb:/ipfs/QmSdo9dtkteSATZbd8SJcE4M3bLiFZjebHhSsPmV8NZhfG\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"mfw78 \",\"details\":\"TWAP Math is separated to facilitate easier unit testing / SMT verification.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"CoWProtocol TWAP Order Math Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/twap/libraries/TWAPOrderMathLib.sol\":\"TWAPOrderMathLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/safe/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]},\"src/types/twap/libraries/TWAPOrderMathLib.sol\":{\"keccak256\":\"0x59c5e36543c2f5edd22f2fe94160903f72221b991c46d495b6f6e83394025ecc\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://35fdcc6f376a4ae9663c9e346eb47bb474faeb8b2fff746bb73708365dec0a12\",\"dweb:/ipfs/QmQCppHz3x9vNLHy5rBpdbg3qY73KT9oSwSAru9g3iwxsY\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -32,20 +32,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -60,22 +59,6 @@ "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/libraries/GPv2Interaction.sol": { "keccak256": "0xb950f05f76ac8044b82314ea5510941fdbc0f0e76e7f159023d435652b429528", "urls": [ @@ -92,6 +75,22 @@ ], "license": "LGPL-3.0-or-later" }, + "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { + "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", + "urls": [ + "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", + "dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", + "urls": [ + "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", + "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" + ], + "license": "MIT" + }, "lib/safe/contracts/interfaces/IERC165.sol": { "keccak256": "0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb", "urls": [ @@ -101,18 +100,18 @@ "license": "LGPL-3.0-only" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" }, "src/types/twap/libraries/TWAPOrderMathLib.sol": { - "keccak256": "0x9cb5263a1b8689b6ff59b9bcd14de0d031d8ed7efef56080f32b80c6f15e8d68", + "keccak256": "0x59c5e36543c2f5edd22f2fe94160903f72221b991c46d495b6f6e83394025ecc", "urls": [ - "bzz-raw://d0411cab6f65fc3ab6415f9009d6a1ba0eda0348c66c09a9937fb261cc4c18a9", - "dweb:/ipfs/QmSdo9dtkteSATZbd8SJcE4M3bLiFZjebHhSsPmV8NZhfG" + "bzz-raw://35fdcc6f376a4ae9663c9e346eb47bb474faeb8b2fff746bb73708365dec0a12", + "dweb:/ipfs/QmQCppHz3x9vNLHy5rBpdbg3qY73KT9oSwSAru9g3iwxsY" ], "license": "GPL-3.0" } @@ -121,28 +120,28 @@ }, "ast": { "absolutePath": "src/types/twap/libraries/TWAPOrderMathLib.sol", - "id": 55942, + "id": 56102, "exportedSymbols": { "AFTER_TWAP_FINISH": [ - 55820 + 55979 ], "BEFORE_TWAP_START": [ - 55816 + 55975 ], "IConditionalOrder": [ - 54437 + 54540 ], "TWAPOrderMathLib": [ - 55941 + 56101 ] }, "nodeType": "SourceUnit", - "src": "36:5676:149", + "src": "36:5684:151", "nodes": [ { - "id": 55810, + "id": 55969, "nodeType": "PragmaDirective", - "src": "36:31:149", + "src": "36:31:151", "nodes": [], "literals": [ "solidity", @@ -155,24 +154,24 @@ ] }, { - "id": 55812, + "id": 55971, "nodeType": "ImportDirective", - "src": "69:76:149", + "src": "69:76:151", "nodes": [], "absolutePath": "src/interfaces/IConditionalOrder.sol", "file": "../../../interfaces/IConditionalOrder.sol", "nameLocation": "-1:-1:-1", - "scope": 55942, - "sourceUnit": 54469, + "scope": 56102, + "sourceUnit": 54572, "symbolAliases": [ { "foreign": { - "id": 55811, + "id": 55970, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "77:17:149", + "referencedDeclaration": 54540, + "src": "77:17:151", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -181,15 +180,15 @@ "unitAlias": "" }, { - "id": 55816, + "id": 55975, "nodeType": "VariableDeclaration", - "src": "253:55:149", + "src": "253:55:151", "nodes": [], "constant": true, "mutability": "constant", "name": "BEFORE_TWAP_START", - "nameLocation": "269:17:149", - "scope": 55942, + "nameLocation": "269:17:151", + "scope": 56102, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -197,10 +196,10 @@ "typeString": "string" }, "typeName": { - "id": 55814, + "id": 55973, "name": "string", "nodeType": "ElementaryTypeName", - "src": "253:6:149", + "src": "253:6:151", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -208,14 +207,14 @@ }, "value": { "hexValue": "6265666f72652074776170207374617274", - "id": 55815, + "id": 55974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "289:19:149", + "src": "289:19:151", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8340618d06ab5ead0608c5022a456234adbfdc078dd04027cfdcef3195c915f3", "typeString": "literal_string \"before twap start\"" @@ -225,15 +224,15 @@ "visibility": "internal" }, { - "id": 55820, + "id": 55979, "nodeType": "VariableDeclaration", - "src": "368:55:149", + "src": "368:55:151", "nodes": [], "constant": true, "mutability": "constant", "name": "AFTER_TWAP_FINISH", - "nameLocation": "384:17:149", - "scope": 55942, + "nameLocation": "384:17:151", + "scope": 56102, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -241,10 +240,10 @@ "typeString": "string" }, "typeName": { - "id": 55818, + "id": 55977, "name": "string", "nodeType": "ElementaryTypeName", - "src": "368:6:149", + "src": "368:6:151", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -252,14 +251,14 @@ }, "value": { "hexValue": "616674657220747761702066696e697368", - "id": 55819, + "id": 55978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "404:19:149", + "src": "404:19:151", "typeDescriptions": { "typeIdentifier": "t_stringliteral_77111c3385b1bbd9196f08ee6f26115428a73f05a9673d7ea097cb7f0d7a0786", "typeString": "literal_string \"after twap finish\"" @@ -269,19 +268,19 @@ "visibility": "internal" }, { - "id": 55941, + "id": 56101, "nodeType": "ContractDefinition", - "src": "602:5109:149", + "src": "602:5117:151", "nodes": [ { - "id": 55940, + "id": 56100, "nodeType": "FunctionDefinition", - "src": "993:4716:149", + "src": "993:4724:151", "nodes": [], "body": { - "id": 55939, + "id": 56099, "nodeType": "Block", - "src": "1157:4552:149", + "src": "1157:4560:151", "nodes": [], "statements": [ { @@ -293,7 +292,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 55846, + "id": 56005, "isConstant": false, "isLValue": false, "isPure": false, @@ -303,18 +302,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55838, + "id": 55997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55836, + "id": 55995, "name": "numParts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55826, - "src": "1460:8:149", + "referencedDeclaration": 55985, + "src": "1460:8:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -324,21 +323,21 @@ "operator": ">", "rightExpression": { "hexValue": "31", - "id": 55837, + "id": 55996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1471:1:149", + "src": "1471:1:151", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "1460:12:149", + "src": "1460:12:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -351,18 +350,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55845, + "id": 56004, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55839, + "id": 55998, "name": "numParts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55826, - "src": "1476:8:149", + "referencedDeclaration": 55985, + "src": "1476:8:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -374,22 +373,22 @@ "expression": { "arguments": [ { - "id": 55842, + "id": 56001, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1493:6:149", + "src": "1493:6:151", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 55841, + "id": 56000, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1493:6:149", + "src": "1493:6:151", "typeDescriptions": {} } } @@ -401,18 +400,18 @@ "typeString": "type(uint32)" } ], - "id": 55840, + "id": 55999, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, - "src": "1488:4:149", + "src": "1488:4:151", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 55843, + "id": 56002, "isConstant": false, "isLValue": false, "isPure": true, @@ -421,34 +420,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1488:12:149", + "src": "1488:12:151", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint32", "typeString": "type(uint32)" } }, - "id": 55844, + "id": 56003, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1501:3:149", + "memberLocation": "1501:3:151", "memberName": "max", "nodeType": "MemberAccess", - "src": "1488:16:149", + "src": "1488:16:151", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "1476:28:149", + "src": "1476:28:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1460:44:149", + "src": "1460:44:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -462,18 +461,18 @@ "typeString": "bool" } ], - "id": 55835, + "id": 55994, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "1453:6:149", + "src": "1453:6:151", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 55847, + "id": 56006, "isConstant": false, "isLValue": false, "isPure": false, @@ -482,16 +481,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1453:52:149", + "src": "1453:52:151", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55848, + "id": 56007, "nodeType": "ExpressionStatement", - "src": "1453:52:149" + "src": "1453:52:151" }, { "expression": { @@ -501,7 +500,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 55856, + "id": 56015, "isConstant": false, "isLValue": false, "isPure": false, @@ -511,18 +510,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55852, + "id": 56011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55850, + "id": 56009, "name": "frequency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55828, - "src": "1522:9:149", + "referencedDeclaration": 55987, + "src": "1522:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -532,21 +531,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 55851, + "id": 56010, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1534:1:149", + "src": "1534:1:151", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1522:13:149", + "src": "1522:13:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -559,18 +558,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55855, + "id": 56014, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55853, + "id": 56012, "name": "frequency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55828, - "src": "1539:9:149", + "referencedDeclaration": 55987, + "src": "1539:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -580,14 +579,14 @@ "operator": "<=", "rightExpression": { "hexValue": "333635", - "id": 55854, + "id": 56013, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1552:8:149", + "src": "1552:8:151", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_31536000_by_1", @@ -595,13 +594,13 @@ }, "value": "365" }, - "src": "1539:21:149", + "src": "1539:21:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1522:38:149", + "src": "1522:38:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -615,18 +614,18 @@ "typeString": "bool" } ], - "id": 55849, + "id": 56008, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "1515:6:149", + "src": "1515:6:151", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 55857, + "id": 56016, "isConstant": false, "isLValue": false, "isPure": false, @@ -635,16 +634,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1515:46:149", + "src": "1515:46:151", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55858, + "id": 56017, "nodeType": "ExpressionStatement", - "src": "1515:46:149" + "src": "1515:46:151" }, { "expression": { @@ -654,18 +653,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55862, + "id": 56021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55860, + "id": 56019, "name": "span", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55830, - "src": "1578:4:149", + "referencedDeclaration": 55989, + "src": "1578:4:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -674,18 +673,18 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "id": 55861, + "id": 56020, "name": "frequency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55828, - "src": "1586:9:149", + "referencedDeclaration": 55987, + "src": "1586:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1578:17:149", + "src": "1578:17:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -699,18 +698,18 @@ "typeString": "bool" } ], - "id": 55859, + "id": 56018, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -3, - "src": "1571:6:149", + "src": "1571:6:151", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 55863, + "id": 56022, "isConstant": false, "isLValue": false, "isPure": false, @@ -719,25 +718,25 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1571:25:149", + "src": "1571:25:151", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55864, + "id": 56023, "nodeType": "ExpressionStatement", - "src": "1571:25:149" + "src": "1571:25:151" }, { - "id": 55938, + "id": 56098, "nodeType": "UncheckedBlock", - "src": "1607:4096:149", + "src": "1607:4104:151", "statements": [ { "condition": { - "id": 55870, + "id": 56029, "isConstant": false, "isLValue": false, "isPure": false, @@ -745,7 +744,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1719:31:149", + "src": "1719:31:151", "subExpression": { "components": [ { @@ -753,18 +752,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55868, + "id": 56027, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55865, + "id": 56024, "name": "startTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55824, - "src": "1721:9:149", + "referencedDeclaration": 55983, + "src": "1721:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -774,46 +773,46 @@ "operator": "<=", "rightExpression": { "expression": { - "id": 55866, + "id": 56025, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "1734:5:149", + "src": "1734:5:151", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 55867, + "id": 56026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1740:9:149", + "memberLocation": "1740:9:151", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "1734:15:149", + "src": "1734:15:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1721:28:149", + "src": "1721:28:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55869, + "id": 56028, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1720:30:149", + "src": "1720:30:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -825,19 +824,31 @@ } }, "documentation": "@dev Order is not valid before the start (order commences at `t0`).", - "id": 55877, + "id": 56037, "nodeType": "IfStatement", - "src": "1715:94:149", + "src": "1715:106:151", "trueBody": { "errorCall": { "arguments": [ { - "id": 55874, + "id": 56033, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55983, + "src": "1792:9:151", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 56034, "name": "BEFORE_TWAP_START", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55816, - "src": "1791:17:149", + "referencedDeclaration": 55975, + "src": "1803:17:151", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -846,39 +857,43 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { - "id": 55871, + "id": 56030, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "1759:17:149", + "referencedDeclaration": 54540, + "src": "1759:17:151", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55873, + "id": 56032, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1777:13:149", - "memberName": "OrderNotValid", + "memberLocation": "1777:14:151", + "memberName": "PollTryAtEpoch", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "1759:31:149", + "referencedDeclaration": 54500, + "src": "1759:32:151", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,string memory) pure" } }, - "id": 55875, + "id": 56035, "isConstant": false, "isLValue": false, "isPure": false, @@ -887,21 +902,21 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1759:50:149", + "src": "1759:62:151", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55876, + "id": 56036, "nodeType": "RevertStatement", - "src": "1752:57:149" + "src": "1752:69:151" } }, { "condition": { - "id": 55888, + "id": 56048, "isConstant": false, "isLValue": false, "isPure": false, @@ -909,7 +924,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2437:55:149", + "src": "2449:55:151", "subExpression": { "components": [ { @@ -917,33 +932,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55886, + "id": 56046, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55878, + "id": 56038, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2439:5:149", + "src": "2451:5:151", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 55879, + "id": 56039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2445:9:149", + "memberLocation": "2457:9:151", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "2439:15:149", + "src": "2451:15:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -956,18 +971,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55885, + "id": 56045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55880, + "id": 56040, "name": "startTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55824, - "src": "2457:9:149", + "referencedDeclaration": 55983, + "src": "2469:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -982,18 +997,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55883, + "id": 56043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55881, + "id": 56041, "name": "numParts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55826, - "src": "2470:8:149", + "referencedDeclaration": 55985, + "src": "2482:8:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1002,58 +1017,58 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 55882, + "id": 56042, "name": "frequency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55828, - "src": "2481:9:149", + "referencedDeclaration": 55987, + "src": "2493:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2470:20:149", + "src": "2482:20:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 55884, + "id": 56044, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2469:22:149", + "src": "2481:22:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2457:34:149", + "src": "2469:34:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2439:52:149", + "src": "2451:52:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55887, + "id": 56047, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2438:54:149", + "src": "2450:54:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1065,24 +1080,24 @@ } }, "documentation": " @dev Order is expired after the last part (`n` parts, running at `t` time length).\n Multiplication overflow: `numParts` is bounded by `type(uint32).max` and `frequency` is bounded by\n `365 days` which is smaller than `type(uint32).max` so the product of `numParts * frequency` is\n ≈ 2⁵⁴.\n Addition overflow: `startTime` is bounded by `block.timestamp` which is reasonably bounded by\n `type(uint32).max` so the sum of `startTime + (numParts * frequency)` is ≈ 2⁵⁵.", - "id": 55896, + "id": 56056, "nodeType": "IfStatement", - "src": "2433:151:149", + "src": "2445:147:151", "trueBody": { - "id": 55895, + "id": 56055, "nodeType": "Block", - "src": "2494:90:149", + "src": "2506:86:151", "statements": [ { "errorCall": { "arguments": [ { - "id": 55892, + "id": 56052, "name": "AFTER_TWAP_FINISH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55820, - "src": "2551:17:149", + "referencedDeclaration": 55979, + "src": "2559:17:151", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1097,33 +1112,33 @@ } ], "expression": { - "id": 55889, + "id": 56049, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "2519:17:149", + "referencedDeclaration": 54540, + "src": "2531:17:151", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55891, + "id": 56051, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2537:13:149", - "memberName": "OrderNotValid", + "memberLocation": "2549:9:151", + "memberName": "PollNever", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "2519:31:149", + "referencedDeclaration": 54504, + "src": "2531:27:151", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55893, + "id": 56053, "isConstant": false, "isLValue": false, "isPure": false, @@ -1132,34 +1147,34 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2519:50:149", + "src": "2531:46:151", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55894, + "id": 56054, "nodeType": "RevertStatement", - "src": "2512:57:149" + "src": "2524:53:151" } ] } }, { "assignments": [ - 55899 + 56059 ], "declarations": [ { "constant": false, - "id": 55899, + "id": 56059, "mutability": "mutable", "name": "part", - "nameLocation": "3034:4:149", + "nameLocation": "3042:4:151", "nodeType": "VariableDeclaration", - "scope": 55938, - "src": "3026:12:149", + "scope": 56098, + "src": "3034:12:151", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1167,10 +1182,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55898, + "id": 56058, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3026:7:149", + "src": "3034:7:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1180,13 +1195,13 @@ } ], "documentation": " @dev We use integer division to get the part number as we want to round down to the nearest part.\n Subtraction underflow: `startTime` is asserted to be less than `block.timestamp` so the difference\n of `block.timestamp - startTime` shall always be positive.\n Divide by zero: `frequency` is asserted to be greater than zero.", - "id": 55907, + "id": 56067, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55906, + "id": 56066, "isConstant": false, "isLValue": false, "isPure": false, @@ -1198,33 +1213,33 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55903, + "id": 56063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 55900, + "id": 56060, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "3042:5:149", + "src": "3050:5:151", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 55901, + "id": 56061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3048:9:149", + "memberLocation": "3056:9:151", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "3042:15:149", + "src": "3050:15:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1233,32 +1248,32 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 55902, + "id": 56062, "name": "startTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55824, - "src": "3060:9:149", + "referencedDeclaration": 55983, + "src": "3068:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3042:27:149", + "src": "3050:27:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 55904, + "id": 56064, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3041:29:149", + "src": "3049:29:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1267,25 +1282,25 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 55905, + "id": 56065, "name": "frequency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55828, - "src": "3073:9:149", + "referencedDeclaration": 55987, + "src": "3081:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3041:41:149", + "src": "3049:41:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3026:56:149" + "src": "3034:56:151" }, { "condition": { @@ -1293,18 +1308,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55910, + "id": 56070, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55908, + "id": 56068, "name": "span", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55830, - "src": "3180:4:149", + "referencedDeclaration": 55989, + "src": "3188:4:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1314,33 +1329,33 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 55909, + "id": 56069, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3188:1:149", + "src": "3196:1:151", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3180:9:149", + "src": "3188:9:151", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 55924, + "id": 56084, "nodeType": "IfStatement", - "src": "3176:1246:149", + "src": "3184:1246:151", "trueBody": { - "id": 55923, + "id": 56083, "nodeType": "Block", - "src": "3191:1231:149", + "src": "3199:1231:151", "statements": [ { "documentation": " @dev If the span is zero, then the order is valid for the entire part.\n We can safely add `part + 1` to `part` as we know that `part` is less than `numParts`.\n Addition overflow: `part` is bounded by `numParts` which is bounded by `type(uint32).max` so\n the sum of `part + 1` is ≈ 2³².\n Multiplication overflow: `frequency` is bounded by `365 days` which is smaller than\n `type(uint32).max` so the product of `frequency * (part + 1)` is ≈ 2⁵⁴.\n Addition overflow: `startTime` is bounded by `block.timestamp` which is reasonably bounded by\n `type(uint32).max` so the sum of `startTime + (frequency * (part + 1))` is ≈ 2⁵⁵.\n Subtraction underflow: `frequency` is asserted to be > 0 so `(frequency * (part + 1)) - 1` > 0\n where `part` ∈ N ∪ {0}. As `part` will always be at least 0, the difference of\n `startTime + (frequency * (part + 1)) - 1` shall always be positive.", @@ -1349,7 +1364,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55921, + "id": 56081, "isConstant": false, "isLValue": false, "isPure": false, @@ -1359,18 +1374,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55919, + "id": 56079, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55911, + "id": 56071, "name": "startTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55824, - "src": "4367:9:149", + "referencedDeclaration": 55983, + "src": "4375:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1385,7 +1400,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55917, + "id": 56077, "isConstant": false, "isLValue": false, "isPure": false, @@ -1397,18 +1412,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55914, + "id": 56074, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55912, + "id": 56072, "name": "part", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55899, - "src": "4381:4:149", + "referencedDeclaration": 56059, + "src": "4389:4:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1418,35 +1433,35 @@ "operator": "+", "rightExpression": { "hexValue": "31", - "id": 55913, + "id": 56073, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4388:1:149", + "src": "4396:1:151", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "4381:8:149", + "src": "4389:8:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 55915, + "id": 56075, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4380:10:149", + "src": "4388:10:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1455,38 +1470,38 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 55916, + "id": 56076, "name": "frequency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55828, - "src": "4393:9:149", + "referencedDeclaration": 55987, + "src": "4401:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4380:22:149", + "src": "4388:22:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 55918, + "id": 56078, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4379:24:149", + "src": "4387:24:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4367:36:149", + "src": "4375:36:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1496,30 +1511,30 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 55920, + "id": 56080, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4406:1:149", + "src": "4414:1:151", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "4367:40:149", + "src": "4375:40:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 55834, - "id": 55922, + "functionReturnParameters": 55993, + "id": 56082, "nodeType": "Return", - "src": "4360:47:149" + "src": "4368:47:151" } ] } @@ -1527,18 +1542,18 @@ { "documentation": " @dev If the span is non-zero, then the order is valid for the span of the part.\n Multiplication overflow: `part` is bounded by `numParts` which is bounded by `type(uint32).max` with\n `frequency` bounded by `365 days` which is smaller than `type(uint32).max` so the product of\n `part * frequency` is ≈ 2⁵⁴.\n Addition overflow: `startTime` is bounded by `block.timestamp` which is reasonably bounded by\n `type(uint32).max` so the sum of `startTime + (part * frequency)` is ≈ 2⁵⁵.\n Addition overflow: `span` is bounded by `frequency` which is bounded by `365 days` which is smaller\n than `type(uint32).max` so the sum of `(part * frequency) + span` is ≈ 2⁵⁶.\n Subtraction underflow: `span` is asserted to be greater than zero so `(part * frequency) + span - 1`\n shall always be positive.", "expression": { - "id": 55936, + "id": 56096, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 55925, + "id": 56085, "name": "validTo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55833, - "src": "5428:7:149", + "referencedDeclaration": 55992, + "src": "5436:7:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1551,7 +1566,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55935, + "id": 56095, "isConstant": false, "isLValue": false, "isPure": false, @@ -1561,7 +1576,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55933, + "id": 56093, "isConstant": false, "isLValue": false, "isPure": false, @@ -1571,18 +1586,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55931, + "id": 56091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55926, + "id": 56086, "name": "startTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55824, - "src": "5438:9:149", + "referencedDeclaration": 55983, + "src": "5446:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1597,18 +1612,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55929, + "id": 56089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55927, + "id": 56087, "name": "part", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55899, - "src": "5451:4:149", + "referencedDeclaration": 56059, + "src": "5459:4:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1617,38 +1632,38 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 55928, + "id": 56088, "name": "frequency", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55828, - "src": "5458:9:149", + "referencedDeclaration": 55987, + "src": "5466:9:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5451:16:149", + "src": "5459:16:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 55930, + "id": 56090, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5450:18:149", + "src": "5458:18:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5438:30:149", + "src": "5446:30:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1657,18 +1672,18 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 55932, + "id": 56092, "name": "span", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55830, - "src": "5471:4:149", + "referencedDeclaration": 55989, + "src": "5479:4:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5438:37:149", + "src": "5446:37:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1678,64 +1693,64 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 55934, + "id": 56094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5478:1:149", + "src": "5486:1:151", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "5438:41:149", + "src": "5446:41:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5428:51:149", + "src": "5436:51:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 55937, + "id": 56097, "nodeType": "ExpressionStatement", - "src": "5428:51:149" + "src": "5436:51:151" } ] } ] }, "documentation": { - "id": 55822, + "id": 55981, "nodeType": "StructuredDocumentation", - "src": "633:355:149", + "src": "633:355:151", "text": " @dev Calculate the `validTo` timestamp for part of a TWAP order.\n @param startTime The start time of the TWAP order.\n @param numParts The number of parts to split the order into.\n @param frequency The frequency of each part (in seconds).\n @param span The span of each part (in seconds, or 0 for the whole epoch)." }, "implemented": true, "kind": "function", "modifiers": [], "name": "calculateValidTo", - "nameLocation": "1002:16:149", + "nameLocation": "1002:16:151", "parameters": { - "id": 55831, + "id": 55990, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55824, + "id": 55983, "mutability": "mutable", "name": "startTime", - "nameLocation": "1027:9:149", + "nameLocation": "1027:9:151", "nodeType": "VariableDeclaration", - "scope": 55940, - "src": "1019:17:149", + "scope": 56100, + "src": "1019:17:151", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1743,10 +1758,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55823, + "id": 55982, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1019:7:149", + "src": "1019:7:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1756,13 +1771,13 @@ }, { "constant": false, - "id": 55826, + "id": 55985, "mutability": "mutable", "name": "numParts", - "nameLocation": "1046:8:149", + "nameLocation": "1046:8:151", "nodeType": "VariableDeclaration", - "scope": 55940, - "src": "1038:16:149", + "scope": 56100, + "src": "1038:16:151", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1770,10 +1785,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55825, + "id": 55984, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1038:7:149", + "src": "1038:7:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1783,13 +1798,13 @@ }, { "constant": false, - "id": 55828, + "id": 55987, "mutability": "mutable", "name": "frequency", - "nameLocation": "1064:9:149", + "nameLocation": "1064:9:151", "nodeType": "VariableDeclaration", - "scope": 55940, - "src": "1056:17:149", + "scope": 56100, + "src": "1056:17:151", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1797,10 +1812,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55827, + "id": 55986, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1056:7:149", + "src": "1056:7:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1810,13 +1825,13 @@ }, { "constant": false, - "id": 55830, + "id": 55989, "mutability": "mutable", "name": "span", - "nameLocation": "1083:4:149", + "nameLocation": "1083:4:151", "nodeType": "VariableDeclaration", - "scope": 55940, - "src": "1075:12:149", + "scope": 56100, + "src": "1075:12:151", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1824,10 +1839,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55829, + "id": 55988, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1075:7:149", + "src": "1075:7:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1836,21 +1851,21 @@ "visibility": "internal" } ], - "src": "1018:70:149" + "src": "1018:70:151" }, "returnParameters": { - "id": 55834, + "id": 55993, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55833, + "id": 55992, "mutability": "mutable", "name": "validTo", - "nameLocation": "1144:7:149", + "nameLocation": "1144:7:151", "nodeType": "VariableDeclaration", - "scope": 55940, - "src": "1136:15:149", + "scope": 56100, + "src": "1136:15:151", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1858,10 +1873,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55832, + "id": 55991, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1136:7:149", + "src": "1136:7:151", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1870,9 +1885,9 @@ "visibility": "internal" } ], - "src": "1135:17:149" + "src": "1135:17:151" }, - "scope": 55941, + "scope": 56101, "stateMutability": "view", "virtual": false, "visibility": "internal" @@ -1884,22 +1899,22 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 55821, + "id": 55980, "nodeType": "StructuredDocumentation", - "src": "426:175:149", + "src": "426:175:151", "text": " @title CoWProtocol TWAP Order Math Library\n @dev TWAP Math is separated to facilitate easier unit testing / SMT verification.\n @author mfw78 " }, "fullyImplemented": true, "linearizedBaseContracts": [ - 55941 + 56101 ], "name": "TWAPOrderMathLib", - "nameLocation": "610:16:149", - "scope": 55942, + "nameLocation": "610:16:151", + "scope": 56102, "usedErrors": [] } ], "license": "GPL-3.0" }, - "id": 149 + "id": 151 } \ No newline at end of file diff --git a/out/TradeAboveThreshold.sol/TradeAboveThreshold.json b/out/TradeAboveThreshold.sol/TradeAboveThreshold.json index 9631804..c53f530 100644 --- a/out/TradeAboveThreshold.sol/TradeAboveThreshold.json +++ b/out/TradeAboveThreshold.sol/TradeAboveThreshold.json @@ -11,6 +11,60 @@ "name": "OrderNotValid", "type": "error" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollNever", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtBlock", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryAtEpoch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "PollTryNextBlock", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -167,6 +221,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "validateData", + "outputs": [], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -279,21 +346,22 @@ } ], "bytecode": { - "object": "0x608060405234801561001057600080fd5b50610aaf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a71461004657806314a2a7841461006e578063b8296fc414610083575b600080fd5b61005961005436600461051e565b6100a3565b60405190151581526020015b60405180910390f35b61008161007c3660046105e5565b61013c565b005b6100966100913660046106d3565b610259565b6040516100659190610772565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061013657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061014d8b8b8989898989610259565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461024c57604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610860565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102c6868601876108e0565b80516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152929350600092909116906370a0823190602401602060405180830381865afa15801561033b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035f919061099b565b905081608001518110156103d257604080518082018252601481527f62616c616e636520696e73756666696369656e74000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610860565b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff1681526020018281526020016001815260200161045884606001516104fc565b63ffffffff1681526020018360a001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b6000818061050a81426109e3565b6105149190610a2d565b6101369190610a55565b60006020828403121561053057600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461056057600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461058957600080fd5b50565b803561059781610567565b919050565b60008083601f8401126105ae57600080fd5b50813567ffffffffffffffff8111156105c657600080fd5b6020830191508360208285010111156105de57600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561060557600080fd5b61060f8b35610567565b8a35995060208b013561062181610567565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561065357600080fd5b61065f8e838f0161059c565b909750955060c08d013591508082111561067857600080fd5b506106858d828e0161059c565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff200112156106be57600080fd5b60e08b0190509295989b9194979a5092959850565b600080600080600080600060a0888a0312156106ee57600080fd5b87356106f981610567565b9650602088013561070981610567565b955060408801359450606088013567ffffffffffffffff8082111561072d57600080fd5b6107398b838c0161059c565b909650945060808a013591508082111561075257600080fd5b5061075f8a828b0161059c565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff168152610180810160208301516107b8602084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060408301516107e0604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a083015161080c60a084018263ffffffff169052565b5060c083015160c083015260e083015160e0830152610100808401518184015250610120808401516108418285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b8181101561088d57858101830151858201604001528201610871565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803563ffffffff8116811461059757600080fd5b600060c082840312156108f257600080fd5b60405160c0810181811067ffffffffffffffff8211171561093c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040526109488361058c565b81526109566020840161058c565b60208201526109676040840161058c565b6040820152610978606084016108cc565b60608201526080830135608082015260a083013560a08201528091505092915050565b6000602082840312156109ad57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff80841680610a21577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b63ffffffff818116838216028082169190828114610a4d57610a4d6109b4565b505092915050565b63ffffffff818116838216019080821115610a7257610a726109b4565b509291505056fea264697066735822122081a659e17f4d42becdf4ad566d3ec1ca4d26036cf4d6698751a1dd8bf1e99b0564736f6c63430008130033", - "sourceMap": "529:1672:146:-:0;;;;;;;;;;;;;;;;;;;", + "object": "0x608060405234801561001057600080fd5b50610b8b806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806314a2a78414610079578063a6ffa36c1461008e578063b8296fc41461009f575b600080fd5b61006461005f36600461053a565b6100bf565b60405190151581526020015b60405180910390f35b61008c6100873660046105ee565b610158565b005b61008c61009c36600461070b565b50565b6100b26100ad3660046107da565b610275565b6040516100709190610879565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061015257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101698b8b8989898989610275565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461026857604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610967565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102e2868601876109d3565b80516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152929350600092909116906370a0823190602401602060405180830381865afa158015610357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037b9190610a77565b905081608001518110156103ee57604080518082018252601481527f62616c616e636520696e73756666696369656e74000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610967565b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff168152602001828152602001600181526020016104748460600151610518565b63ffffffff1681526020018360a001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b600081806105268142610abf565b6105309190610b09565b6101529190610b31565b60006020828403121561054c57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461057c57600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461009c57600080fd5b60008083601f8401126105b757600080fd5b50813567ffffffffffffffff8111156105cf57600080fd5b6020830191508360208285010111156105e757600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561060e57600080fd5b6106188b35610583565b8a35995060208b013561062a81610583565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561065c57600080fd5b6106688e838f016105a5565b909750955060c08d013591508082111561068157600080fd5b5061068e8d828e016105a5565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff200112156106c757600080fd5b60e08b0190509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561071d57600080fd5b813567ffffffffffffffff8082111561073557600080fd5b818401915084601f83011261074957600080fd5b81358181111561075b5761075b6106dc565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156107a1576107a16106dc565b816040528281528760208487010111156107ba57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080600080600060a0888a0312156107f557600080fd5b873561080081610583565b9650602088013561081081610583565b955060408801359450606088013567ffffffffffffffff8082111561083457600080fd5b6108408b838c016105a5565b909650945060808a013591508082111561085957600080fd5b506108668a828b016105a5565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff168152610180810160208301516108bf602084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060408301516108e7604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a083015161091360a084018263ffffffff169052565b5060c083015160c083015260e083015160e0830152610100808401518184015250610120808401516109488285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b8181101561099457858101830151858201604001528201610978565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b600060c082840312156109e557600080fd5b60405160c0810181811067ffffffffffffffff82111715610a0857610a086106dc565b6040528235610a1681610583565b81526020830135610a2681610583565b60208201526040830135610a3981610583565b6040820152606083013563ffffffff81168114610a5557600080fd5b60608201526080838101359082015260a0928301359281019290925250919050565b600060208284031215610a8957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff80841680610afd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b63ffffffff818116838216028082169190828114610b2957610b29610a90565b505092915050565b63ffffffff818116838216019080821115610b4e57610b4e610a90565b509291505056fea264697066735822122054f7a4b3a4350b1c22b1660bc3dc205052e979f76db430885bf14081236dd6ee64736f6c63430008130033", + "sourceMap": "539:1672:148:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a71461004657806314a2a7841461006e578063b8296fc414610083575b600080fd5b61005961005436600461051e565b6100a3565b60405190151581526020015b60405180910390f35b61008161007c3660046105e5565b61013c565b005b6100966100913660046106d3565b610259565b6040516100659190610772565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061013657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061014d8b8b8989898989610259565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461024c57604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610860565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102c6868601876108e0565b80516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152929350600092909116906370a0823190602401602060405180830381865afa15801561033b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035f919061099b565b905081608001518110156103d257604080518082018252601481527f62616c616e636520696e73756666696369656e74000000000000000000000000602082015290517fc8fc27250000000000000000000000000000000000000000000000000000000081526102439190600401610860565b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff1681526020018281526020016001815260200161045884606001516104fc565b63ffffffff1681526020018360a001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b6000818061050a81426109e3565b6105149190610a2d565b6101369190610a55565b60006020828403121561053057600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461056057600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461058957600080fd5b50565b803561059781610567565b919050565b60008083601f8401126105ae57600080fd5b50813567ffffffffffffffff8111156105c657600080fd5b6020830191508360208285010111156105de57600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561060557600080fd5b61060f8b35610567565b8a35995060208b013561062181610567565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561065357600080fd5b61065f8e838f0161059c565b909750955060c08d013591508082111561067857600080fd5b506106858d828e0161059c565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff200112156106be57600080fd5b60e08b0190509295989b9194979a5092959850565b600080600080600080600060a0888a0312156106ee57600080fd5b87356106f981610567565b9650602088013561070981610567565b955060408801359450606088013567ffffffffffffffff8082111561072d57600080fd5b6107398b838c0161059c565b909650945060808a013591508082111561075257600080fd5b5061075f8a828b0161059c565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff168152610180810160208301516107b8602084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060408301516107e0604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a083015161080c60a084018263ffffffff169052565b5060c083015160c083015260e083015160e0830152610100808401518184015250610120808401516108418285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b8181101561088d57858101830151858201604001528201610871565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803563ffffffff8116811461059757600080fd5b600060c082840312156108f257600080fd5b60405160c0810181811067ffffffffffffffff8211171561093c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040526109488361058c565b81526109566020840161058c565b60208201526109676040840161058c565b6040820152610978606084016108cc565b60608201526080830135608082015260a083013560a08201528091505092915050565b6000602082840312156109ad57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff80841680610a21577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b63ffffffff818116838216028082169190828114610a4d57610a4d6109b4565b505092915050565b63ffffffff818116838216019080821115610a7257610a726109b4565b509291505056fea264697066735822122081a659e17f4d42becdf4ad566d3ec1ca4d26036cf4d6698751a1dd8bf1e99b0564736f6c63430008130033", - "sourceMap": "529:1672:146:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:220:133;;;;;;:::i;:::-;;:::i;:::-;;;612:14:168;;605:22;587:41;;575:2;560:18;1944:220:133;;;;;;;;867:634;;;;;;:::i;:::-;;:::i;:::-;;1015:1184:146;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1944:220:133:-;2031:4;2054:59;;;2069:44;2054:59;;:103;;-1:-1:-1;2117:40:133;;;2132:25;2117:40;2054:103;2047:110;1944:220;-1:-1:-1;;1944:220:133:o;867:634::-;1153:36;1192:65;1210:5;1217:6;1225:3;1230:11;;1243:13;;1192:17;:65::i;:::-;5434:14:63;;;5473:16;;5520:9;5502:28;;5578:3;5557:25;;5595:23;;6176:4;6170:11;6220:10;6194:37;;6274:1;6251:25;;6244:50;;;6337:2;6314:26;;6307:46;;;;6410:2;6381:32;;1153:104:133;;-1:-1:-1;1359:5:133;:56;1353:142;;1471:12;;;;;;;;;;;;;;;;1439:45;;;;;;;1471:12;1439:45;;;:::i;:::-;;;;;;;;1353:142;1143:358;867:634;;;;;;;;;;:::o;1015:1184:146:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1342:31:146;;;;;;:::i;:::-;1402:14;;:31;;;;;:24;7169:55:168;;;1402:31:146;;;7151:74:168;1303:70:146;;-1:-1:-1;1384:15:146;;1402:24;;;;;;7124:18:168;;1402:31:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1384:49;;1549:4;:14;;;1538:7;:25;;1532:119;;1619:20;;;;;;;;;;;;;;;;1587:53;;;;;;;1619:20;1587:53;;;:::i;1532:119::-;1791:401;;;;;;;;1819:4;:14;;;1791:401;;;;;;1847:4;:13;;;1791:401;;;;;;1874:4;:13;;;1791:401;;;;;;1901:7;1791:401;;;;1922:1;1791:401;;;;1968:47;1988:4;:26;;;1968:19;:47::i;:::-;1791:401;;;;;;2029:4;:12;;;1791:401;;;;2055:1;1791:401;;;;2070:19;1791:401;;;;2103:5;1791:401;;;;;;2122:23;1791:401;;;;2159:23;1791:401;;;1783:409;;1214:985;;1015:1184;;;;;;;;;:::o;463:166:142:-;526:14;614:8;;564:34;614:8;571:15;564:34;:::i;:::-;563:47;;;;:::i;:::-;562:60;;;;:::i;14:332:168:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:168:o;639:154::-;725:42;718:5;714:54;707:5;704:65;694:93;;783:1;780;773:12;694:93;639:154;:::o;798:134::-;866:20;;895:31;866:20;895:31;:::i;:::-;798:134;;;:::o;937:347::-;988:8;998:6;1052:3;1045:4;1037:6;1033:17;1029:27;1019:55;;1070:1;1067;1060:12;1019:55;-1:-1:-1;1093:20:168;;1136:18;1125:30;;1122:50;;;1168:1;1165;1158:12;1122:50;1205:4;1197:6;1193:17;1181:29;;1257:3;1250:4;1241:6;1233;1229:19;1225:30;1222:39;1219:59;;;1274:1;1271;1264:12;1219:59;937:347;;;;;:::o;1289:1401::-;1458:6;1466;1474;1482;1490;1498;1506;1514;1522;1530;1583:3;1571:9;1562:7;1558:23;1554:33;1551:53;;;1600:1;1597;1590:12;1551:53;1613:49;1651:9;1638:23;1613:49;:::i;:::-;1694:9;1681:23;1671:33;;1754:2;1743:9;1739:18;1726:32;1767:31;1792:5;1767:31;:::i;:::-;1817:5;-1:-1:-1;1869:2:168;1854:18;;1841:32;;-1:-1:-1;1920:2:168;1905:18;;1892:32;;-1:-1:-1;1971:3:168;1956:19;;1943:33;;-1:-1:-1;2027:3:168;2012:19;;1999:33;2051:18;2081:14;;;2078:34;;;2108:1;2105;2098:12;2078:34;2147:58;2197:7;2188:6;2177:9;2173:22;2147:58;:::i;:::-;2224:8;;-1:-1:-1;2121:84:168;-1:-1:-1;2312:3:168;2297:19;;2284:33;;-1:-1:-1;2329:16:168;;;2326:36;;;2358:1;2355;2348:12;2326:36;;2397:60;2449:7;2438:8;2427:9;2423:24;2397:60;:::i;:::-;2476:8;;-1:-1:-1;2371:86:168;-1:-1:-1;;2625:3:168;2531:23;;;2556:66;2527:96;2523:106;2520:126;;;2642:1;2639;2632:12;2520:126;2680:3;2669:9;2665:19;2655:29;;1289:1401;;;;;;;;;;;;;:::o;2695:1063::-;2812:6;2820;2828;2836;2844;2852;2860;2913:3;2901:9;2892:7;2888:23;2884:33;2881:53;;;2930:1;2927;2920:12;2881:53;2969:9;2956:23;2988:31;3013:5;2988:31;:::i;:::-;3038:5;-1:-1:-1;3095:2:168;3080:18;;3067:32;3108:33;3067:32;3108:33;:::i;:::-;3160:7;-1:-1:-1;3214:2:168;3199:18;;3186:32;;-1:-1:-1;3269:2:168;3254:18;;3241:32;3292:18;3322:14;;;3319:34;;;3349:1;3346;3339:12;3319:34;3388:58;3438:7;3429:6;3418:9;3414:22;3388:58;:::i;:::-;3465:8;;-1:-1:-1;3362:84:168;-1:-1:-1;3553:3:168;3538:19;;3525:33;;-1:-1:-1;3570:16:168;;;3567:36;;;3599:1;3596;3589:12;3567:36;;3638:60;3690:7;3679:8;3668:9;3664:24;3638:60;:::i;:::-;2695:1063;;;;-1:-1:-1;2695:1063:168;;-1:-1:-1;2695:1063:168;;;;3612:86;;-1:-1:-1;;;2695:1063:168:o;4002:1264::-;4222:13;;3848:42;3837:54;3825:67;;4182:3;4167:19;;4294:4;4286:6;4282:17;4276:24;4309:62;4365:4;4354:9;4350:20;4336:12;3848:42;3837:54;3825:67;;3763:135;4309:62;;4420:4;4412:6;4408:17;4402:24;4435:64;4493:4;4482:9;4478:20;4462:14;3848:42;3837:54;3825:67;;3763:135;4435:64;;4555:4;4547:6;4543:17;4537:24;4530:4;4519:9;4515:20;4508:54;4618:4;4610:6;4606:17;4600:24;4593:4;4582:9;4578:20;4571:54;4674:4;4666:6;4662:17;4656:24;4689:55;4738:4;4727:9;4723:20;4707:14;3979:10;3968:22;3956:35;;3903:94;4689:55;;4800:4;4792:6;4788:17;4782:24;4775:4;4764:9;4760:20;4753:54;4863:4;4855:6;4851:17;4845:24;4838:4;4827:9;4823:20;4816:54;4889:6;4949:2;4941:6;4937:15;4931:22;4926:2;4915:9;4911:18;4904:50;;4973:6;5028:2;5020:6;5016:15;5010:22;5041:51;5088:2;5077:9;5073:18;5057:14;421:13;414:21;402:34;;351:91;5041:51;-1:-1:-1;;5111:6:168;5159:15;;;5153:22;5133:18;;;5126:50;5195:6;5243:15;;;5237:22;5217:18;;;;5210:50;;;;4002:1264;:::o;5271:607::-;5383:4;5412:2;5441;5430:9;5423:21;5473:6;5467:13;5516:6;5511:2;5500:9;5496:18;5489:34;5541:1;5551:140;5565:6;5562:1;5559:13;5551:140;;;5660:14;;;5656:23;;5650:30;5626:17;;;5645:2;5622:26;5615:66;5580:10;;5551:140;;;5555:3;5740:1;5735:2;5726:6;5715:9;5711:22;5707:31;5700:42;5869:2;5799:66;5794:2;5786:6;5782:15;5778:88;5767:9;5763:104;5759:113;5751:121;;;;5271:607;;;;:::o;5883:163::-;5950:20;;6010:10;5999:22;;5989:33;;5979:61;;6036:1;6033;6026:12;6051:949;6133:6;6186:3;6174:9;6165:7;6161:23;6157:33;6154:53;;;6203:1;6200;6193:12;6154:53;6236:2;6230:9;6278:3;6270:6;6266:16;6348:6;6336:10;6333:22;6312:18;6300:10;6297:34;6294:62;6291:242;;;6389:77;6386:1;6379:88;6490:4;6487:1;6480:15;6518:4;6515:1;6508:15;6291:242;6549:2;6542:22;6588:29;6607:9;6588:29;:::i;:::-;6580:6;6573:45;6651:38;6685:2;6674:9;6670:18;6651:38;:::i;:::-;6646:2;6638:6;6634:15;6627:63;6723:38;6757:2;6746:9;6742:18;6723:38;:::i;:::-;6718:2;6710:6;6706:15;6699:63;6795:37;6828:2;6817:9;6813:18;6795:37;:::i;:::-;6790:2;6782:6;6778:15;6771:62;6895:3;6884:9;6880:19;6867:33;6861:3;6853:6;6849:16;6842:59;6963:3;6952:9;6948:19;6935:33;6929:3;6921:6;6917:16;6910:59;6988:6;6978:16;;;6051:949;;;;:::o;7236:184::-;7306:6;7359:2;7347:9;7338:7;7334:23;7330:32;7327:52;;;7375:1;7372;7365:12;7327:52;-1:-1:-1;7398:16:168;;7236:184;-1:-1:-1;7236:184:168:o;7425:::-;7477:77;7474:1;7467:88;7574:4;7571:1;7564:15;7598:4;7595:1;7588:15;7614:345;7653:1;7679:10;7716:2;7713:1;7709:10;7738:3;7728:191;;7775:77;7772:1;7765:88;7876:4;7873:1;7866:15;7904:4;7901:1;7894:15;7728:191;7937:10;;7933:20;;;;;7614:345;-1:-1:-1;;7614:345:168:o;7964:249::-;8035:10;8077;;;8089;;;8073:27;8120:20;;;;8035:10;8159:24;;;8149:58;;8187:18;;:::i;:::-;8149:58;;7964:249;;;;:::o;8218:172::-;8285:10;8315;;;8327;;;8311:27;;8350:11;;;8347:37;;;8364:18;;:::i;:::-;8347:37;8218:172;;;;:::o", + "object": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806314a2a78414610079578063a6ffa36c1461008e578063b8296fc41461009f575b600080fd5b61006461005f36600461053a565b6100bf565b60405190151581526020015b60405180910390f35b61008c6100873660046105ee565b610158565b005b61008c61009c36600461070b565b50565b6100b26100ad3660046107da565b610275565b6040516100709190610879565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb8296fc400000000000000000000000000000000000000000000000000000000148061015257507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101698b8b8989898989610275565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a0822091526040517f19010000000000000000000000000000000000000000000000000000000000008152600281018b9052602281019190915260429020909150891461026857604080518082018252600c81527f696e76616c696420686173680000000000000000000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610967565b60405180910390fd5b5050505050505050505050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290526101608101829052906102e2868601876109d3565b80516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152929350600092909116906370a0823190602401602060405180830381865afa158015610357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037b9190610a77565b905081608001518110156103ee57604080518082018252601481527f62616c616e636520696e73756666696369656e74000000000000000000000000602082015290517fc8fc272500000000000000000000000000000000000000000000000000000000815261025f9190600401610967565b604051806101800160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015173ffffffffffffffffffffffffffffffffffffffff168152602001828152602001600181526020016104748460600151610518565b63ffffffff1681526020018360a001518152602001600081526020017ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee34677581526020016000151581526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981526020017f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc981525092505050979650505050505050565b600081806105268142610abf565b6105309190610b09565b6101529190610b31565b60006020828403121561054c57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461057c57600080fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461009c57600080fd5b60008083601f8401126105b757600080fd5b50813567ffffffffffffffff8111156105cf57600080fd5b6020830191508360208285010111156105e757600080fd5b9250929050565b6000806000806000806000806000806102608b8d03121561060e57600080fd5b6106188b35610583565b8a35995060208b013561062a81610583565b985060408b0135975060608b0135965060808b0135955060a08b013567ffffffffffffffff8082111561065c57600080fd5b6106688e838f016105a5565b909750955060c08d013591508082111561068157600080fd5b5061068e8d828e016105a5565b9094509250506101808b8d037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff200112156106c757600080fd5b60e08b0190509295989b9194979a5092959850565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561071d57600080fd5b813567ffffffffffffffff8082111561073557600080fd5b818401915084601f83011261074957600080fd5b81358181111561075b5761075b6106dc565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156107a1576107a16106dc565b816040528281528760208487010111156107ba57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080600080600060a0888a0312156107f557600080fd5b873561080081610583565b9650602088013561081081610583565b955060408801359450606088013567ffffffffffffffff8082111561083457600080fd5b6108408b838c016105a5565b909650945060808a013591508082111561085957600080fd5b506108668a828b016105a5565b989b979a50959850939692959293505050565b815173ffffffffffffffffffffffffffffffffffffffff168152610180810160208301516108bf602084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060408301516108e7604084018273ffffffffffffffffffffffffffffffffffffffff169052565b50606083015160608301526080830151608083015260a083015161091360a084018263ffffffff169052565b5060c083015160c083015260e083015160e0830152610100808401518184015250610120808401516109488285018215159052565b5050610140838101519083015261016092830151929091019190915290565b600060208083528351808285015260005b8181101561099457858101830151858201604001528201610978565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b600060c082840312156109e557600080fd5b60405160c0810181811067ffffffffffffffff82111715610a0857610a086106dc565b6040528235610a1681610583565b81526020830135610a2681610583565b60208201526040830135610a3981610583565b6040820152606083013563ffffffff81168114610a5557600080fd5b60608201526080838101359082015260a0928301359281019290925250919050565b600060208284031215610a8957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff80841680610afd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b63ffffffff818116838216028082169190828114610b2957610b29610a90565b505092915050565b63ffffffff818116838216019080821115610b4e57610b4e610a90565b509291505056fea264697066735822122054f7a4b3a4350b1c22b1660bc3dc205052e979f76db430885bf14081236dd6ee64736f6c63430008130033", + "sourceMap": "539:1672:148:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:220:135;;;;;;:::i;:::-;;:::i;:::-;;;612:14:170;;605:22;587:41;;575:2;560:18;1944:220:135;;;;;;;;867:634;;;;;;:::i;:::-;;:::i;:::-;;2170:100;;;;;;:::i;:::-;;;1025:1184:148;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1944:220:135:-;2031:4;2054:59;;;2069:44;2054:59;;:103;;-1:-1:-1;2117:40:135;;;2132:25;2117:40;2054:103;2047:110;1944:220;-1:-1:-1;;1944:220:135:o;867:634::-;1153:36;1192:65;1210:5;1217:6;1225:3;1230:11;;1243:13;;1192:17;:65::i;:::-;5434:14:55;;;5473:16;;5520:9;5502:28;;5578:3;5557:25;;5595:23;;6176:4;6170:11;6220:10;6194:37;;6274:1;6251:25;;6244:50;;;6337:2;6314:26;;6307:46;;;;6410:2;6381:32;;1153:104:135;;-1:-1:-1;1359:5:135;:56;1353:142;;1471:12;;;;;;;;;;;;;;;;1439:45;;;;;;;1471:12;1439:45;;;:::i;:::-;;;;;;;;1353:142;1143:358;867:634;;;;;;;;;;:::o;1025:1184:148:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1352:31:148;;;;;;:::i;:::-;1412:14;;:31;;;;;:24;8177:55:170;;;1412:31:148;;;8159:74:170;1313:70:148;;-1:-1:-1;1394:15:148;;1412:24;;;;;;8132:18:170;;1412:31:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1394:49;;1559:4;:14;;;1548:7;:25;;1542:119;;1629:20;;;;;;;;;;;;;;;;1597:53;;;;;;;1629:20;1597:53;;;:::i;1542:119::-;1801:401;;;;;;;;1829:4;:14;;;1801:401;;;;;;1857:4;:13;;;1801:401;;;;;;1884:4;:13;;;1801:401;;;;;;1911:7;1801:401;;;;1932:1;1801:401;;;;1978:47;1998:4;:26;;;1978:19;:47::i;:::-;1801:401;;;;;;2039:4;:12;;;1801:401;;;;2065:1;1801:401;;;;2080:19;1801:401;;;;2113:5;1801:401;;;;;;2132:23;1801:401;;;;2169:23;1801:401;;;1793:409;;1224:985;;1025:1184;;;;;;;;;:::o;463:166:144:-;526:14;614:8;;564:34;614:8;571:15;564:34;:::i;:::-;563:47;;;;:::i;:::-;562:60;;;;:::i;14:332:170:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:170:o;639:154::-;725:42;718:5;714:54;707:5;704:65;694:93;;783:1;780;773:12;798:347;849:8;859:6;913:3;906:4;898:6;894:17;890:27;880:55;;931:1;928;921:12;880:55;-1:-1:-1;954:20:170;;997:18;986:30;;983:50;;;1029:1;1026;1019:12;983:50;1066:4;1058:6;1054:17;1042:29;;1118:3;1111:4;1102:6;1094;1090:19;1086:30;1083:39;1080:59;;;1135:1;1132;1125:12;1080:59;798:347;;;;;:::o;1150:1401::-;1319:6;1327;1335;1343;1351;1359;1367;1375;1383;1391;1444:3;1432:9;1423:7;1419:23;1415:33;1412:53;;;1461:1;1458;1451:12;1412:53;1474:49;1512:9;1499:23;1474:49;:::i;:::-;1555:9;1542:23;1532:33;;1615:2;1604:9;1600:18;1587:32;1628:31;1653:5;1628:31;:::i;:::-;1678:5;-1:-1:-1;1730:2:170;1715:18;;1702:32;;-1:-1:-1;1781:2:170;1766:18;;1753:32;;-1:-1:-1;1832:3:170;1817:19;;1804:33;;-1:-1:-1;1888:3:170;1873:19;;1860:33;1912:18;1942:14;;;1939:34;;;1969:1;1966;1959:12;1939:34;2008:58;2058:7;2049:6;2038:9;2034:22;2008:58;:::i;:::-;2085:8;;-1:-1:-1;1982:84:170;-1:-1:-1;2173:3:170;2158:19;;2145:33;;-1:-1:-1;2190:16:170;;;2187:36;;;2219:1;2216;2209:12;2187:36;;2258:60;2310:7;2299:8;2288:9;2284:24;2258:60;:::i;:::-;2337:8;;-1:-1:-1;2232:86:170;-1:-1:-1;;2486:3:170;2392:23;;;2417:66;2388:96;2384:106;2381:126;;;2503:1;2500;2493:12;2381:126;2541:3;2530:9;2526:19;2516:29;;1150:1401;;;;;;;;;;;;;:::o;2556:184::-;2608:77;2605:1;2598:88;2705:4;2702:1;2695:15;2729:4;2726:1;2719:15;2745:980;2813:6;2866:2;2854:9;2845:7;2841:23;2837:32;2834:52;;;2882:1;2879;2872:12;2834:52;2922:9;2909:23;2951:18;2992:2;2984:6;2981:14;2978:34;;;3008:1;3005;2998:12;2978:34;3046:6;3035:9;3031:22;3021:32;;3091:7;3084:4;3080:2;3076:13;3072:27;3062:55;;3113:1;3110;3103:12;3062:55;3149:2;3136:16;3171:2;3167;3164:10;3161:36;;;3177:18;;:::i;:::-;3311:2;3305:9;3373:4;3365:13;;3216:66;3361:22;;;3385:2;3357:31;3353:40;3341:53;;;3409:18;;;3429:22;;;3406:46;3403:72;;;3455:18;;:::i;:::-;3495:10;3491:2;3484:22;3530:2;3522:6;3515:18;3570:7;3565:2;3560;3556;3552:11;3548:20;3545:33;3542:53;;;3591:1;3588;3581:12;3542:53;3647:2;3642;3638;3634:11;3629:2;3621:6;3617:15;3604:46;3692:1;3670:15;;;3687:2;3666:24;3659:35;;;;-1:-1:-1;3674:6:170;2745:980;-1:-1:-1;;;;;2745:980:170:o;3730:1063::-;3847:6;3855;3863;3871;3879;3887;3895;3948:3;3936:9;3927:7;3923:23;3919:33;3916:53;;;3965:1;3962;3955:12;3916:53;4004:9;3991:23;4023:31;4048:5;4023:31;:::i;:::-;4073:5;-1:-1:-1;4130:2:170;4115:18;;4102:32;4143:33;4102:32;4143:33;:::i;:::-;4195:7;-1:-1:-1;4249:2:170;4234:18;;4221:32;;-1:-1:-1;4304:2:170;4289:18;;4276:32;4327:18;4357:14;;;4354:34;;;4384:1;4381;4374:12;4354:34;4423:58;4473:7;4464:6;4453:9;4449:22;4423:58;:::i;:::-;4500:8;;-1:-1:-1;4397:84:170;-1:-1:-1;4588:3:170;4573:19;;4560:33;;-1:-1:-1;4605:16:170;;;4602:36;;;4634:1;4631;4624:12;4602:36;;4673:60;4725:7;4714:8;4703:9;4699:24;4673:60;:::i;:::-;3730:1063;;;;-1:-1:-1;3730:1063:170;;-1:-1:-1;3730:1063:170;;;;4647:86;;-1:-1:-1;;;3730:1063:170:o;5037:1264::-;5257:13;;4883:42;4872:54;4860:67;;5217:3;5202:19;;5329:4;5321:6;5317:17;5311:24;5344:62;5400:4;5389:9;5385:20;5371:12;4883:42;4872:54;4860:67;;4798:135;5344:62;;5455:4;5447:6;5443:17;5437:24;5470:64;5528:4;5517:9;5513:20;5497:14;4883:42;4872:54;4860:67;;4798:135;5470:64;;5590:4;5582:6;5578:17;5572:24;5565:4;5554:9;5550:20;5543:54;5653:4;5645:6;5641:17;5635:24;5628:4;5617:9;5613:20;5606:54;5709:4;5701:6;5697:17;5691:24;5724:55;5773:4;5762:9;5758:20;5742:14;5014:10;5003:22;4991:35;;4938:94;5724:55;;5835:4;5827:6;5823:17;5817:24;5810:4;5799:9;5795:20;5788:54;5898:4;5890:6;5886:17;5880:24;5873:4;5862:9;5858:20;5851:54;5924:6;5984:2;5976:6;5972:15;5966:22;5961:2;5950:9;5946:18;5939:50;;6008:6;6063:2;6055:6;6051:15;6045:22;6076:51;6123:2;6112:9;6108:18;6092:14;421:13;414:21;402:34;;351:91;6076:51;-1:-1:-1;;6146:6:170;6194:15;;;6188:22;6168:18;;;6161:50;6230:6;6278:15;;;6272:22;6252:18;;;;6245:50;;;;5037:1264;:::o;6306:607::-;6418:4;6447:2;6476;6465:9;6458:21;6508:6;6502:13;6551:6;6546:2;6535:9;6531:18;6524:34;6576:1;6586:140;6600:6;6597:1;6594:13;6586:140;;;6695:14;;;6691:23;;6685:30;6661:17;;;6680:2;6657:26;6650:66;6615:10;;6586:140;;;6590:3;6775:1;6770:2;6761:6;6750:9;6746:22;6742:31;6735:42;6904:2;6834:66;6829:2;6821:6;6817:15;6813:88;6802:9;6798:104;6794:113;6786:121;;;;6306:607;;;;:::o;6918:1090::-;7000:6;7053:3;7041:9;7032:7;7028:23;7024:33;7021:53;;;7070:1;7067;7060:12;7021:53;7103:2;7097:9;7145:3;7137:6;7133:16;7215:6;7203:10;7200:22;7179:18;7167:10;7164:34;7161:62;7158:88;;;7226:18;;:::i;:::-;7262:2;7255:22;7299:23;;7331:31;7299:23;7331:31;:::i;:::-;7371:21;;7444:2;7429:18;;7416:32;7457:33;7416:32;7457:33;:::i;:::-;7518:2;7506:15;;7499:32;7583:2;7568:18;;7555:32;7596:33;7555:32;7596:33;:::i;:::-;7657:2;7645:15;;7638:32;7722:2;7707:18;;7694:32;7770:10;7757:24;;7745:37;;7735:65;;7796:1;7793;7786:12;7735:65;7828:2;7816:15;;7809:32;7903:3;7888:19;;;7875:33;7857:16;;;7850:59;7971:3;7956:19;;;7943:33;7925:16;;;7918:59;;;;-1:-1:-1;7820:6:170;6918:1090;-1:-1:-1;6918:1090:170:o;8244:184::-;8314:6;8367:2;8355:9;8346:7;8342:23;8338:32;8335:52;;;8383:1;8380;8373:12;8335:52;-1:-1:-1;8406:16:170;;8244:184;-1:-1:-1;8244:184:170:o;8433:::-;8485:77;8482:1;8475:88;8582:4;8579:1;8572:15;8606:4;8603:1;8596:15;8622:345;8661:1;8687:10;8724:2;8721:1;8717:10;8746:3;8736:191;;8783:77;8780:1;8773:88;8884:4;8881:1;8874:15;8912:4;8909:1;8902:15;8736:191;8945:10;;8941:20;;;;;8622:345;-1:-1:-1;;8622:345:170:o;8972:249::-;9043:10;9085;;;9097;;;9081:27;9128:20;;;;9043:10;9167:24;;;9157:58;;9195:18;;:::i;:::-;9157:58;;8972:249;;;;:::o;9226:172::-;9293:10;9323;;;9335;;;9319:27;;9358:11;;;9355:37;;;9372:18;;:::i;:::-;9355:37;9226:172;;;;:::o", "linkReferences": {} }, "methodIdentifiers": { "getTradeableOrder(address,address,bytes32,bytes,bytes)": "b8296fc4", "supportsInterface(bytes4)": "01ffc9a7", + "validateData(bytes)": "a6ffa36c", "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": "14a2a784" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\":\"\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"getTradeableOrder(address,address,bytes32,bytes,bytes)\":{\"details\":\"If the `owner`'s balance of `sellToken` is above the specified threshold, sell its entire balance for `buyToken` at the current market price (no limit!).\",\"params\":{\"ctx\":\"the context of the order (bytes32(0) if merkle tree is used, otherwise the H(params))\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the parent `isValidSignature` call\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"},\"returns\":{\"order\":\"the tradeable order for submission to the CoW Protocol API\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"A smart contract that trades whenever its balance of a certain token exceeds a target threshold\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/TradeAboveThreshold.sol\":\"TradeAboveThreshold\"},\"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/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/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/BaseConditionalOrder.sol\":{\"keccak256\":\"0x510558386b92b1d5961d8158ae6e3288a1d520c03123d109042a5ec3290b9588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e071465250cbc11d946f422f4ff774d757291cac00f4c69fbac1d1e34cdae402\",\"dweb:/ipfs/QmUF2qNwJhvs3GeWmsWnL6y21eL6mb3QEW7EPYY7NZc25v\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699\",\"dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ\"]},\"src/types/ConditionalOrdersUtilsLib.sol\":{\"keccak256\":\"0x38e4ce4fc58c018f510ee45d78ae49253e8aa70fdf559d83ebb6c838c6b47aae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a38ccd5b8ce2895a77b7474b1ac36ebfccc975b3839f6d3bfef72700f8f6f777\",\"dweb:/ipfs/QmSfs5zZ4U14NkZYSqAFUBcuKGjyfMM5Dp2sbj14FmVYPf\"]},\"src/types/TradeAboveThreshold.sol\":{\"keccak256\":\"0x195a9827dc4a619aff6d797231f37fe0c36c3c0deecb52f905d9dbb33544c36d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f714af47db691063ab8004614ea9f5b0f08f5fa8c91058dceee28b681ead2884\",\"dweb:/ipfs/QmPyL4FGP5qpQeWybQZLtQzTyUCY8d7PvuDx4VuFpeq9fF\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OrderNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollNever\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtBlock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryAtEpoch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PollTryNextBlock\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getTradeableOrder\",\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateData\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"domainSeparator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"ctx\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"staticInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"offchainInput\",\"type\":\"bytes\"},{\"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\":\"\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OrderNotValid(string)\":[{\"details\":\"This error is returned by the `getTradeableOrder` function if the order condition is not met. A parameter of `string` type is included to allow the caller to specify the reason for the failure.\"}]},\"events\":{\"ConditionalOrderCreated(address,(address,bytes32,bytes))\":{\"details\":\"This event is emitted when a new conditional order is created.\",\"params\":{\"owner\":\"the address that has created the conditional order\",\"params\":\"the address / salt / data of the conditional order\"}}},\"kind\":\"dev\",\"methods\":{\"getTradeableOrder(address,address,bytes32,bytes,bytes)\":{\"details\":\"If the `owner`'s balance of `sellToken` is above the specified threshold, sell its entire balance for `buyToken` at the current market price (no limit!).\",\"params\":{\"ctx\":\"the context of the order (bytes32(0) if merkle tree is used, otherwise the H(params))\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the parent `isValidSignature` call\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"},\"returns\":{\"order\":\"the tradeable order for submission to the CoW Protocol API\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"validateData(bytes)\":{\"details\":\"Throws if the data is invalid.\",\"params\":{\"data\":\"The ABI-encoded concrete order type's `Data` struct to be validated.\"}},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"details\":\"As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.\",\"params\":{\"_hash\":\"the hash of the order\",\"ctx\":\"the context key of the order (bytes32(0) if a merkle tree is used, otherwise H(params)) with which to lookup the cabinet\",\"domainSeparator\":\"the domain separator used to sign the order\",\"offchainInput\":\"dynamic off-chain input for a discrete order cut from this conditional order\",\"order\":\"`GPv2Order.Data` of a discrete order to be verified (if *not* an `IConditionalOrderGenerator`).\",\"owner\":\"the contract who is the owner of the order\",\"sender\":\"the `msg.sender` of the transaction\",\"staticInput\":\"the static input for all discrete orders cut from this conditional order\"}}},\"title\":\"A smart contract that trades whenever its balance of a certain token exceeds a target threshold\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"validateData(bytes)\":{\"notice\":\"A helper function for SDK users to verify if a given conditional order's data is valid.\"},\"verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))\":{\"notice\":\"Verify if a given discrete order is valid.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/types/TradeAboveThreshold.sol\":\"TradeAboveThreshold\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":safe/=lib/safe/contracts/\"]},\"sources\":{\"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/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/safe/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://bb2039e1459ace1e68761e873632fc339866332f9f5ecb7452a0bc3a3b847e89\",\"dweb:/ipfs/QmYXvDQXJnDkXFvsvKLyZXaAv4x42qvtbtmwHftP4RKX38\"]},\"src/BaseConditionalOrder.sol\":{\"keccak256\":\"0x83d14b5411a5a1adc00da2d3e17703cd7be15de3f5637b2a3f77501df14c5e9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c007603000bb506c58265f61863bb90966a210429f2985a2632d4f00c7bbc1f\",\"dweb:/ipfs/QmUz7ikMYiS8MGNsMxvcHzpkX2yYiPidxvcfG97Vpqs73j\"]},\"src/interfaces/IConditionalOrder.sol\":{\"keccak256\":\"0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28\",\"dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW\"]},\"src/types/ConditionalOrdersUtilsLib.sol\":{\"keccak256\":\"0x38e4ce4fc58c018f510ee45d78ae49253e8aa70fdf559d83ebb6c838c6b47aae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a38ccd5b8ce2895a77b7474b1ac36ebfccc975b3839f6d3bfef72700f8f6f777\",\"dweb:/ipfs/QmSfs5zZ4U14NkZYSqAFUBcuKGjyfMM5Dp2sbj14FmVYPf\"]},\"src/types/TradeAboveThreshold.sol\":{\"keccak256\":\"0x8ebd26e535cbbf811f04c7a2ce292af7d236db87dd4787473ea2c54fc1dbcc7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f8e86036de882745b46353a8bd0ee8bc6d1c794a333c3928592f412d8d7eb91\",\"dweb:/ipfs/QmSYmqgfifBAwcHSuAtuzLmC9uTWULceDJYxsUpLTYs5sE\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -312,6 +380,60 @@ "type": "error", "name": "OrderNotValid" }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollNever" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtBlock" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryAtEpoch" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "type": "error", + "name": "PollTryNextBlock" + }, { "inputs": [ { @@ -468,6 +590,18 @@ } ] }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function", + "name": "validateData" + }, { "inputs": [ { @@ -597,6 +731,12 @@ "supportsInterface(bytes4)": { "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding EIP section https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified to learn more about how these ids are created. This function call must use less than 30 000 gas." }, + "validateData(bytes)": { + "details": "Throws if the data is invalid.", + "params": { + "data": "The ABI-encoded concrete order type's `Data` struct to be validated." + } + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "details": "As an order generator, the `GPv2Order.Data` passed as a parameter is ignored / not validated.", "params": { @@ -616,6 +756,9 @@ "userdoc": { "kind": "user", "methods": { + "validateData(bytes)": { + "notice": "A helper function for SDK users to verify if a given conditional order's data is valid." + }, "verify(address,address,bytes32,bytes32,bytes32,bytes,bytes,(address,address,address,uint256,uint256,uint32,bytes32,uint256,bytes32,bool,bytes32,bytes32))": { "notice": "Verify if a given discrete order is valid." } @@ -625,20 +768,19 @@ }, "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/" + "@openzeppelin/contracts/=lib/openzeppelin-contracts/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-contracts/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/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "safe/=lib/safe/contracts/" ], "optimizer": { "enabled": true, @@ -653,22 +795,6 @@ "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/libraries/GPv2Interaction.sol": { "keccak256": "0xb950f05f76ac8044b82314ea5510941fdbc0f0e76e7f159023d435652b429528", "urls": [ @@ -685,6 +811,22 @@ ], "license": "LGPL-3.0-or-later" }, + "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol": { + "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45", + "urls": [ + "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45", + "dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", + "urls": [ + "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", + "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" + ], + "license": "MIT" + }, "lib/safe/contracts/interfaces/IERC165.sol": { "keccak256": "0x779ed3893a8812e383670b755f65c7727e9343dadaa4d7a4aa7f4aa35d859fdb", "urls": [ @@ -694,18 +836,18 @@ "license": "LGPL-3.0-only" }, "src/BaseConditionalOrder.sol": { - "keccak256": "0x510558386b92b1d5961d8158ae6e3288a1d520c03123d109042a5ec3290b9588", + "keccak256": "0x83d14b5411a5a1adc00da2d3e17703cd7be15de3f5637b2a3f77501df14c5e9c", "urls": [ - "bzz-raw://e071465250cbc11d946f422f4ff774d757291cac00f4c69fbac1d1e34cdae402", - "dweb:/ipfs/QmUF2qNwJhvs3GeWmsWnL6y21eL6mb3QEW7EPYY7NZc25v" + "bzz-raw://4c007603000bb506c58265f61863bb90966a210429f2985a2632d4f00c7bbc1f", + "dweb:/ipfs/QmUz7ikMYiS8MGNsMxvcHzpkX2yYiPidxvcfG97Vpqs73j" ], "license": "MIT" }, "src/interfaces/IConditionalOrder.sol": { - "keccak256": "0x52c9a2b5d5cc7345fe4b4c039af88c5621bc7c6059534cc7c76b77833aafae7b", + "keccak256": "0x9ce9ab9b32a1cea3dd9390407f9733458868f0c4e706acbf5373d2c083ec363e", "urls": [ - "bzz-raw://1660e1510b82216e38b669f16b69f4a37b012b00655d0fc6794e4d77d2182699", - "dweb:/ipfs/QmNiZ7rMT74sKT9d6SUEnKXiWjaYLL8nAzSdLBXBAzYNmZ" + "bzz-raw://e033e894f26b27544fc11d9cc1cd21351693defc8bd8716a47a74da57c634e28", + "dweb:/ipfs/QmcC4PtfpCpf3srEqAuU3GNxz4qvgX8bU5B78hAQQjQhMW" ], "license": "GPL-3.0" }, @@ -718,10 +860,10 @@ "license": "MIT" }, "src/types/TradeAboveThreshold.sol": { - "keccak256": "0x195a9827dc4a619aff6d797231f37fe0c36c3c0deecb52f905d9dbb33544c36d", + "keccak256": "0x8ebd26e535cbbf811f04c7a2ce292af7d236db87dd4787473ea2c54fc1dbcc7c", "urls": [ - "bzz-raw://f714af47db691063ab8004614ea9f5b0f08f5fa8c91058dceee28b681ead2884", - "dweb:/ipfs/QmPyL4FGP5qpQeWybQZLtQzTyUCY8d7PvuDx4VuFpeq9fF" + "bzz-raw://8f8e86036de882745b46353a8bd0ee8bc6d1c794a333c3928592f412d8d7eb91", + "dweb:/ipfs/QmSYmqgfifBAwcHSuAtuzLmC9uTWULceDJYxsUpLTYs5sE" ], "license": "MIT" } @@ -730,49 +872,49 @@ }, "ast": { "absolutePath": "src/types/TradeAboveThreshold.sol", - "id": 55439, + "id": 55542, "exportedSymbols": { "BALANCE_INSUFFICIENT": [ - 55337 + 55440 ], "BaseConditionalOrder": [ - 53501 + 53578 ], "GPv2Interaction": [ - 17090 + 14303 ], "GPv2Order": [ - 17246 + 14459 ], "IConditionalOrder": [ - 54437 + 54540 ], "IConditionalOrderGenerator": [ - 54468 + 54571 ], "IERC165": [ 52197 ], "IERC20": [ - 670 + 45820 ], "INVALID_HASH": [ - 53402 + 53472 ], "TradeAboveThreshold": [ - 55438 + 55541 ], "Utils": [ - 54593 + 54696 ] }, "nodeType": "SourceUnit", - "src": "32:2170:146", + "src": "32:2180:148", "nodes": [ { - "id": 55328, + "id": 55431, "nodeType": "PragmaDirective", - "src": "32:31:146", + "src": "32:31:148", "nodes": [], "literals": [ "solidity", @@ -785,24 +927,24 @@ ] }, { - "id": 55330, + "id": 55433, "nodeType": "ImportDirective", - "src": "65:59:146", + "src": "65:69:148", "nodes": [], - "absolutePath": "lib/@openzeppelin/contracts/interfaces/IERC20.sol", - "file": "@openzeppelin/interfaces/IERC20.sol", + "absolutePath": "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol", + "file": "@openzeppelin/contracts/interfaces/IERC20.sol", "nameLocation": "-1:-1:-1", - "scope": 55439, - "sourceUnit": 3, + "scope": 55542, + "sourceUnit": 45153, "symbolAliases": [ { "foreign": { - "id": 55329, + "id": 55432, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "73:6:146", + "referencedDeclaration": 45820, + "src": "73:6:148", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" @@ -811,37 +953,37 @@ "unitAlias": "" }, { - "id": 55331, + "id": 55434, "nodeType": "ImportDirective", - "src": "126:37:146", + "src": "136:37:148", "nodes": [], "absolutePath": "src/BaseConditionalOrder.sol", "file": "../BaseConditionalOrder.sol", "nameLocation": "-1:-1:-1", - "scope": 55439, - "sourceUnit": 53502, + "scope": 55542, + "sourceUnit": 53579, "symbolAliases": [], "unitAlias": "" }, { - "id": 55333, + "id": 55436, "nodeType": "ImportDirective", - "src": "164:83:146", + "src": "174:83:148", "nodes": [], "absolutePath": "src/types/ConditionalOrdersUtilsLib.sol", "file": "./ConditionalOrdersUtilsLib.sol", "nameLocation": "-1:-1:-1", - "scope": 55439, - "sourceUnit": 54594, + "scope": 55542, + "sourceUnit": 54697, "symbolAliases": [ { "foreign": { - "id": 55332, + "id": 55435, "name": "ConditionalOrdersUtilsLib", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "172:25:146", + "referencedDeclaration": 54696, + "src": "182:25:148", "typeDescriptions": {} }, "local": "Utils", @@ -851,15 +993,15 @@ "unitAlias": "" }, { - "id": 55337, + "id": 55440, "nodeType": "VariableDeclaration", - "src": "351:61:146", + "src": "361:61:148", "nodes": [], "constant": true, "mutability": "constant", "name": "BALANCE_INSUFFICIENT", - "nameLocation": "367:20:146", - "scope": 55439, + "nameLocation": "377:20:148", + "scope": 55542, "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -867,10 +1009,10 @@ "typeString": "string" }, "typeName": { - "id": 55335, + "id": 55438, "name": "string", "nodeType": "ElementaryTypeName", - "src": "351:6:146", + "src": "361:6:148", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -878,14 +1020,14 @@ }, "value": { "hexValue": "62616c616e636520696e73756666696369656e74", - "id": 55336, + "id": 55439, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "390:22:146", + "src": "400:22:148", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a9ef3b4d07292ad1e9ff9cf86a951bcf260ed39b4c9f3962ba7c62aae85e2c4f", "typeString": "literal_string \"balance insufficient\"" @@ -895,49 +1037,49 @@ "visibility": "internal" }, { - "id": 55438, + "id": 55541, "nodeType": "ContractDefinition", - "src": "529:1672:146", + "src": "539:1672:148", "nodes": [ { - "id": 55355, + "id": 55458, "nodeType": "StructDefinition", - "src": "588:186:146", + "src": "598:186:148", "nodes": [], "canonicalName": "TradeAboveThreshold.Data", "members": [ { "constant": false, - "id": 55343, + "id": 55446, "mutability": "mutable", "name": "sellToken", - "nameLocation": "617:9:146", + "nameLocation": "627:9:148", "nodeType": "VariableDeclaration", - "scope": 55355, - "src": "610:16:146", + "scope": 55458, + "src": "620:16:148", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 55342, + "id": 55445, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55341, + "id": 55444, "name": "IERC20", "nameLocations": [ - "610:6:146" + "620:6:148" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "610:6:146" + "referencedDeclaration": 45820, + "src": "620:6:148" }, - "referencedDeclaration": 670, - "src": "610:6:146", + "referencedDeclaration": 45820, + "src": "620:6:148", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -945,36 +1087,36 @@ }, { "constant": false, - "id": 55346, + "id": 55449, "mutability": "mutable", "name": "buyToken", - "nameLocation": "643:8:146", + "nameLocation": "653:8:148", "nodeType": "VariableDeclaration", - "scope": 55355, - "src": "636:15:146", + "scope": 55458, + "src": "646:15:148", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, "typeName": { - "id": 55345, + "id": 55448, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55344, + "id": 55447, "name": "IERC20", "nameLocations": [ - "636:6:146" + "646:6:148" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 670, - "src": "636:6:146" + "referencedDeclaration": 45820, + "src": "646:6:148" }, - "referencedDeclaration": 670, - "src": "636:6:146", + "referencedDeclaration": 45820, + "src": "646:6:148", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, @@ -982,13 +1124,13 @@ }, { "constant": false, - "id": 55348, + "id": 55451, "mutability": "mutable", "name": "receiver", - "nameLocation": "669:8:146", + "nameLocation": "679:8:148", "nodeType": "VariableDeclaration", - "scope": 55355, - "src": "661:16:146", + "scope": 55458, + "src": "671:16:148", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -996,10 +1138,10 @@ "typeString": "address" }, "typeName": { - "id": 55347, + "id": 55450, "name": "address", "nodeType": "ElementaryTypeName", - "src": "661:7:146", + "src": "671:7:148", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1010,13 +1152,13 @@ }, { "constant": false, - "id": 55350, + "id": 55453, "mutability": "mutable", "name": "validityBucketSeconds", - "nameLocation": "694:21:146", + "nameLocation": "704:21:148", "nodeType": "VariableDeclaration", - "scope": 55355, - "src": "687:28:146", + "scope": 55458, + "src": "697:28:148", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1024,10 +1166,10 @@ "typeString": "uint32" }, "typeName": { - "id": 55349, + "id": 55452, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "687:6:146", + "src": "697:6:148", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1037,13 +1179,13 @@ }, { "constant": false, - "id": 55352, + "id": 55455, "mutability": "mutable", "name": "threshold", - "nameLocation": "733:9:146", + "nameLocation": "743:9:148", "nodeType": "VariableDeclaration", - "scope": 55355, - "src": "725:17:146", + "scope": 55458, + "src": "735:17:148", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1051,10 +1193,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55351, + "id": 55454, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "725:7:146", + "src": "735:7:148", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1064,13 +1206,13 @@ }, { "constant": false, - "id": 55354, + "id": 55457, "mutability": "mutable", "name": "appData", - "nameLocation": "760:7:146", + "nameLocation": "770:7:148", "nodeType": "VariableDeclaration", - "scope": 55355, - "src": "752:15:146", + "scope": 55458, + "src": "762:15:148", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1078,10 +1220,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 55353, + "id": 55456, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "752:7:146", + "src": "762:7:148", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1091,59 +1233,59 @@ } ], "name": "Data", - "nameLocation": "595:4:146", - "scope": 55438, + "nameLocation": "605:4:148", + "scope": 55541, "visibility": "public" }, { - "id": 55437, + "id": 55540, "nodeType": "FunctionDefinition", - "src": "1015:1184:146", + "src": "1025:1184:148", "nodes": [], "body": { - "id": 55436, + "id": 55539, "nodeType": "Block", - "src": "1214:985:146", + "src": "1224:985:148", "nodes": [], "statements": [ { "assignments": [ - 55377 + 55480 ], "declarations": [ { "constant": false, - "id": 55377, + "id": 55480, "mutability": "mutable", "name": "data", - "nameLocation": "1335:4:146", + "nameLocation": "1345:4:148", "nodeType": "VariableDeclaration", - "scope": 55436, - "src": "1303:36:146", + "scope": 55539, + "src": "1313:36:148", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55355_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55458_memory_ptr", "typeString": "struct TradeAboveThreshold.Data" }, "typeName": { - "id": 55376, + "id": 55479, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55375, + "id": 55478, "name": "TradeAboveThreshold.Data", "nameLocations": [ - "1303:19:146", - "1323:4:146" + "1313:19:148", + "1333:4:148" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 55355, - "src": "1303:24:146" + "referencedDeclaration": 55458, + "src": "1313:24:148" }, - "referencedDeclaration": 55355, - "src": "1303:24:146", + "referencedDeclaration": 55458, + "src": "1313:24:148", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55355_storage_ptr", + "typeIdentifier": "t_struct$_Data_$55458_storage_ptr", "typeString": "struct TradeAboveThreshold.Data" } }, @@ -1151,16 +1293,16 @@ } ], "documentation": "@dev Decode the payload into the trade above threshold parameters.", - "id": 55384, + "id": 55487, "initialValue": { "arguments": [ { - "id": 55380, + "id": 55483, "name": "staticInput", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55364, - "src": "1353:11:146", + "referencedDeclaration": 55467, + "src": "1363:11:148", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -1169,28 +1311,28 @@ { "components": [ { - "id": 55381, + "id": 55484, "name": "Data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55355, - "src": "1367:4:146", + "referencedDeclaration": 55458, + "src": "1377:4:148", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$55355_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$55458_storage_ptr_$", "typeString": "type(struct TradeAboveThreshold.Data storage pointer)" } } ], - "id": 55382, + "id": 55485, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1366:6:146", + "src": "1376:6:148", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$55355_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$55458_storage_ptr_$", "typeString": "type(struct TradeAboveThreshold.Data storage pointer)" } } @@ -1202,37 +1344,37 @@ "typeString": "bytes calldata" }, { - "typeIdentifier": "t_type$_t_struct$_Data_$55355_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$55458_storage_ptr_$", "typeString": "type(struct TradeAboveThreshold.Data storage pointer)" } ], "expression": { - "id": 55378, + "id": 55481, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "1342:3:146", + "src": "1352:3:148", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 55379, + "id": 55482, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1346:6:146", + "memberLocation": "1356:6:148", "memberName": "decode", "nodeType": "MemberAccess", - "src": "1342:10:146", + "src": "1352:10:148", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 55383, + "id": 55486, "isConstant": false, "isLValue": false, "isPure": false, @@ -1241,30 +1383,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1342:31:146", + "src": "1352:31:148", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55355_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55458_memory_ptr", "typeString": "struct TradeAboveThreshold.Data memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1303:70:146" + "src": "1313:70:148" }, { "assignments": [ - 55386 + 55489 ], "declarations": [ { "constant": false, - "id": 55386, + "id": 55489, "mutability": "mutable", "name": "balance", - "nameLocation": "1392:7:146", + "nameLocation": "1402:7:148", "nodeType": "VariableDeclaration", - "scope": 55436, - "src": "1384:15:146", + "scope": 55539, + "src": "1394:15:148", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1272,10 +1414,10 @@ "typeString": "uint256" }, "typeName": { - "id": 55385, + "id": 55488, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1384:7:146", + "src": "1394:7:148", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1284,16 +1426,16 @@ "visibility": "internal" } ], - "id": 55392, + "id": 55495, "initialValue": { "arguments": [ { - "id": 55390, + "id": 55493, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55358, - "src": "1427:5:146", + "referencedDeclaration": 55461, + "src": "1437:5:148", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1309,48 +1451,48 @@ ], "expression": { "expression": { - "id": 55387, + "id": 55490, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55377, - "src": "1402:4:146", + "referencedDeclaration": 55480, + "src": "1412:4:148", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55355_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55458_memory_ptr", "typeString": "struct TradeAboveThreshold.Data memory" } }, - "id": 55388, + "id": 55491, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1407:9:146", + "memberLocation": "1417:9:148", "memberName": "sellToken", "nodeType": "MemberAccess", - "referencedDeclaration": 55343, - "src": "1402:14:146", + "referencedDeclaration": 55446, + "src": "1412:14:148", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, - "id": 55389, + "id": 55492, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1417:9:146", + "memberLocation": "1427:9:148", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 627, - "src": "1402:24:146", + "referencedDeclaration": 45777, + "src": "1412:24:148", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 55391, + "id": 55494, "isConstant": false, "isLValue": false, "isPure": false, @@ -1359,7 +1501,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1402:31:146", + "src": "1412:31:148", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1367,11 +1509,11 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "1384:49:146" + "src": "1394:49:148" }, { "condition": { - "id": 55398, + "id": 55501, "isConstant": false, "isLValue": false, "isPure": false, @@ -1379,7 +1521,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1536:28:146", + "src": "1546:28:148", "subExpression": { "components": [ { @@ -1387,18 +1529,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 55396, + "id": 55499, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 55393, + "id": 55496, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55386, - "src": "1538:7:146", + "referencedDeclaration": 55489, + "src": "1548:7:148", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1408,47 +1550,47 @@ "operator": ">=", "rightExpression": { "expression": { - "id": 55394, + "id": 55497, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55377, - "src": "1549:4:146", + "referencedDeclaration": 55480, + "src": "1559:4:148", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55355_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55458_memory_ptr", "typeString": "struct TradeAboveThreshold.Data memory" } }, - "id": 55395, + "id": 55498, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1554:9:146", + "memberLocation": "1564:9:148", "memberName": "threshold", "nodeType": "MemberAccess", - "referencedDeclaration": 55352, - "src": "1549:14:146", + "referencedDeclaration": 55455, + "src": "1559:14:148", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1538:25:146", + "src": "1548:25:148", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 55397, + "id": 55500, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1537:27:146", + "src": "1547:27:148", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1459,24 +1601,24 @@ "typeString": "bool" } }, - "id": 55406, + "id": 55509, "nodeType": "IfStatement", - "src": "1532:119:146", + "src": "1542:119:148", "trueBody": { - "id": 55405, + "id": 55508, "nodeType": "Block", - "src": "1566:85:146", + "src": "1576:85:148", "statements": [ { "errorCall": { "arguments": [ { - "id": 55402, + "id": 55505, "name": "BALANCE_INSUFFICIENT", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55337, - "src": "1619:20:146", + "referencedDeclaration": 55440, + "src": "1629:20:148", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1491,33 +1633,33 @@ } ], "expression": { - "id": 55399, + "id": 55502, "name": "IConditionalOrder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54437, - "src": "1587:17:146", + "referencedDeclaration": 54540, + "src": "1597:17:148", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54437_$", + "typeIdentifier": "t_type$_t_contract$_IConditionalOrder_$54540_$", "typeString": "type(contract IConditionalOrder)" } }, - "id": 55401, + "id": 55504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1605:13:146", + "memberLocation": "1615:13:148", "memberName": "OrderNotValid", "nodeType": "MemberAccess", - "referencedDeclaration": 54407, - "src": "1587:31:146", + "referencedDeclaration": 54484, + "src": "1597:31:148", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 55403, + "id": 55506, "isConstant": false, "isLValue": false, "isPure": false, @@ -1526,36 +1668,36 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1587:53:146", + "src": "1597:53:148", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 55404, + "id": 55507, "nodeType": "RevertStatement", - "src": "1580:60:146" + "src": "1590:60:148" } ] } }, { "expression": { - "id": 55434, + "id": 55537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 55407, + "id": 55510, "name": "order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55371, - "src": "1783:5:146", + "referencedDeclaration": 55474, + "src": "1793:5:148", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, @@ -1565,95 +1707,95 @@ "arguments": [ { "expression": { - "id": 55410, + "id": 55513, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55377, - "src": "1819:4:146", + "referencedDeclaration": 55480, + "src": "1829:4:148", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55355_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55458_memory_ptr", "typeString": "struct TradeAboveThreshold.Data memory" } }, - "id": 55411, + "id": 55514, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1824:9:146", + "memberLocation": "1834:9:148", "memberName": "sellToken", "nodeType": "MemberAccess", - "referencedDeclaration": 55343, - "src": "1819:14:146", + "referencedDeclaration": 55446, + "src": "1829:14:148", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, { "expression": { - "id": 55412, + "id": 55515, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55377, - "src": "1847:4:146", + "referencedDeclaration": 55480, + "src": "1857:4:148", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55355_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55458_memory_ptr", "typeString": "struct TradeAboveThreshold.Data memory" } }, - "id": 55413, + "id": 55516, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1852:8:146", + "memberLocation": "1862:8:148", "memberName": "buyToken", "nodeType": "MemberAccess", - "referencedDeclaration": 55346, - "src": "1847:13:146", + "referencedDeclaration": 55449, + "src": "1857:13:148", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" } }, { "expression": { - "id": 55414, + "id": 55517, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55377, - "src": "1874:4:146", + "referencedDeclaration": 55480, + "src": "1884:4:148", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55355_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55458_memory_ptr", "typeString": "struct TradeAboveThreshold.Data memory" } }, - "id": 55415, + "id": 55518, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1879:8:146", + "memberLocation": "1889:8:148", "memberName": "receiver", "nodeType": "MemberAccess", - "referencedDeclaration": 55348, - "src": "1874:13:146", + "referencedDeclaration": 55451, + "src": "1884:13:148", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 55416, + "id": 55519, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55386, - "src": "1901:7:146", + "referencedDeclaration": 55489, + "src": "1911:7:148", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1661,14 +1803,14 @@ }, { "hexValue": "31", - "id": 55417, + "id": 55520, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1922:1:146", + "src": "1932:1:148", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -1679,27 +1821,27 @@ "arguments": [ { "expression": { - "id": 55420, + "id": 55523, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55377, - "src": "1988:4:146", + "referencedDeclaration": 55480, + "src": "1998:4:148", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55355_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55458_memory_ptr", "typeString": "struct TradeAboveThreshold.Data memory" } }, - "id": 55421, + "id": 55524, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "1993:21:146", + "memberLocation": "2003:21:148", "memberName": "validityBucketSeconds", "nodeType": "MemberAccess", - "referencedDeclaration": 55350, - "src": "1988:26:146", + "referencedDeclaration": 55453, + "src": "1998:26:148", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1714,33 +1856,33 @@ } ], "expression": { - "id": 55418, + "id": 55521, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54593, - "src": "1968:5:146", + "referencedDeclaration": 54696, + "src": "1978:5:148", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54593_$", + "typeIdentifier": "t_type$_t_contract$_ConditionalOrdersUtilsLib_$54696_$", "typeString": "type(library ConditionalOrdersUtilsLib)" } }, - "id": 55419, + "id": 55522, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1974:13:146", + "memberLocation": "1984:13:148", "memberName": "validToBucket", "nodeType": "MemberAccess", - "referencedDeclaration": 54539, - "src": "1968:19:146", + "referencedDeclaration": 54642, + "src": "1978:19:148", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_uint32_$", "typeString": "function (uint32) view returns (uint32)" } }, - "id": 55422, + "id": 55525, "isConstant": false, "isLValue": false, "isPure": false, @@ -1749,7 +1891,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1968:47:146", + "src": "1978:47:148", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -1758,27 +1900,27 @@ }, { "expression": { - "id": 55423, + "id": 55526, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 55377, - "src": "2029:4:146", + "referencedDeclaration": 55480, + "src": "2039:4:148", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$55355_memory_ptr", + "typeIdentifier": "t_struct$_Data_$55458_memory_ptr", "typeString": "struct TradeAboveThreshold.Data memory" } }, - "id": 55424, + "id": 55527, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2034:7:146", + "memberLocation": "2044:7:148", "memberName": "appData", "nodeType": "MemberAccess", - "referencedDeclaration": 55354, - "src": "2029:12:146", + "referencedDeclaration": 55457, + "src": "2039:12:148", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1786,14 +1928,14 @@ }, { "hexValue": "30", - "id": 55425, + "id": 55528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2055:1:146", + "src": "2065:1:148", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1802,27 +1944,27 @@ }, { "expression": { - "id": 55426, + "id": 55529, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "2070:9:146", + "referencedDeclaration": 14459, + "src": "2080:9:148", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55427, + "id": 55530, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2080:9:146", + "memberLocation": "2090:9:148", "memberName": "KIND_SELL", "nodeType": "MemberAccess", - "referencedDeclaration": 17129, - "src": "2070:19:146", + "referencedDeclaration": 14342, + "src": "2080:19:148", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1830,14 +1972,14 @@ }, { "hexValue": "66616c7365", - "id": 55428, + "id": 55531, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2103:5:146", + "src": "2113:5:148", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1846,27 +1988,27 @@ }, { "expression": { - "id": 55429, + "id": 55532, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "2122:9:146", + "referencedDeclaration": 14459, + "src": "2132:9:148", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55430, + "id": 55533, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2132:13:146", + "memberLocation": "2142:13:148", "memberName": "BALANCE_ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 17137, - "src": "2122:23:146", + "referencedDeclaration": 14350, + "src": "2132:23:148", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1874,27 +2016,27 @@ }, { "expression": { - "id": 55431, + "id": 55534, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "2159:9:146", + "referencedDeclaration": 14459, + "src": "2169:9:148", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55432, + "id": 55535, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2169:13:146", + "memberLocation": "2179:13:148", "memberName": "BALANCE_ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 17137, - "src": "2159:23:146", + "referencedDeclaration": 14350, + "src": "2169:23:148", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1904,11 +2046,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { - "typeIdentifier": "t_contract$_IERC20_$670", + "typeIdentifier": "t_contract$_IERC20_$45820", "typeString": "contract IERC20" }, { @@ -1953,33 +2095,33 @@ } ], "expression": { - "id": 55408, + "id": 55511, "name": "GPv2Order", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 17246, - "src": "1791:9:146", + "referencedDeclaration": 14459, + "src": "1801:9:148", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_GPv2Order_$17246_$", + "typeIdentifier": "t_type$_t_contract$_GPv2Order_$14459_$", "typeString": "type(library GPv2Order)" } }, - "id": 55409, + "id": 55512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1801:4:146", + "memberLocation": "1811:4:148", "memberName": "Data", "nodeType": "MemberAccess", - "referencedDeclaration": 17121, - "src": "1791:14:146", + "referencedDeclaration": 14334, + "src": "1801:14:148", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Data_$17121_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Data_$14334_storage_ptr_$", "typeString": "type(struct GPv2Order.Data storage pointer)" } }, - "id": 55433, + "id": 55536, "isConstant": false, "isLValue": false, "isPure": false, @@ -1988,32 +2130,32 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1791:401:146", + "src": "1801:401:148", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "src": "1783:409:146", + "src": "1793:409:148", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data memory" } }, - "id": 55435, + "id": 55538, "nodeType": "ExpressionStatement", - "src": "1783:409:146" + "src": "1793:409:148" } ] }, "baseFunctions": [ - 53476 + 53546 ], "documentation": { - "id": 55356, + "id": 55459, "nodeType": "StructuredDocumentation", - "src": "780:230:146", + "src": "790:230:148", "text": " @inheritdoc IConditionalOrderGenerator\n @dev If the `owner`'s balance of `sellToken` is above the specified threshold, sell its entire balance\n for `buyToken` at the current market price (no limit!)." }, "functionSelector": "b8296fc4", @@ -2021,26 +2163,26 @@ "kind": "function", "modifiers": [], "name": "getTradeableOrder", - "nameLocation": "1024:17:146", + "nameLocation": "1034:17:148", "overrides": { - "id": 55368, + "id": 55471, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "1155:8:146" + "src": "1165:8:148" }, "parameters": { - "id": 55367, + "id": 55470, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55358, + "id": 55461, "mutability": "mutable", "name": "owner", - "nameLocation": "1050:5:146", + "nameLocation": "1060:5:148", "nodeType": "VariableDeclaration", - "scope": 55437, - "src": "1042:13:146", + "scope": 55540, + "src": "1052:13:148", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2048,10 +2190,10 @@ "typeString": "address" }, "typeName": { - "id": 55357, + "id": 55460, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1042:7:146", + "src": "1052:7:148", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2062,13 +2204,13 @@ }, { "constant": false, - "id": 55360, + "id": 55463, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 55437, - "src": "1057:7:146", + "scope": 55540, + "src": "1067:7:148", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2076,10 +2218,10 @@ "typeString": "address" }, "typeName": { - "id": 55359, + "id": 55462, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1057:7:146", + "src": "1067:7:148", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2090,13 +2232,13 @@ }, { "constant": false, - "id": 55362, + "id": 55465, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 55437, - "src": "1066:7:146", + "scope": 55540, + "src": "1076:7:148", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2104,10 +2246,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 55361, + "id": 55464, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1066:7:146", + "src": "1076:7:148", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2117,13 +2259,13 @@ }, { "constant": false, - "id": 55364, + "id": 55467, "mutability": "mutable", "name": "staticInput", - "nameLocation": "1090:11:146", + "nameLocation": "1100:11:148", "nodeType": "VariableDeclaration", - "scope": 55437, - "src": "1075:26:146", + "scope": 55540, + "src": "1085:26:148", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -2131,10 +2273,10 @@ "typeString": "bytes" }, "typeName": { - "id": 55363, + "id": 55466, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1075:5:146", + "src": "1085:5:148", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2144,13 +2286,13 @@ }, { "constant": false, - "id": 55366, + "id": 55469, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 55437, - "src": "1103:14:146", + "scope": 55540, + "src": "1113:14:148", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -2158,10 +2300,10 @@ "typeString": "bytes" }, "typeName": { - "id": 55365, + "id": 55468, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1103:5:146", + "src": "1113:5:148", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2170,54 +2312,54 @@ "visibility": "internal" } ], - "src": "1041:77:146" + "src": "1051:77:148" }, "returnParameters": { - "id": 55372, + "id": 55475, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 55371, + "id": 55474, "mutability": "mutable", "name": "order", - "nameLocation": "1203:5:146", + "nameLocation": "1213:5:148", "nodeType": "VariableDeclaration", - "scope": 55437, - "src": "1181:27:146", + "scope": 55540, + "src": "1191:27:148", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_memory_ptr", + "typeIdentifier": "t_struct$_Data_$14334_memory_ptr", "typeString": "struct GPv2Order.Data" }, "typeName": { - "id": 55370, + "id": 55473, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 55369, + "id": 55472, "name": "GPv2Order.Data", "nameLocations": [ - "1181:9:146", - "1191:4:146" + "1191:9:148", + "1201:4:148" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 17121, - "src": "1181:14:146" + "referencedDeclaration": 14334, + "src": "1191:14:148" }, - "referencedDeclaration": 17121, - "src": "1181:14:146", + "referencedDeclaration": 14334, + "src": "1191:14:148", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$17121_storage_ptr", + "typeIdentifier": "t_struct$_Data_$14334_storage_ptr", "typeString": "struct GPv2Order.Data" } }, "visibility": "internal" } ], - "src": "1180:29:146" + "src": "1190:29:148" }, - "scope": 55438, + "scope": 55541, "stateMutability": "view", "virtual": false, "visibility": "public" @@ -2227,46 +2369,50 @@ "baseContracts": [ { "baseName": { - "id": 55339, + "id": 55442, "name": "BaseConditionalOrder", "nameLocations": [ - "561:20:146" + "571:20:148" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 53501, - "src": "561:20:146" + "referencedDeclaration": 53578, + "src": "571:20:148" }, - "id": 55340, + "id": 55443, "nodeType": "InheritanceSpecifier", - "src": "561:20:146" + "src": "571:20:148" } ], "canonicalName": "TradeAboveThreshold", "contractDependencies": [], "contractKind": "contract", "documentation": { - "id": 55338, + "id": 55441, "nodeType": "StructuredDocumentation", - "src": "415:113:146", + "src": "425:113:148", "text": " @title A smart contract that trades whenever its balance of a certain token exceeds a target threshold" }, "fullyImplemented": true, "linearizedBaseContracts": [ - 55438, - 53501, - 54468, + 55541, + 53578, + 54571, 52197, - 54437 + 54540 ], "name": "TradeAboveThreshold", - "nameLocation": "538:19:146", - "scope": 55439, + "nameLocation": "548:19:148", + "scope": 55542, "usedErrors": [ - 54407 + 54484, + 54488, + 54494, + 54500, + 54504 ] } ], "license": "MIT" }, - "id": 146 + "id": 148 } \ No newline at end of file