diff --git a/common/config.go b/common/config.go index 758041e8..bca539d4 100644 --- a/common/config.go +++ b/common/config.go @@ -79,8 +79,8 @@ var StagenetConfig = Config{ Port: 38081, }, }, - ContractAddress: ethcommon.HexToAddress("0x88958eB7381CdA17eB2694BdFf02F5c0989d8544"), - ForwarderContractAddress: ethcommon.HexToAddress("0x388BED4B765Ac4367DB1fF3126ef29385636FB35"), + ContractAddress: ethcommon.HexToAddress("0x3d561C6f938aDBc45239772cc6A39e1Db7192154"), + ForwarderContractAddress: ethcommon.HexToAddress("0x4a707181842Ef084daFC90DeF367a1825eCcBCab"), Bootnodes: []string{ "/ip4/134.122.115.208/tcp/9900/p2p/12D3KooWDqCzbjexHEa8Rut7bzxHFpRMZyDRW1L6TGkL1KY24JH5", "/ip4/143.198.123.27/tcp/9900/p2p/12D3KooWSc4yFkPWBFmPToTMbhChH3FAgGH96DNzSg5fio1pQYoN", diff --git a/ethereum/check_swap_factory_contract.go b/ethereum/check_swap_factory_contract.go index 0ad47a40..db37940e 100644 --- a/ethereum/check_swap_factory_contract.go +++ b/ethereum/check_swap_factory_contract.go @@ -16,7 +16,7 @@ import ( // with the trustedForwarder address set to all zeros and reading back the bytecode. See // the unit test TestExpectedSwapFactoryBytecodeHex if you need to update this value. const ( - expectedSwapFactoryBytecodeHex = "6080604052600436106100865760003560e01c806373e4771c1161005957806373e4771c14610145578063aa0f87251461016e578063b32d1b4f1461019e578063eb84e7f2146101db578063fcaf229c1461021857610086565b80631e6c5acc1461008b57806356c022bb146100b4578063572b6c05146100df5780635cb969161461011c575b600080fd5b34801561009757600080fd5b506100b260048036038101906100ad919061163d565b610241565b005b3480156100c057600080fd5b506100c96105b4565b6040516100d6919061168e565b60405180910390f35b3480156100eb57600080fd5b50610106600480360381019061010191906116a9565b6105d8565b60405161011391906116f1565b60405180910390f35b34801561012857600080fd5b50610143600480360381019061013e919061163d565b610630565b005b34801561015157600080fd5b5061016c6004803603810190610167919061170c565b610756565b005b61018860048036038101906101839190611762565b6109a5565b6040516101959190611813565b60405180910390f35b3480156101aa57600080fd5b506101c560048036038101906101c0919061182e565b610d12565b6040516101d291906116f1565b60405180910390f35b3480156101e757600080fd5b5061020260048036038101906101fd919061186e565b610e17565b60405161020f9190611912565b60405180910390f35b34801561022457600080fd5b5061023f600480360381019061023a919061192d565b610e37565b005b6000826040516020016102549190611a4e565b604051602081830303815290604052805190602001209050600080600083815260200190815260200160002060009054906101000a900460ff1690506003808111156102a3576102a261189b565b5b8160038111156102b6576102b561189b565b5b141580156102e95750600060038111156102d3576102d261189b565b5b8160038111156102e6576102e561189b565b5b14155b610328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031f90611ac7565b60405180910390fd5b836000015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461039a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039190611b59565b60405180910390fd5b8360a00151421015806103e157508360800151421080156103e05750600260038111156103ca576103c961189b565b5b8160038111156103dd576103dc61189b565b5b14155b5b610420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041790611beb565b60405180910390fd5b61042e838560600151610fc6565b82827e7c875846b687732a7579c19bb1dade66cd14e9f4f809565e2b2b5e76c72b4f60405160405180910390a3600360008084815260200190815260200160002060006101000a81548160ff021916908360038111156104915761049061189b565b5b0217905550600073ffffffffffffffffffffffffffffffffffffffff168460c0015173ffffffffffffffffffffffffffffffffffffffff160361052257836000015173ffffffffffffffffffffffffffffffffffffffff166108fc8560e001519081150290604051600060405180830381858888f1935050505015801561051c573d6000803e3d6000fd5b506105ae565b8360c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85600001518660e001516040518363ffffffff1660e01b8152600401610569929190611c79565b6020604051808303816000875af1158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611cce565b505b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61063a8282611019565b600073ffffffffffffffffffffffffffffffffffffffff168260c0015173ffffffffffffffffffffffffffffffffffffffff16036106c657816020015173ffffffffffffffffffffffffffffffffffffffff166108fc8360e001519081150290604051600060405180830381858888f193505050501580156106c0573d6000803e3d6000fd5b50610752565b8160c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83602001518460e001516040518363ffffffff1660e01b815260040161070d929190611c79565b6020604051808303816000875af115801561072c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107509190611cce565b505b5050565b61075f336105d8565b61079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590611d6d565b60405180910390fd5b6107a88383611019565b600073ffffffffffffffffffffffffffffffffffffffff168360c0015173ffffffffffffffffffffffffffffffffffffffff160361088657826020015173ffffffffffffffffffffffffffffffffffffffff166108fc828560e0015161080e9190611dbc565b9081150290604051600060405180830381858888f19350505050158015610839573d6000803e3d6000fd5b503273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610880573d6000803e3d6000fd5b506109a0565b8260c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8460200151838660e001516108bb9190611dbc565b6040518363ffffffff1660e01b81526004016108d8929190611c79565b6020604051808303816000875af11580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190611cce565b508260c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb32836040518363ffffffff1660e01b815260040161095b929190611df0565b6020604051808303816000875af115801561097a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e9190611cce565b505b505050565b60006109af611321565b33816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050888160400181815250508781606001818152505086816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508542610a3f9190611e19565b816080018181525050600286610a559190611e4d565b42610a609190611e19565b8160a0018181525050848160c0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160e0018181525050600073ffffffffffffffffffffffffffffffffffffffff168160c0015173ffffffffffffffffffffffffffffffffffffffff1603610b2e57348160e0015114610b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2090611f01565b60405180910390fd5b610bb8565b8060c0015173ffffffffffffffffffffffffffffffffffffffff166323b872dd33308460e001516040518463ffffffff1660e01b8152600401610b7393929190611f21565b6020604051808303816000875af1158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb69190611cce565b505b8281610100018181525050600081604051602001610bd69190611a4e565b60405160208183030381529060405280519060200120905060006003811115610c0257610c0161189b565b5b60008083815260200190815260200160002060009054906101000a900460ff166003811115610c3457610c3361189b565b5b14610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90611fa4565b60405180910390fd5b7f91446ce035ac29998b5473504609a5ef5e961005daba4630a1684b63be848f56818b8b85608001518660a001518760c001518860e00151604051610cbf9796959493929190611fc4565b60405180910390a1600160008083815260200190815260200160002060006101000a81548160ff02191690836003811115610cfd57610cfc61189b565b5b02179055508092505050979650505050505050565b60008060016000601b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860001b7ffffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036414180610d6e57610d6d612033565b5b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798890960001b60405160008152602001604052604051610db194939291906120f2565b6020604051602081039080840390855afa158015610dd3573d6000803e3d6000fd5b5050506020604051035190508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161491505092915050565b60006020528060005260406000206000915054906101000a900460ff1681565b600081604051602001610e4a9190611a4e565b60405160208183030381529060405280519060200120905060016003811115610e7657610e7561189b565b5b60008083815260200190815260200160002060009054906101000a900460ff166003811115610ea857610ea761189b565b5b14610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90612183565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190612215565b60405180910390fd5b600260008083815260200190815260200160002060006101000a81548160ff02191690836003811115610f9057610f8f61189b565b5b0217905550807f5fc23b25552757626e08b316cc2387ad1bc70ee1594af7204db4ce0c39f5d15f60405160405180910390a25050565b610fd68260001c8260001c610d12565b611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c906122a7565b60405180910390fd5b5050565b60008260405160200161102c9190611a4e565b604051602081830303815290604052805190602001209050600080600083815260200190815260200160002060009054906101000a900460ff1690506000600381111561107c5761107b61189b565b5b81600381111561108f5761108e61189b565b5b036110cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c690612313565b60405180910390fd5b6003808111156110e2576110e161189b565b5b8160038111156110f5576110f461189b565b5b03611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c90611ac7565b60405180910390fd5b836020015173ffffffffffffffffffffffffffffffffffffffff166111586112e7565b73ffffffffffffffffffffffffffffffffffffffff16146111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a59061237f565b60405180910390fd5b8360800151421015806111e55750600260038111156111d0576111cf61189b565b5b8160038111156111e3576111e261189b565b5b145b611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b906123eb565b60405180910390fd5b8360a00151421061126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126190612457565b60405180910390fd5b611278838560400151610fc6565b82827f38d6042dbdae8e73a7f6afbabd3fbe0873f9f5ed3cd71294591c3908c2e65fee60405160405180910390a3600360008084815260200190815260200160002060006101000a81548160ff021916908360038111156112dc576112db61189b565b5b021790555050505050565b60006112f2336105d8565b1561130657601436033560601c9050611315565b61130e611319565b9050611316565b5b90565b600033905090565b604051806101200160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008019168152602001600080191681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611412826113c9565b810181811067ffffffffffffffff82111715611431576114306113da565b5b80604052505050565b60006114446113b5565b90506114508282611409565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061148082611455565b9050919050565b61149081611475565b811461149b57600080fd5b50565b6000813590506114ad81611487565b92915050565b6000819050919050565b6114c6816114b3565b81146114d157600080fd5b50565b6000813590506114e3816114bd565b92915050565b6000819050919050565b6114fc816114e9565b811461150757600080fd5b50565b600081359050611519816114f3565b92915050565b600061152a82611455565b9050919050565b61153a8161151f565b811461154557600080fd5b50565b60008135905061155781611531565b92915050565b60006101208284031215611574576115736113c4565b5b61157f61012061143a565b9050600061158f8482850161149e565b60008301525060206115a38482850161149e565b60208301525060406115b7848285016114d4565b60408301525060606115cb848285016114d4565b60608301525060806115df8482850161150a565b60808301525060a06115f38482850161150a565b60a08301525060c061160784828501611548565b60c08301525060e061161b8482850161150a565b60e0830152506101006116308482850161150a565b6101008301525092915050565b6000806101408385031215611655576116546113bf565b5b60006116638582860161155d565b925050610120611675858286016114d4565b9150509250929050565b6116888161151f565b82525050565b60006020820190506116a3600083018461167f565b92915050565b6000602082840312156116bf576116be6113bf565b5b60006116cd84828501611548565b91505092915050565b60008115159050919050565b6116eb816116d6565b82525050565b600060208201905061170660008301846116e2565b92915050565b60008060006101608486031215611726576117256113bf565b5b60006117348682870161155d565b935050610120611746868287016114d4565b9250506101406117588682870161150a565b9150509250925092565b600080600080600080600060e0888a031215611781576117806113bf565b5b600061178f8a828b016114d4565b97505060206117a08a828b016114d4565b96505060406117b18a828b0161149e565b95505060606117c28a828b0161150a565b94505060806117d38a828b01611548565b93505060a06117e48a828b0161150a565b92505060c06117f58a828b0161150a565b91505092959891949750929550565b61180d816114b3565b82525050565b60006020820190506118286000830184611804565b92915050565b60008060408385031215611845576118446113bf565b5b60006118538582860161150a565b92505060206118648582860161150a565b9150509250929050565b600060208284031215611884576118836113bf565b5b6000611892848285016114d4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600481106118db576118da61189b565b5b50565b60008190506118ec826118ca565b919050565b60006118fc826118de565b9050919050565b61190c816118f1565b82525050565b60006020820190506119276000830184611903565b92915050565b60006101208284031215611944576119436113bf565b5b60006119528482850161155d565b91505092915050565b61196481611475565b82525050565b611973816114b3565b82525050565b611982816114e9565b82525050565b6119918161151f565b82525050565b610120820160008201516119ae600085018261195b565b5060208201516119c1602085018261195b565b5060408201516119d4604085018261196a565b5060608201516119e7606085018261196a565b5060808201516119fa6080850182611979565b5060a0820151611a0d60a0850182611979565b5060c0820151611a2060c0850182611988565b5060e0820151611a3360e0850182611979565b50610100820151611a48610100850182611979565b50505050565b600061012082019050611a646000830184611997565b92915050565b600082825260208201905092915050565b7f7377617020697320616c726561647920636f6d706c6574656400000000000000600082015250565b6000611ab1601983611a6a565b9150611abc82611a7b565b602082019050919050565b60006020820190508181036000830152611ae081611aa4565b9050919050565b7f726566756e64206d7573742062652063616c6c6564206279207468652073776160008201527f70206f776e657200000000000000000000000000000000000000000000000000602082015250565b6000611b43602783611a6a565b9150611b4e82611ae7565b604082019050919050565b60006020820190508181036000830152611b7281611b36565b9050919050565b7f697427732074686520636f756e74657270617274792773207475726e2c20756e60008201527f61626c6520746f20726566756e642c2074727920616761696e206c6174657200602082015250565b6000611bd5603f83611a6a565b9150611be082611b79565b604082019050919050565b60006020820190508181036000830152611c0481611bc8565b9050919050565b6000819050919050565b6000611c30611c2b611c2684611455565b611c0b565b611455565b9050919050565b6000611c4282611c15565b9050919050565b6000611c5482611c37565b9050919050565b611c6481611c49565b82525050565b611c73816114e9565b82525050565b6000604082019050611c8e6000830185611c5b565b611c9b6020830184611c6a565b9392505050565b611cab816116d6565b8114611cb657600080fd5b50565b600081519050611cc881611ca2565b92915050565b600060208284031215611ce457611ce36113bf565b5b6000611cf284828501611cb9565b91505092915050565b7f636c61696d52656c617965722063616e206f6e6c792062652063616c6c65642060008201527f62792061207472757374656420666f7277617264657200000000000000000000602082015250565b6000611d57603683611a6a565b9150611d6282611cfb565b604082019050919050565b60006020820190508181036000830152611d8681611d4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611dc7826114e9565b9150611dd2836114e9565b9250828203905081811115611dea57611de9611d8d565b5b92915050565b6000604082019050611e05600083018561167f565b611e126020830184611c6a565b9392505050565b6000611e24826114e9565b9150611e2f836114e9565b9250828201905080821115611e4757611e46611d8d565b5b92915050565b6000611e58826114e9565b9150611e63836114e9565b9250828202611e71816114e9565b91508282048414831517611e8857611e87611d8d565b5b5092915050565b7f76616c7565206e6f742073616d652061732045544820616d6f756e742073656e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000611eeb602183611a6a565b9150611ef682611e8f565b604082019050919050565b60006020820190508181036000830152611f1a81611ede565b9050919050565b6000606082019050611f36600083018661167f565b611f43602083018561167f565b611f506040830184611c6a565b949350505050565b7f7377617020616c72656164792065786973747300000000000000000000000000600082015250565b6000611f8e601383611a6a565b9150611f9982611f58565b602082019050919050565b60006020820190508181036000830152611fbd81611f81565b9050919050565b600060e082019050611fd9600083018a611804565b611fe66020830189611804565b611ff36040830188611804565b6120006060830187611c6a565b61200d6080830186611c6a565b61201a60a083018561167f565b61202760c0830184611c6a565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000819050919050565b60008160001b9050919050565b600061209461208f61208a84612062565b61206c565b6114b3565b9050919050565b6120a481612079565b82525050565b6000819050919050565b600060ff82169050919050565b60006120dc6120d76120d2846120aa565b611c0b565b6120b4565b9050919050565b6120ec816120c1565b82525050565b6000608082019050612107600083018761209b565b61211460208301866120e3565b6121216040830185611804565b61212e6060830184611804565b95945050505050565b7f73776170206973206e6f7420696e2050454e44494e4720737461746500000000600082015250565b600061216d601c83611a6a565b915061217882612137565b602082019050919050565b6000602082019050818103600083015261219c81612160565b9050919050565b7f6f6e6c79207468652073776170206f776e65722063616e2063616c6c2073657460008201527f5265616479000000000000000000000000000000000000000000000000000000602082015250565b60006121ff602583611a6a565b915061220a826121a3565b604082019050919050565b6000602082019050818103600083015261222e816121f2565b9050919050565b7f70726f76696465642073656372657420646f6573206e6f74206d61746368207460008201527f6865206578706563746564207075626c6963206b657900000000000000000000602082015250565b6000612291603683611a6a565b915061229c82612235565b604082019050919050565b600060208201905081810360008301526122c081612284565b9050919050565b7f696e76616c696420737761700000000000000000000000000000000000000000600082015250565b60006122fd600c83611a6a565b9150612308826122c7565b602082019050919050565b6000602082019050818103600083015261232c816122f0565b9050919050565b7f6f6e6c7920636c61696d65722063616e20636c61696d21000000000000000000600082015250565b6000612369601783611a6a565b915061237482612333565b602082019050919050565b600060208201905081810360008301526123988161235c565b9050919050565b7f746f6f206561726c7920746f20636c61696d2100000000000000000000000000600082015250565b60006123d5601383611a6a565b91506123e08261239f565b602082019050919050565b60006020820190508181036000830152612404816123c8565b9050919050565b7f746f6f206c61746520746f20636c61696d210000000000000000000000000000600082015250565b6000612441601283611a6a565b915061244c8261240b565b602082019050919050565b6000602082019050818103600083015261247081612434565b905091905056fea264697066735822122019240c091a23740c83164aadcef96c315e7cdf7571cb2d58c6bedaec05e7560864736f6c63430008110033" //nolint:lll + expectedSwapFactoryBytecodeHex = "6080604052600436106100865760003560e01c806373e4771c1161005957806373e4771c14610145578063aa0f87251461016e578063b32d1b4f1461019e578063eb84e7f2146101db578063fcaf229c1461021857610086565b80631e6c5acc1461008b57806356c022bb146100b4578063572b6c05146100df5780635cb969161461011c575b600080fd5b34801561009757600080fd5b506100b260048036038101906100ad91906116b6565b610241565b005b3480156100c057600080fd5b506100c96105b4565b6040516100d69190611707565b60405180910390f35b3480156100eb57600080fd5b5061010660048036038101906101019190611722565b6105d8565b604051610113919061176a565b60405180910390f35b34801561012857600080fd5b50610143600480360381019061013e91906116b6565b610630565b005b34801561015157600080fd5b5061016c60048036038101906101679190611785565b610756565b005b610188600480360381019061018391906117db565b610a1e565b604051610195919061188c565b60405180910390f35b3480156101aa57600080fd5b506101c560048036038101906101c091906118a7565b610d8b565b6040516101d2919061176a565b60405180910390f35b3480156101e757600080fd5b5061020260048036038101906101fd91906118e7565b610e90565b60405161020f919061198b565b60405180910390f35b34801561022457600080fd5b5061023f600480360381019061023a91906119a6565b610eb0565b005b6000826040516020016102549190611ac7565b604051602081830303815290604052805190602001209050600080600083815260200190815260200160002060009054906101000a900460ff1690506003808111156102a3576102a2611914565b5b8160038111156102b6576102b5611914565b5b141580156102e95750600060038111156102d3576102d2611914565b5b8160038111156102e6576102e5611914565b5b14155b610328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031f90611b40565b60405180910390fd5b836000015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461039a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039190611bd2565b60405180910390fd5b8360a00151421015806103e157508360800151421080156103e05750600260038111156103ca576103c9611914565b5b8160038111156103dd576103dc611914565b5b14155b5b610420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041790611c64565b60405180910390fd5b61042e83856060015161103f565b82827e7c875846b687732a7579c19bb1dade66cd14e9f4f809565e2b2b5e76c72b4f60405160405180910390a3600360008084815260200190815260200160002060006101000a81548160ff0219169083600381111561049157610490611914565b5b0217905550600073ffffffffffffffffffffffffffffffffffffffff168460c0015173ffffffffffffffffffffffffffffffffffffffff160361052257836000015173ffffffffffffffffffffffffffffffffffffffff166108fc8560e001519081150290604051600060405180830381858888f1935050505015801561051c573d6000803e3d6000fd5b506105ae565b8360c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85600001518660e001516040518363ffffffff1660e01b8152600401610569929190611cf2565b6020604051808303816000875af1158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611d47565b505b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61063a8282611092565b600073ffffffffffffffffffffffffffffffffffffffff168260c0015173ffffffffffffffffffffffffffffffffffffffff16036106c657816020015173ffffffffffffffffffffffffffffffffffffffff166108fc8360e001519081150290604051600060405180830381858888f193505050501580156106c0573d6000803e3d6000fd5b50610752565b8160c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83602001518460e001516040518363ffffffff1660e01b815260040161070d929190611cf2565b6020604051808303816000875af115801561072c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107509190611d47565b505b5050565b61075f336105d8565b61079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590611de6565b60405180910390fd5b826020015173ffffffffffffffffffffffffffffffffffffffff166107c1611360565b73ffffffffffffffffffffffffffffffffffffffff1614610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e90611e78565b60405180910390fd5b6108218383611092565b600073ffffffffffffffffffffffffffffffffffffffff168360c0015173ffffffffffffffffffffffffffffffffffffffff16036108ff57826020015173ffffffffffffffffffffffffffffffffffffffff166108fc828560e001516108879190611ec7565b9081150290604051600060405180830381858888f193505050501580156108b2573d6000803e3d6000fd5b503273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156108f9573d6000803e3d6000fd5b50610a19565b8260c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8460200151838660e001516109349190611ec7565b6040518363ffffffff1660e01b8152600401610951929190611cf2565b6020604051808303816000875af1158015610970573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109949190611d47565b508260c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb32836040518363ffffffff1660e01b81526004016109d4929190611efb565b6020604051808303816000875af11580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a179190611d47565b505b505050565b6000610a2861139a565b33816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050888160400181815250508781606001818152505086816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508542610ab89190611f24565b816080018181525050600286610ace9190611f58565b42610ad99190611f24565b8160a0018181525050848160c0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160e0018181525050600073ffffffffffffffffffffffffffffffffffffffff168160c0015173ffffffffffffffffffffffffffffffffffffffff1603610ba757348160e0015114610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b999061200c565b60405180910390fd5b610c31565b8060c0015173ffffffffffffffffffffffffffffffffffffffff166323b872dd33308460e001516040518463ffffffff1660e01b8152600401610bec9392919061202c565b6020604051808303816000875af1158015610c0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2f9190611d47565b505b8281610100018181525050600081604051602001610c4f9190611ac7565b60405160208183030381529060405280519060200120905060006003811115610c7b57610c7a611914565b5b60008083815260200190815260200160002060009054906101000a900460ff166003811115610cad57610cac611914565b5b14610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce4906120af565b60405180910390fd5b7f91446ce035ac29998b5473504609a5ef5e961005daba4630a1684b63be848f56818b8b85608001518660a001518760c001518860e00151604051610d3897969594939291906120cf565b60405180910390a1600160008083815260200190815260200160002060006101000a81548160ff02191690836003811115610d7657610d75611914565b5b02179055508092505050979650505050505050565b60008060016000601b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860001b7ffffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036414180610de757610de661213e565b5b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798890960001b60405160008152602001604052604051610e2a94939291906121fd565b6020604051602081039080840390855afa158015610e4c573d6000803e3d6000fd5b5050506020604051035190508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161491505092915050565b60006020528060005260406000206000915054906101000a900460ff1681565b600081604051602001610ec39190611ac7565b60405160208183030381529060405280519060200120905060016003811115610eef57610eee611914565b5b60008083815260200190815260200160002060009054906101000a900460ff166003811115610f2157610f20611914565b5b14610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f589061228e565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614610fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fca90612320565b60405180910390fd5b600260008083815260200190815260200160002060006101000a81548160ff0219169083600381111561100957611008611914565b5b0217905550807f5fc23b25552757626e08b316cc2387ad1bc70ee1594af7204db4ce0c39f5d15f60405160405180910390a25050565b61104f8260001c8260001c610d8b565b61108e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611085906123b2565b60405180910390fd5b5050565b6000826040516020016110a59190611ac7565b604051602081830303815290604052805190602001209050600080600083815260200190815260200160002060009054906101000a900460ff169050600060038111156110f5576110f4611914565b5b81600381111561110857611107611914565b5b03611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f9061241e565b60405180910390fd5b60038081111561115b5761115a611914565b5b81600381111561116e5761116d611914565b5b036111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a590611b40565b60405180910390fd5b836020015173ffffffffffffffffffffffffffffffffffffffff166111d1611360565b73ffffffffffffffffffffffffffffffffffffffff1614611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e9061248a565b60405180910390fd5b83608001514210158061125e57506002600381111561124957611248611914565b5b81600381111561125c5761125b611914565b5b145b61129d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611294906124f6565b60405180910390fd5b8360a0015142106112e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112da90612562565b60405180910390fd5b6112f183856040015161103f565b82827f38d6042dbdae8e73a7f6afbabd3fbe0873f9f5ed3cd71294591c3908c2e65fee60405160405180910390a3600360008084815260200190815260200160002060006101000a81548160ff0219169083600381111561135557611354611914565b5b021790555050505050565b600061136b336105d8565b1561137f57601436033560601c905061138e565b611387611392565b905061138f565b5b90565b600033905090565b604051806101200160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008019168152602001600080191681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61148b82611442565b810181811067ffffffffffffffff821117156114aa576114a9611453565b5b80604052505050565b60006114bd61142e565b90506114c98282611482565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006114f9826114ce565b9050919050565b611509816114ee565b811461151457600080fd5b50565b60008135905061152681611500565b92915050565b6000819050919050565b61153f8161152c565b811461154a57600080fd5b50565b60008135905061155c81611536565b92915050565b6000819050919050565b61157581611562565b811461158057600080fd5b50565b6000813590506115928161156c565b92915050565b60006115a3826114ce565b9050919050565b6115b381611598565b81146115be57600080fd5b50565b6000813590506115d0816115aa565b92915050565b600061012082840312156115ed576115ec61143d565b5b6115f86101206114b3565b9050600061160884828501611517565b600083015250602061161c84828501611517565b60208301525060406116308482850161154d565b60408301525060606116448482850161154d565b606083015250608061165884828501611583565b60808301525060a061166c84828501611583565b60a08301525060c0611680848285016115c1565b60c08301525060e061169484828501611583565b60e0830152506101006116a984828501611583565b6101008301525092915050565b60008061014083850312156116ce576116cd611438565b5b60006116dc858286016115d6565b9250506101206116ee8582860161154d565b9150509250929050565b61170181611598565b82525050565b600060208201905061171c60008301846116f8565b92915050565b60006020828403121561173857611737611438565b5b6000611746848285016115c1565b91505092915050565b60008115159050919050565b6117648161174f565b82525050565b600060208201905061177f600083018461175b565b92915050565b6000806000610160848603121561179f5761179e611438565b5b60006117ad868287016115d6565b9350506101206117bf8682870161154d565b9250506101406117d186828701611583565b9150509250925092565b600080600080600080600060e0888a0312156117fa576117f9611438565b5b60006118088a828b0161154d565b97505060206118198a828b0161154d565b965050604061182a8a828b01611517565b955050606061183b8a828b01611583565b945050608061184c8a828b016115c1565b93505060a061185d8a828b01611583565b92505060c061186e8a828b01611583565b91505092959891949750929550565b6118868161152c565b82525050565b60006020820190506118a1600083018461187d565b92915050565b600080604083850312156118be576118bd611438565b5b60006118cc85828601611583565b92505060206118dd85828601611583565b9150509250929050565b6000602082840312156118fd576118fc611438565b5b600061190b8482850161154d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811061195457611953611914565b5b50565b600081905061196582611943565b919050565b600061197582611957565b9050919050565b6119858161196a565b82525050565b60006020820190506119a0600083018461197c565b92915050565b600061012082840312156119bd576119bc611438565b5b60006119cb848285016115d6565b91505092915050565b6119dd816114ee565b82525050565b6119ec8161152c565b82525050565b6119fb81611562565b82525050565b611a0a81611598565b82525050565b61012082016000820151611a2760008501826119d4565b506020820151611a3a60208501826119d4565b506040820151611a4d60408501826119e3565b506060820151611a6060608501826119e3565b506080820151611a7360808501826119f2565b5060a0820151611a8660a08501826119f2565b5060c0820151611a9960c0850182611a01565b5060e0820151611aac60e08501826119f2565b50610100820151611ac16101008501826119f2565b50505050565b600061012082019050611add6000830184611a10565b92915050565b600082825260208201905092915050565b7f7377617020697320616c726561647920636f6d706c6574656400000000000000600082015250565b6000611b2a601983611ae3565b9150611b3582611af4565b602082019050919050565b60006020820190508181036000830152611b5981611b1d565b9050919050565b7f726566756e64206d7573742062652063616c6c6564206279207468652073776160008201527f70206f776e657200000000000000000000000000000000000000000000000000602082015250565b6000611bbc602783611ae3565b9150611bc782611b60565b604082019050919050565b60006020820190508181036000830152611beb81611baf565b9050919050565b7f697427732074686520636f756e74657270617274792773207475726e2c20756e60008201527f61626c6520746f20726566756e642c2074727920616761696e206c6174657200602082015250565b6000611c4e603f83611ae3565b9150611c5982611bf2565b604082019050919050565b60006020820190508181036000830152611c7d81611c41565b9050919050565b6000819050919050565b6000611ca9611ca4611c9f846114ce565b611c84565b6114ce565b9050919050565b6000611cbb82611c8e565b9050919050565b6000611ccd82611cb0565b9050919050565b611cdd81611cc2565b82525050565b611cec81611562565b82525050565b6000604082019050611d076000830185611cd4565b611d146020830184611ce3565b9392505050565b611d248161174f565b8114611d2f57600080fd5b50565b600081519050611d4181611d1b565b92915050565b600060208284031215611d5d57611d5c611438565b5b6000611d6b84828501611d32565b91505092915050565b7f636c61696d52656c617965722063616e206f6e6c792062652063616c6c65642060008201527f62792061207472757374656420666f7277617264657200000000000000000000602082015250565b6000611dd0603683611ae3565b9150611ddb82611d74565b604082019050919050565b60006020820190508181036000830152611dff81611dc3565b9050919050565b7f7369676e6572206f66207468652072656c61796564207472616e73616374696f60008201527f6e206d7573742062652074686520636c61696d65720000000000000000000000602082015250565b6000611e62603583611ae3565b9150611e6d82611e06565b604082019050919050565b60006020820190508181036000830152611e9181611e55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ed282611562565b9150611edd83611562565b9250828203905081811115611ef557611ef4611e98565b5b92915050565b6000604082019050611f1060008301856116f8565b611f1d6020830184611ce3565b9392505050565b6000611f2f82611562565b9150611f3a83611562565b9250828201905080821115611f5257611f51611e98565b5b92915050565b6000611f6382611562565b9150611f6e83611562565b9250828202611f7c81611562565b91508282048414831517611f9357611f92611e98565b5b5092915050565b7f76616c7565206e6f742073616d652061732045544820616d6f756e742073656e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ff6602183611ae3565b915061200182611f9a565b604082019050919050565b6000602082019050818103600083015261202581611fe9565b9050919050565b600060608201905061204160008301866116f8565b61204e60208301856116f8565b61205b6040830184611ce3565b949350505050565b7f7377617020616c72656164792065786973747300000000000000000000000000600082015250565b6000612099601383611ae3565b91506120a482612063565b602082019050919050565b600060208201905081810360008301526120c88161208c565b9050919050565b600060e0820190506120e4600083018a61187d565b6120f1602083018961187d565b6120fe604083018861187d565b61210b6060830187611ce3565b6121186080830186611ce3565b61212560a08301856116f8565b61213260c0830184611ce3565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000819050919050565b60008160001b9050919050565b600061219f61219a6121958461216d565b612177565b61152c565b9050919050565b6121af81612184565b82525050565b6000819050919050565b600060ff82169050919050565b60006121e76121e26121dd846121b5565b611c84565b6121bf565b9050919050565b6121f7816121cc565b82525050565b600060808201905061221260008301876121a6565b61221f60208301866121ee565b61222c604083018561187d565b612239606083018461187d565b95945050505050565b7f73776170206973206e6f7420696e2050454e44494e4720737461746500000000600082015250565b6000612278601c83611ae3565b915061228382612242565b602082019050919050565b600060208201905081810360008301526122a78161226b565b9050919050565b7f6f6e6c79207468652073776170206f776e65722063616e2063616c6c2073657460008201527f5265616479000000000000000000000000000000000000000000000000000000602082015250565b600061230a602583611ae3565b9150612315826122ae565b604082019050919050565b60006020820190508181036000830152612339816122fd565b9050919050565b7f70726f76696465642073656372657420646f6573206e6f74206d61746368207460008201527f6865206578706563746564207075626c6963206b657900000000000000000000602082015250565b600061239c603683611ae3565b91506123a782612340565b604082019050919050565b600060208201905081810360008301526123cb8161238f565b9050919050565b7f696e76616c696420737761700000000000000000000000000000000000000000600082015250565b6000612408600c83611ae3565b9150612413826123d2565b602082019050919050565b60006020820190508181036000830152612437816123fb565b9050919050565b7f6f6e6c7920636c61696d65722063616e20636c61696d21000000000000000000600082015250565b6000612474601783611ae3565b915061247f8261243e565b602082019050919050565b600060208201905081810360008301526124a381612467565b9050919050565b7f746f6f206561726c7920746f20636c61696d2100000000000000000000000000600082015250565b60006124e0601383611ae3565b91506124eb826124aa565b602082019050919050565b6000602082019050818103600083015261250f816124d3565b9050919050565b7f746f6f206c61746520746f20636c61696d210000000000000000000000000000600082015250565b600061254c601283611ae3565b915061255782612516565b602082019050919050565b6000602082019050818103600083015261257b8161253f565b905091905056fea26469706673582212209d77be380f8e6408e8767202953c81445476da2a726047f25389c18196869afd64736f6c63430008110033" //nolint:lll ethAddrByteLen = len(ethcommon.Address{}) // 20 bytes ) diff --git a/ethereum/contracts/SwapFactory.sol b/ethereum/contracts/SwapFactory.sol index 19f8f5f4..038b2e8a 100644 --- a/ethereum/contracts/SwapFactory.sol +++ b/ethereum/contracts/SwapFactory.sol @@ -143,6 +143,12 @@ contract SwapFactory is ERC2771Context, Secp256k1 { isTrustedForwarder(msg.sender), "claimRelayer can only be called by a trusted forwarder" ); + + require( + _msgSender() == _swap.claimer, + "signer of the relayed transaction must be the claimer" + ); + _claim(_swap, _s); // send ether to swap claimant, subtracting the relayer fee diff --git a/ethereum/swap_factory.go b/ethereum/swap_factory.go index 4dfb02b7..70cc87c4 100644 --- a/ethereum/swap_factory.go +++ b/ethereum/swap_factory.go @@ -44,7 +44,7 @@ type SwapFactorySwap struct { // SwapFactoryMetaData contains all meta data concerning the SwapFactory contract. var SwapFactoryMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"trustedForwarder\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"swapID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"swapID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"refundKey\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeout1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"New\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"swapID\",\"type\":\"bytes32\"}],\"name\":\"Ready\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"swapID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"Refunded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_trustedForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"addresspayable\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"pubKeyClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pubKeyRefund\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timeout0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeout1\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"internalType\":\"structSwapFactory.Swap\",\"name\":\"_swap\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"addresspayable\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"pubKeyClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pubKeyRefund\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timeout0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeout1\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"internalType\":\"structSwapFactory.Swap\",\"name\":\"_swap\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"claimRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"isTrustedForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"scalar\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"qKeccak\",\"type\":\"uint256\"}],\"name\":\"mulVerify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_pubKeyClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_pubKeyRefund\",\"type\":\"bytes32\"},{\"internalType\":\"addresspayable\",\"name\":\"_claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_timeoutDuration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"newSwap\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"addresspayable\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"pubKeyClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pubKeyRefund\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timeout0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeout1\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"internalType\":\"structSwapFactory.Swap\",\"name\":\"_swap\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"addresspayable\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"pubKeyClaim\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pubKeyRefund\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timeout0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeout1\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"internalType\":\"structSwapFactory.Swap\",\"name\":\"_swap\",\"type\":\"tuple\"}],\"name\":\"setReady\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"swaps\",\"outputs\":[{\"internalType\":\"enumSwapFactory.Stage\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60a06040523480156200001157600080fd5b50604051620025e0380380620025e08339818101604052810190620000379190620000de565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050505062000110565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000a68262000079565b9050919050565b620000b88162000099565b8114620000c457600080fd5b50565b600081519050620000d881620000ad565b92915050565b600060208284031215620000f757620000f662000074565b5b60006200010784828501620000c7565b91505092915050565b6080516124ad62000133600039600081816105b601526105dc01526124ad6000f3fe6080604052600436106100865760003560e01c806373e4771c1161005957806373e4771c14610145578063aa0f87251461016e578063b32d1b4f1461019e578063eb84e7f2146101db578063fcaf229c1461021857610086565b80631e6c5acc1461008b57806356c022bb146100b4578063572b6c05146100df5780635cb969161461011c575b600080fd5b34801561009757600080fd5b506100b260048036038101906100ad919061163d565b610241565b005b3480156100c057600080fd5b506100c96105b4565b6040516100d6919061168e565b60405180910390f35b3480156100eb57600080fd5b50610106600480360381019061010191906116a9565b6105d8565b60405161011391906116f1565b60405180910390f35b34801561012857600080fd5b50610143600480360381019061013e919061163d565b610630565b005b34801561015157600080fd5b5061016c6004803603810190610167919061170c565b610756565b005b61018860048036038101906101839190611762565b6109a5565b6040516101959190611813565b60405180910390f35b3480156101aa57600080fd5b506101c560048036038101906101c0919061182e565b610d12565b6040516101d291906116f1565b60405180910390f35b3480156101e757600080fd5b5061020260048036038101906101fd919061186e565b610e17565b60405161020f9190611912565b60405180910390f35b34801561022457600080fd5b5061023f600480360381019061023a919061192d565b610e37565b005b6000826040516020016102549190611a4e565b604051602081830303815290604052805190602001209050600080600083815260200190815260200160002060009054906101000a900460ff1690506003808111156102a3576102a261189b565b5b8160038111156102b6576102b561189b565b5b141580156102e95750600060038111156102d3576102d261189b565b5b8160038111156102e6576102e561189b565b5b14155b610328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031f90611ac7565b60405180910390fd5b836000015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461039a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039190611b59565b60405180910390fd5b8360a00151421015806103e157508360800151421080156103e05750600260038111156103ca576103c961189b565b5b8160038111156103dd576103dc61189b565b5b14155b5b610420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041790611beb565b60405180910390fd5b61042e838560600151610fc6565b82827e7c875846b687732a7579c19bb1dade66cd14e9f4f809565e2b2b5e76c72b4f60405160405180910390a3600360008084815260200190815260200160002060006101000a81548160ff021916908360038111156104915761049061189b565b5b0217905550600073ffffffffffffffffffffffffffffffffffffffff168460c0015173ffffffffffffffffffffffffffffffffffffffff160361052257836000015173ffffffffffffffffffffffffffffffffffffffff166108fc8560e001519081150290604051600060405180830381858888f1935050505015801561051c573d6000803e3d6000fd5b506105ae565b8360c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85600001518660e001516040518363ffffffff1660e01b8152600401610569929190611c79565b6020604051808303816000875af1158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611cce565b505b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61063a8282611019565b600073ffffffffffffffffffffffffffffffffffffffff168260c0015173ffffffffffffffffffffffffffffffffffffffff16036106c657816020015173ffffffffffffffffffffffffffffffffffffffff166108fc8360e001519081150290604051600060405180830381858888f193505050501580156106c0573d6000803e3d6000fd5b50610752565b8160c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83602001518460e001516040518363ffffffff1660e01b815260040161070d929190611c79565b6020604051808303816000875af115801561072c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107509190611cce565b505b5050565b61075f336105d8565b61079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590611d6d565b60405180910390fd5b6107a88383611019565b600073ffffffffffffffffffffffffffffffffffffffff168360c0015173ffffffffffffffffffffffffffffffffffffffff160361088657826020015173ffffffffffffffffffffffffffffffffffffffff166108fc828560e0015161080e9190611dbc565b9081150290604051600060405180830381858888f19350505050158015610839573d6000803e3d6000fd5b503273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610880573d6000803e3d6000fd5b506109a0565b8260c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8460200151838660e001516108bb9190611dbc565b6040518363ffffffff1660e01b81526004016108d8929190611c79565b6020604051808303816000875af11580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190611cce565b508260c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb32836040518363ffffffff1660e01b815260040161095b929190611df0565b6020604051808303816000875af115801561097a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e9190611cce565b505b505050565b60006109af611321565b33816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050888160400181815250508781606001818152505086816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508542610a3f9190611e19565b816080018181525050600286610a559190611e4d565b42610a609190611e19565b8160a0018181525050848160c0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160e0018181525050600073ffffffffffffffffffffffffffffffffffffffff168160c0015173ffffffffffffffffffffffffffffffffffffffff1603610b2e57348160e0015114610b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2090611f01565b60405180910390fd5b610bb8565b8060c0015173ffffffffffffffffffffffffffffffffffffffff166323b872dd33308460e001516040518463ffffffff1660e01b8152600401610b7393929190611f21565b6020604051808303816000875af1158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb69190611cce565b505b8281610100018181525050600081604051602001610bd69190611a4e565b60405160208183030381529060405280519060200120905060006003811115610c0257610c0161189b565b5b60008083815260200190815260200160002060009054906101000a900460ff166003811115610c3457610c3361189b565b5b14610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90611fa4565b60405180910390fd5b7f91446ce035ac29998b5473504609a5ef5e961005daba4630a1684b63be848f56818b8b85608001518660a001518760c001518860e00151604051610cbf9796959493929190611fc4565b60405180910390a1600160008083815260200190815260200160002060006101000a81548160ff02191690836003811115610cfd57610cfc61189b565b5b02179055508092505050979650505050505050565b60008060016000601b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860001b7ffffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036414180610d6e57610d6d612033565b5b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798890960001b60405160008152602001604052604051610db194939291906120f2565b6020604051602081039080840390855afa158015610dd3573d6000803e3d6000fd5b5050506020604051035190508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161491505092915050565b60006020528060005260406000206000915054906101000a900460ff1681565b600081604051602001610e4a9190611a4e565b60405160208183030381529060405280519060200120905060016003811115610e7657610e7561189b565b5b60008083815260200190815260200160002060009054906101000a900460ff166003811115610ea857610ea761189b565b5b14610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90612183565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190612215565b60405180910390fd5b600260008083815260200190815260200160002060006101000a81548160ff02191690836003811115610f9057610f8f61189b565b5b0217905550807f5fc23b25552757626e08b316cc2387ad1bc70ee1594af7204db4ce0c39f5d15f60405160405180910390a25050565b610fd68260001c8260001c610d12565b611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c906122a7565b60405180910390fd5b5050565b60008260405160200161102c9190611a4e565b604051602081830303815290604052805190602001209050600080600083815260200190815260200160002060009054906101000a900460ff1690506000600381111561107c5761107b61189b565b5b81600381111561108f5761108e61189b565b5b036110cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c690612313565b60405180910390fd5b6003808111156110e2576110e161189b565b5b8160038111156110f5576110f461189b565b5b03611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c90611ac7565b60405180910390fd5b836020015173ffffffffffffffffffffffffffffffffffffffff166111586112e7565b73ffffffffffffffffffffffffffffffffffffffff16146111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a59061237f565b60405180910390fd5b8360800151421015806111e55750600260038111156111d0576111cf61189b565b5b8160038111156111e3576111e261189b565b5b145b611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b906123eb565b60405180910390fd5b8360a00151421061126a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126190612457565b60405180910390fd5b611278838560400151610fc6565b82827f38d6042dbdae8e73a7f6afbabd3fbe0873f9f5ed3cd71294591c3908c2e65fee60405160405180910390a3600360008084815260200190815260200160002060006101000a81548160ff021916908360038111156112dc576112db61189b565b5b021790555050505050565b60006112f2336105d8565b1561130657601436033560601c9050611315565b61130e611319565b9050611316565b5b90565b600033905090565b604051806101200160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008019168152602001600080191681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611412826113c9565b810181811067ffffffffffffffff82111715611431576114306113da565b5b80604052505050565b60006114446113b5565b90506114508282611409565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061148082611455565b9050919050565b61149081611475565b811461149b57600080fd5b50565b6000813590506114ad81611487565b92915050565b6000819050919050565b6114c6816114b3565b81146114d157600080fd5b50565b6000813590506114e3816114bd565b92915050565b6000819050919050565b6114fc816114e9565b811461150757600080fd5b50565b600081359050611519816114f3565b92915050565b600061152a82611455565b9050919050565b61153a8161151f565b811461154557600080fd5b50565b60008135905061155781611531565b92915050565b60006101208284031215611574576115736113c4565b5b61157f61012061143a565b9050600061158f8482850161149e565b60008301525060206115a38482850161149e565b60208301525060406115b7848285016114d4565b60408301525060606115cb848285016114d4565b60608301525060806115df8482850161150a565b60808301525060a06115f38482850161150a565b60a08301525060c061160784828501611548565b60c08301525060e061161b8482850161150a565b60e0830152506101006116308482850161150a565b6101008301525092915050565b6000806101408385031215611655576116546113bf565b5b60006116638582860161155d565b925050610120611675858286016114d4565b9150509250929050565b6116888161151f565b82525050565b60006020820190506116a3600083018461167f565b92915050565b6000602082840312156116bf576116be6113bf565b5b60006116cd84828501611548565b91505092915050565b60008115159050919050565b6116eb816116d6565b82525050565b600060208201905061170660008301846116e2565b92915050565b60008060006101608486031215611726576117256113bf565b5b60006117348682870161155d565b935050610120611746868287016114d4565b9250506101406117588682870161150a565b9150509250925092565b600080600080600080600060e0888a031215611781576117806113bf565b5b600061178f8a828b016114d4565b97505060206117a08a828b016114d4565b96505060406117b18a828b0161149e565b95505060606117c28a828b0161150a565b94505060806117d38a828b01611548565b93505060a06117e48a828b0161150a565b92505060c06117f58a828b0161150a565b91505092959891949750929550565b61180d816114b3565b82525050565b60006020820190506118286000830184611804565b92915050565b60008060408385031215611845576118446113bf565b5b60006118538582860161150a565b92505060206118648582860161150a565b9150509250929050565b600060208284031215611884576118836113bf565b5b6000611892848285016114d4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600481106118db576118da61189b565b5b50565b60008190506118ec826118ca565b919050565b60006118fc826118de565b9050919050565b61190c816118f1565b82525050565b60006020820190506119276000830184611903565b92915050565b60006101208284031215611944576119436113bf565b5b60006119528482850161155d565b91505092915050565b61196481611475565b82525050565b611973816114b3565b82525050565b611982816114e9565b82525050565b6119918161151f565b82525050565b610120820160008201516119ae600085018261195b565b5060208201516119c1602085018261195b565b5060408201516119d4604085018261196a565b5060608201516119e7606085018261196a565b5060808201516119fa6080850182611979565b5060a0820151611a0d60a0850182611979565b5060c0820151611a2060c0850182611988565b5060e0820151611a3360e0850182611979565b50610100820151611a48610100850182611979565b50505050565b600061012082019050611a646000830184611997565b92915050565b600082825260208201905092915050565b7f7377617020697320616c726561647920636f6d706c6574656400000000000000600082015250565b6000611ab1601983611a6a565b9150611abc82611a7b565b602082019050919050565b60006020820190508181036000830152611ae081611aa4565b9050919050565b7f726566756e64206d7573742062652063616c6c6564206279207468652073776160008201527f70206f776e657200000000000000000000000000000000000000000000000000602082015250565b6000611b43602783611a6a565b9150611b4e82611ae7565b604082019050919050565b60006020820190508181036000830152611b7281611b36565b9050919050565b7f697427732074686520636f756e74657270617274792773207475726e2c20756e60008201527f61626c6520746f20726566756e642c2074727920616761696e206c6174657200602082015250565b6000611bd5603f83611a6a565b9150611be082611b79565b604082019050919050565b60006020820190508181036000830152611c0481611bc8565b9050919050565b6000819050919050565b6000611c30611c2b611c2684611455565b611c0b565b611455565b9050919050565b6000611c4282611c15565b9050919050565b6000611c5482611c37565b9050919050565b611c6481611c49565b82525050565b611c73816114e9565b82525050565b6000604082019050611c8e6000830185611c5b565b611c9b6020830184611c6a565b9392505050565b611cab816116d6565b8114611cb657600080fd5b50565b600081519050611cc881611ca2565b92915050565b600060208284031215611ce457611ce36113bf565b5b6000611cf284828501611cb9565b91505092915050565b7f636c61696d52656c617965722063616e206f6e6c792062652063616c6c65642060008201527f62792061207472757374656420666f7277617264657200000000000000000000602082015250565b6000611d57603683611a6a565b9150611d6282611cfb565b604082019050919050565b60006020820190508181036000830152611d8681611d4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611dc7826114e9565b9150611dd2836114e9565b9250828203905081811115611dea57611de9611d8d565b5b92915050565b6000604082019050611e05600083018561167f565b611e126020830184611c6a565b9392505050565b6000611e24826114e9565b9150611e2f836114e9565b9250828201905080821115611e4757611e46611d8d565b5b92915050565b6000611e58826114e9565b9150611e63836114e9565b9250828202611e71816114e9565b91508282048414831517611e8857611e87611d8d565b5b5092915050565b7f76616c7565206e6f742073616d652061732045544820616d6f756e742073656e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000611eeb602183611a6a565b9150611ef682611e8f565b604082019050919050565b60006020820190508181036000830152611f1a81611ede565b9050919050565b6000606082019050611f36600083018661167f565b611f43602083018561167f565b611f506040830184611c6a565b949350505050565b7f7377617020616c72656164792065786973747300000000000000000000000000600082015250565b6000611f8e601383611a6a565b9150611f9982611f58565b602082019050919050565b60006020820190508181036000830152611fbd81611f81565b9050919050565b600060e082019050611fd9600083018a611804565b611fe66020830189611804565b611ff36040830188611804565b6120006060830187611c6a565b61200d6080830186611c6a565b61201a60a083018561167f565b61202760c0830184611c6a565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000819050919050565b60008160001b9050919050565b600061209461208f61208a84612062565b61206c565b6114b3565b9050919050565b6120a481612079565b82525050565b6000819050919050565b600060ff82169050919050565b60006120dc6120d76120d2846120aa565b611c0b565b6120b4565b9050919050565b6120ec816120c1565b82525050565b6000608082019050612107600083018761209b565b61211460208301866120e3565b6121216040830185611804565b61212e6060830184611804565b95945050505050565b7f73776170206973206e6f7420696e2050454e44494e4720737461746500000000600082015250565b600061216d601c83611a6a565b915061217882612137565b602082019050919050565b6000602082019050818103600083015261219c81612160565b9050919050565b7f6f6e6c79207468652073776170206f776e65722063616e2063616c6c2073657460008201527f5265616479000000000000000000000000000000000000000000000000000000602082015250565b60006121ff602583611a6a565b915061220a826121a3565b604082019050919050565b6000602082019050818103600083015261222e816121f2565b9050919050565b7f70726f76696465642073656372657420646f6573206e6f74206d61746368207460008201527f6865206578706563746564207075626c6963206b657900000000000000000000602082015250565b6000612291603683611a6a565b915061229c82612235565b604082019050919050565b600060208201905081810360008301526122c081612284565b9050919050565b7f696e76616c696420737761700000000000000000000000000000000000000000600082015250565b60006122fd600c83611a6a565b9150612308826122c7565b602082019050919050565b6000602082019050818103600083015261232c816122f0565b9050919050565b7f6f6e6c7920636c61696d65722063616e20636c61696d21000000000000000000600082015250565b6000612369601783611a6a565b915061237482612333565b602082019050919050565b600060208201905081810360008301526123988161235c565b9050919050565b7f746f6f206561726c7920746f20636c61696d2100000000000000000000000000600082015250565b60006123d5601383611a6a565b91506123e08261239f565b602082019050919050565b60006020820190508181036000830152612404816123c8565b9050919050565b7f746f6f206c61746520746f20636c61696d210000000000000000000000000000600082015250565b6000612441601283611a6a565b915061244c8261240b565b602082019050919050565b6000602082019050818103600083015261247081612434565b905091905056fea264697066735822122019240c091a23740c83164aadcef96c315e7cdf7571cb2d58c6bedaec05e7560864736f6c63430008110033", + Bin: "0x60a06040523480156200001157600080fd5b50604051620026eb380380620026eb8339818101604052810190620000379190620000de565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050505062000110565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000a68262000079565b9050919050565b620000b88162000099565b8114620000c457600080fd5b50565b600081519050620000d881620000ad565b92915050565b600060208284031215620000f757620000f662000074565b5b60006200010784828501620000c7565b91505092915050565b6080516125b862000133600039600081816105b601526105dc01526125b86000f3fe6080604052600436106100865760003560e01c806373e4771c1161005957806373e4771c14610145578063aa0f87251461016e578063b32d1b4f1461019e578063eb84e7f2146101db578063fcaf229c1461021857610086565b80631e6c5acc1461008b57806356c022bb146100b4578063572b6c05146100df5780635cb969161461011c575b600080fd5b34801561009757600080fd5b506100b260048036038101906100ad91906116b6565b610241565b005b3480156100c057600080fd5b506100c96105b4565b6040516100d69190611707565b60405180910390f35b3480156100eb57600080fd5b5061010660048036038101906101019190611722565b6105d8565b604051610113919061176a565b60405180910390f35b34801561012857600080fd5b50610143600480360381019061013e91906116b6565b610630565b005b34801561015157600080fd5b5061016c60048036038101906101679190611785565b610756565b005b610188600480360381019061018391906117db565b610a1e565b604051610195919061188c565b60405180910390f35b3480156101aa57600080fd5b506101c560048036038101906101c091906118a7565b610d8b565b6040516101d2919061176a565b60405180910390f35b3480156101e757600080fd5b5061020260048036038101906101fd91906118e7565b610e90565b60405161020f919061198b565b60405180910390f35b34801561022457600080fd5b5061023f600480360381019061023a91906119a6565b610eb0565b005b6000826040516020016102549190611ac7565b604051602081830303815290604052805190602001209050600080600083815260200190815260200160002060009054906101000a900460ff1690506003808111156102a3576102a2611914565b5b8160038111156102b6576102b5611914565b5b141580156102e95750600060038111156102d3576102d2611914565b5b8160038111156102e6576102e5611914565b5b14155b610328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031f90611b40565b60405180910390fd5b836000015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461039a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039190611bd2565b60405180910390fd5b8360a00151421015806103e157508360800151421080156103e05750600260038111156103ca576103c9611914565b5b8160038111156103dd576103dc611914565b5b14155b5b610420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041790611c64565b60405180910390fd5b61042e83856060015161103f565b82827e7c875846b687732a7579c19bb1dade66cd14e9f4f809565e2b2b5e76c72b4f60405160405180910390a3600360008084815260200190815260200160002060006101000a81548160ff0219169083600381111561049157610490611914565b5b0217905550600073ffffffffffffffffffffffffffffffffffffffff168460c0015173ffffffffffffffffffffffffffffffffffffffff160361052257836000015173ffffffffffffffffffffffffffffffffffffffff166108fc8560e001519081150290604051600060405180830381858888f1935050505015801561051c573d6000803e3d6000fd5b506105ae565b8360c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85600001518660e001516040518363ffffffff1660e01b8152600401610569929190611cf2565b6020604051808303816000875af1158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611d47565b505b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61063a8282611092565b600073ffffffffffffffffffffffffffffffffffffffff168260c0015173ffffffffffffffffffffffffffffffffffffffff16036106c657816020015173ffffffffffffffffffffffffffffffffffffffff166108fc8360e001519081150290604051600060405180830381858888f193505050501580156106c0573d6000803e3d6000fd5b50610752565b8160c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83602001518460e001516040518363ffffffff1660e01b815260040161070d929190611cf2565b6020604051808303816000875af115801561072c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107509190611d47565b505b5050565b61075f336105d8565b61079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590611de6565b60405180910390fd5b826020015173ffffffffffffffffffffffffffffffffffffffff166107c1611360565b73ffffffffffffffffffffffffffffffffffffffff1614610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e90611e78565b60405180910390fd5b6108218383611092565b600073ffffffffffffffffffffffffffffffffffffffff168360c0015173ffffffffffffffffffffffffffffffffffffffff16036108ff57826020015173ffffffffffffffffffffffffffffffffffffffff166108fc828560e001516108879190611ec7565b9081150290604051600060405180830381858888f193505050501580156108b2573d6000803e3d6000fd5b503273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156108f9573d6000803e3d6000fd5b50610a19565b8260c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8460200151838660e001516109349190611ec7565b6040518363ffffffff1660e01b8152600401610951929190611cf2565b6020604051808303816000875af1158015610970573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109949190611d47565b508260c0015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb32836040518363ffffffff1660e01b81526004016109d4929190611efb565b6020604051808303816000875af11580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a179190611d47565b505b505050565b6000610a2861139a565b33816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050888160400181815250508781606001818152505086816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508542610ab89190611f24565b816080018181525050600286610ace9190611f58565b42610ad99190611f24565b8160a0018181525050848160c0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160e0018181525050600073ffffffffffffffffffffffffffffffffffffffff168160c0015173ffffffffffffffffffffffffffffffffffffffff1603610ba757348160e0015114610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b999061200c565b60405180910390fd5b610c31565b8060c0015173ffffffffffffffffffffffffffffffffffffffff166323b872dd33308460e001516040518463ffffffff1660e01b8152600401610bec9392919061202c565b6020604051808303816000875af1158015610c0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2f9190611d47565b505b8281610100018181525050600081604051602001610c4f9190611ac7565b60405160208183030381529060405280519060200120905060006003811115610c7b57610c7a611914565b5b60008083815260200190815260200160002060009054906101000a900460ff166003811115610cad57610cac611914565b5b14610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce4906120af565b60405180910390fd5b7f91446ce035ac29998b5473504609a5ef5e961005daba4630a1684b63be848f56818b8b85608001518660a001518760c001518860e00151604051610d3897969594939291906120cf565b60405180910390a1600160008083815260200190815260200160002060006101000a81548160ff02191690836003811115610d7657610d75611914565b5b02179055508092505050979650505050505050565b60008060016000601b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860001b7ffffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036414180610de757610de661213e565b5b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798890960001b60405160008152602001604052604051610e2a94939291906121fd565b6020604051602081039080840390855afa158015610e4c573d6000803e3d6000fd5b5050506020604051035190508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161491505092915050565b60006020528060005260406000206000915054906101000a900460ff1681565b600081604051602001610ec39190611ac7565b60405160208183030381529060405280519060200120905060016003811115610eef57610eee611914565b5b60008083815260200190815260200160002060009054906101000a900460ff166003811115610f2157610f20611914565b5b14610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f589061228e565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614610fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fca90612320565b60405180910390fd5b600260008083815260200190815260200160002060006101000a81548160ff0219169083600381111561100957611008611914565b5b0217905550807f5fc23b25552757626e08b316cc2387ad1bc70ee1594af7204db4ce0c39f5d15f60405160405180910390a25050565b61104f8260001c8260001c610d8b565b61108e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611085906123b2565b60405180910390fd5b5050565b6000826040516020016110a59190611ac7565b604051602081830303815290604052805190602001209050600080600083815260200190815260200160002060009054906101000a900460ff169050600060038111156110f5576110f4611914565b5b81600381111561110857611107611914565b5b03611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f9061241e565b60405180910390fd5b60038081111561115b5761115a611914565b5b81600381111561116e5761116d611914565b5b036111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a590611b40565b60405180910390fd5b836020015173ffffffffffffffffffffffffffffffffffffffff166111d1611360565b73ffffffffffffffffffffffffffffffffffffffff1614611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e9061248a565b60405180910390fd5b83608001514210158061125e57506002600381111561124957611248611914565b5b81600381111561125c5761125b611914565b5b145b61129d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611294906124f6565b60405180910390fd5b8360a0015142106112e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112da90612562565b60405180910390fd5b6112f183856040015161103f565b82827f38d6042dbdae8e73a7f6afbabd3fbe0873f9f5ed3cd71294591c3908c2e65fee60405160405180910390a3600360008084815260200190815260200160002060006101000a81548160ff0219169083600381111561135557611354611914565b5b021790555050505050565b600061136b336105d8565b1561137f57601436033560601c905061138e565b611387611392565b905061138f565b5b90565b600033905090565b604051806101200160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008019168152602001600080191681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61148b82611442565b810181811067ffffffffffffffff821117156114aa576114a9611453565b5b80604052505050565b60006114bd61142e565b90506114c98282611482565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006114f9826114ce565b9050919050565b611509816114ee565b811461151457600080fd5b50565b60008135905061152681611500565b92915050565b6000819050919050565b61153f8161152c565b811461154a57600080fd5b50565b60008135905061155c81611536565b92915050565b6000819050919050565b61157581611562565b811461158057600080fd5b50565b6000813590506115928161156c565b92915050565b60006115a3826114ce565b9050919050565b6115b381611598565b81146115be57600080fd5b50565b6000813590506115d0816115aa565b92915050565b600061012082840312156115ed576115ec61143d565b5b6115f86101206114b3565b9050600061160884828501611517565b600083015250602061161c84828501611517565b60208301525060406116308482850161154d565b60408301525060606116448482850161154d565b606083015250608061165884828501611583565b60808301525060a061166c84828501611583565b60a08301525060c0611680848285016115c1565b60c08301525060e061169484828501611583565b60e0830152506101006116a984828501611583565b6101008301525092915050565b60008061014083850312156116ce576116cd611438565b5b60006116dc858286016115d6565b9250506101206116ee8582860161154d565b9150509250929050565b61170181611598565b82525050565b600060208201905061171c60008301846116f8565b92915050565b60006020828403121561173857611737611438565b5b6000611746848285016115c1565b91505092915050565b60008115159050919050565b6117648161174f565b82525050565b600060208201905061177f600083018461175b565b92915050565b6000806000610160848603121561179f5761179e611438565b5b60006117ad868287016115d6565b9350506101206117bf8682870161154d565b9250506101406117d186828701611583565b9150509250925092565b600080600080600080600060e0888a0312156117fa576117f9611438565b5b60006118088a828b0161154d565b97505060206118198a828b0161154d565b965050604061182a8a828b01611517565b955050606061183b8a828b01611583565b945050608061184c8a828b016115c1565b93505060a061185d8a828b01611583565b92505060c061186e8a828b01611583565b91505092959891949750929550565b6118868161152c565b82525050565b60006020820190506118a1600083018461187d565b92915050565b600080604083850312156118be576118bd611438565b5b60006118cc85828601611583565b92505060206118dd85828601611583565b9150509250929050565b6000602082840312156118fd576118fc611438565b5b600061190b8482850161154d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811061195457611953611914565b5b50565b600081905061196582611943565b919050565b600061197582611957565b9050919050565b6119858161196a565b82525050565b60006020820190506119a0600083018461197c565b92915050565b600061012082840312156119bd576119bc611438565b5b60006119cb848285016115d6565b91505092915050565b6119dd816114ee565b82525050565b6119ec8161152c565b82525050565b6119fb81611562565b82525050565b611a0a81611598565b82525050565b61012082016000820151611a2760008501826119d4565b506020820151611a3a60208501826119d4565b506040820151611a4d60408501826119e3565b506060820151611a6060608501826119e3565b506080820151611a7360808501826119f2565b5060a0820151611a8660a08501826119f2565b5060c0820151611a9960c0850182611a01565b5060e0820151611aac60e08501826119f2565b50610100820151611ac16101008501826119f2565b50505050565b600061012082019050611add6000830184611a10565b92915050565b600082825260208201905092915050565b7f7377617020697320616c726561647920636f6d706c6574656400000000000000600082015250565b6000611b2a601983611ae3565b9150611b3582611af4565b602082019050919050565b60006020820190508181036000830152611b5981611b1d565b9050919050565b7f726566756e64206d7573742062652063616c6c6564206279207468652073776160008201527f70206f776e657200000000000000000000000000000000000000000000000000602082015250565b6000611bbc602783611ae3565b9150611bc782611b60565b604082019050919050565b60006020820190508181036000830152611beb81611baf565b9050919050565b7f697427732074686520636f756e74657270617274792773207475726e2c20756e60008201527f61626c6520746f20726566756e642c2074727920616761696e206c6174657200602082015250565b6000611c4e603f83611ae3565b9150611c5982611bf2565b604082019050919050565b60006020820190508181036000830152611c7d81611c41565b9050919050565b6000819050919050565b6000611ca9611ca4611c9f846114ce565b611c84565b6114ce565b9050919050565b6000611cbb82611c8e565b9050919050565b6000611ccd82611cb0565b9050919050565b611cdd81611cc2565b82525050565b611cec81611562565b82525050565b6000604082019050611d076000830185611cd4565b611d146020830184611ce3565b9392505050565b611d248161174f565b8114611d2f57600080fd5b50565b600081519050611d4181611d1b565b92915050565b600060208284031215611d5d57611d5c611438565b5b6000611d6b84828501611d32565b91505092915050565b7f636c61696d52656c617965722063616e206f6e6c792062652063616c6c65642060008201527f62792061207472757374656420666f7277617264657200000000000000000000602082015250565b6000611dd0603683611ae3565b9150611ddb82611d74565b604082019050919050565b60006020820190508181036000830152611dff81611dc3565b9050919050565b7f7369676e6572206f66207468652072656c61796564207472616e73616374696f60008201527f6e206d7573742062652074686520636c61696d65720000000000000000000000602082015250565b6000611e62603583611ae3565b9150611e6d82611e06565b604082019050919050565b60006020820190508181036000830152611e9181611e55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ed282611562565b9150611edd83611562565b9250828203905081811115611ef557611ef4611e98565b5b92915050565b6000604082019050611f1060008301856116f8565b611f1d6020830184611ce3565b9392505050565b6000611f2f82611562565b9150611f3a83611562565b9250828201905080821115611f5257611f51611e98565b5b92915050565b6000611f6382611562565b9150611f6e83611562565b9250828202611f7c81611562565b91508282048414831517611f9357611f92611e98565b5b5092915050565b7f76616c7565206e6f742073616d652061732045544820616d6f756e742073656e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ff6602183611ae3565b915061200182611f9a565b604082019050919050565b6000602082019050818103600083015261202581611fe9565b9050919050565b600060608201905061204160008301866116f8565b61204e60208301856116f8565b61205b6040830184611ce3565b949350505050565b7f7377617020616c72656164792065786973747300000000000000000000000000600082015250565b6000612099601383611ae3565b91506120a482612063565b602082019050919050565b600060208201905081810360008301526120c88161208c565b9050919050565b600060e0820190506120e4600083018a61187d565b6120f1602083018961187d565b6120fe604083018861187d565b61210b6060830187611ce3565b6121186080830186611ce3565b61212560a08301856116f8565b61213260c0830184611ce3565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000819050919050565b60008160001b9050919050565b600061219f61219a6121958461216d565b612177565b61152c565b9050919050565b6121af81612184565b82525050565b6000819050919050565b600060ff82169050919050565b60006121e76121e26121dd846121b5565b611c84565b6121bf565b9050919050565b6121f7816121cc565b82525050565b600060808201905061221260008301876121a6565b61221f60208301866121ee565b61222c604083018561187d565b612239606083018461187d565b95945050505050565b7f73776170206973206e6f7420696e2050454e44494e4720737461746500000000600082015250565b6000612278601c83611ae3565b915061228382612242565b602082019050919050565b600060208201905081810360008301526122a78161226b565b9050919050565b7f6f6e6c79207468652073776170206f776e65722063616e2063616c6c2073657460008201527f5265616479000000000000000000000000000000000000000000000000000000602082015250565b600061230a602583611ae3565b9150612315826122ae565b604082019050919050565b60006020820190508181036000830152612339816122fd565b9050919050565b7f70726f76696465642073656372657420646f6573206e6f74206d61746368207460008201527f6865206578706563746564207075626c6963206b657900000000000000000000602082015250565b600061239c603683611ae3565b91506123a782612340565b604082019050919050565b600060208201905081810360008301526123cb8161238f565b9050919050565b7f696e76616c696420737761700000000000000000000000000000000000000000600082015250565b6000612408600c83611ae3565b9150612413826123d2565b602082019050919050565b60006020820190508181036000830152612437816123fb565b9050919050565b7f6f6e6c7920636c61696d65722063616e20636c61696d21000000000000000000600082015250565b6000612474601783611ae3565b915061247f8261243e565b602082019050919050565b600060208201905081810360008301526124a381612467565b9050919050565b7f746f6f206561726c7920746f20636c61696d2100000000000000000000000000600082015250565b60006124e0601383611ae3565b91506124eb826124aa565b602082019050919050565b6000602082019050818103600083015261250f816124d3565b9050919050565b7f746f6f206c61746520746f20636c61696d210000000000000000000000000000600082015250565b600061254c601283611ae3565b915061255782612516565b602082019050919050565b6000602082019050818103600083015261257b8161253f565b905091905056fea26469706673582212209d77be380f8e6408e8767202953c81445476da2a726047f25389c18196869afd64736f6c63430008110033", } // SwapFactoryABI is the input ABI used to generate the binding from.