diff --git a/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go b/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go index 50f6473d43..1142cf1824 100644 --- a/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go +++ b/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go @@ -32,7 +32,7 @@ var ( // ConstantSupplyERC20MetaData contains all meta data concerning the ConstantSupplyERC20 contract. var ConstantSupplyERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801562000010575f80fd5b5060405162000c3038038062000c3083398101604081905262000033916200029d565b8282600362000043838262000397565b50600462000052828262000397565b5050506200006733826200007060201b60201c565b50505062000485565b6001600160a01b0382166200009f5760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b620000ac5f8383620000b0565b5050565b6001600160a01b038316620000de578060025f828254620000d291906200045f565b90915550620001509050565b6001600160a01b0383165f9081526020819052604090205481811015620001325760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640162000096565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166200016e576002805482900390556200018c565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001d291815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000203575f80fd5b81516001600160401b0380821115620002205762000220620001df565b604051601f8301601f19908116603f011681019082821181831017156200024b576200024b620001df565b8160405283815260209250868385880101111562000267575f80fd5b5f91505b838210156200028a57858201830151818301840152908201906200026b565b5f93810190920192909252949350505050565b5f805f60608486031215620002b0575f80fd5b83516001600160401b0380821115620002c7575f80fd5b620002d587838801620001f3565b94506020860151915080821115620002eb575f80fd5b50620002fa86828701620001f3565b925050604084015190509250925092565b600181811c908216806200032057607f821691505b6020821081036200033f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000392575f81815260208120601f850160051c810160208610156200036d5750805b601f850160051c820191505b818110156200038e5782815560010162000379565b5050505b505050565b81516001600160401b03811115620003b357620003b3620001df565b620003cb81620003c484546200030b565b8462000345565b602080601f83116001811462000401575f8415620003e95750858301515b5f19600386901b1c1916600185901b1785556200038e565b5f85815260208120601f198616915b82811015620004315788860151825594840194600190910190840162000410565b50858210156200044f57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200047f57634e487b7160e01b5f52601160045260245ffd5b92915050565b61079d80620004935f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063313ce5671161007257806395d89b411161005857806395d89b4114610140578063a9059cbb14610148578063dd62ed3e1461015b575f80fd5b8063313ce5671461010957806370a0823114610118575f80fd5b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100e457806323b872dd146100f6575b5f80fd5b6100ab610193565b6040516100b891906105f8565b60405180910390f35b6100d46100cf36600461065e565b610223565b60405190151581526020016100b8565b6002545b6040519081526020016100b8565b6100d4610104366004610686565b61023c565b604051601281526020016100b8565b6100e86101263660046106bf565b6001600160a01b03165f9081526020819052604090205490565b6100ab61025f565b6100d461015636600461065e565b61026e565b6100e86101693660046106df565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101a290610710565b80601f01602080910402602001604051908101604052809291908181526020018280546101ce90610710565b80156102195780601f106101f057610100808354040283529160200191610219565b820191905f5260205f20905b8154815290600101906020018083116101fc57829003601f168201915b5050505050905090565b5f3361023081858561027b565b60019150505b92915050565b5f3361024985828561028d565b610254858585610326565b506001949350505050565b6060600480546101a290610710565b5f33610230818585610326565b61028883838360016103b5565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f1981146103205781811015610312576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61032084848484035f6103b5565b50505050565b6001600160a01b038316610368576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610309565b6001600160a01b0382166103aa576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610309565b6102888383836104b9565b6001600160a01b0384166103f7576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610309565b6001600160a01b038316610439576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610309565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561032057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104ab91815260200190565b60405180910390a350505050565b6001600160a01b0383166104e3578060025f8282546104d89190610748565b9091555061056c9050565b6001600160a01b0383165f908152602081905260409020548181101561054e576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024810182905260448101839052606401610309565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610588576002805482900390556105a6565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105eb91815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b8181101561062357858101830151858201604001528201610607565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610659575f80fd5b919050565b5f806040838503121561066f575f80fd5b61067883610643565b946020939093013593505050565b5f805f60608486031215610698575f80fd5b6106a184610643565b92506106af60208501610643565b9150604084013590509250925092565b5f602082840312156106cf575f80fd5b6106d882610643565b9392505050565b5f80604083850312156106f0575f80fd5b6106f983610643565b915061070760208401610643565b90509250929050565b600181811c9082168061072457607f821691505b60208210810361074257634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561023657634e487b7160e01b5f52601160045260245ffdfea2646970667358221220c2fead2f098c766cc98c4b17615ad00ab6cbb6c547c8bc6ac0ce17231eb3a9a364736f6c63430008140033", + Bin: "0x60806040523480156200001157600080fd5b5060405162000c7738038062000c778339810160408190526200003491620002ab565b82826003620000448382620003ad565b506004620000538282620003ad565b5050506200006833826200007160201b60201c565b505050620004a1565b6001600160a01b038216620000a15760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000af60008383620000b3565b5050565b6001600160a01b038316620000e2578060026000828254620000d6919062000479565b90915550620001569050565b6001600160a01b03831660009081526020819052604090205481811015620001375760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640162000098565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001745760028054829003905562000193565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001d991815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200020e57600080fd5b81516001600160401b03808211156200022b576200022b620001e6565b604051601f8301601f19908116603f01168101908282118183101715620002565762000256620001e6565b816040528381526020925086838588010111156200027357600080fd5b600091505b8382101562000297578582018301518183018401529082019062000278565b600093810190920192909252949350505050565b600080600060608486031215620002c157600080fd5b83516001600160401b0380821115620002d957600080fd5b620002e787838801620001fc565b94506020860151915080821115620002fe57600080fd5b506200030d86828701620001fc565b925050604084015190509250925092565b600181811c908216806200033357607f821691505b6020821081036200035457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003a857600081815260208120601f850160051c81016020861015620003835750805b601f850160051c820191505b81811015620003a4578281556001016200038f565b5050505b505050565b81516001600160401b03811115620003c957620003c9620001e6565b620003e181620003da84546200031e565b846200035a565b602080601f831160018114620004195760008415620004005750858301515b600019600386901b1c1916600185901b178555620003a4565b600085815260208120601f198616915b828110156200044a5788860151825594840194600190910190840162000429565b5085821015620004695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200049b57634e487b7160e01b600052601160045260246000fd5b92915050565b6107c680620004b16000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b4114610146578063a9059cbb1461014e578063dd62ed3e1461016157600080fd5b8063313ce5671461010e57806370a082311461011d57600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e957806323b872dd146100fb575b600080fd5b6100b061019a565b6040516100bd9190610610565b60405180910390f35b6100d96100d436600461067a565b61022c565b60405190151581526020016100bd565b6002545b6040519081526020016100bd565b6100d96101093660046106a4565b610246565b604051601281526020016100bd565b6100ed61012b3660046106e0565b6001600160a01b031660009081526020819052604090205490565b6100b061026a565b6100d961015c36600461067a565b610279565b6100ed61016f366004610702565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101a990610735565b80601f01602080910402602001604051908101604052809291908181526020018280546101d590610735565b80156102225780601f106101f757610100808354040283529160200191610222565b820191906000526020600020905b81548152906001019060200180831161020557829003601f168201915b5050505050905090565b60003361023a818585610287565b60019150505b92915050565b600033610254858285610299565b61025f858585610335565b506001949350505050565b6060600480546101a990610735565b60003361023a818585610335565b61029483838360016103c6565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461032f5781811015610320576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61032f848484840360006103c6565b50505050565b6001600160a01b038316610378576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610317565b6001600160a01b0382166103bb576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610317565b6102948383836104cd565b6001600160a01b038416610409576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401610317565b6001600160a01b03831661044c576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401610317565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561032f57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104bf91815260200190565b60405180910390a350505050565b6001600160a01b0383166104f85780600260008282546104ed919061076f565b909155506105839050565b6001600160a01b03831660009081526020819052604090205481811015610564576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024810182905260448101839052606401610317565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661059f576002805482900390556105be565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161060391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561063d57858101830151858201604001528201610621565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461067557600080fd5b919050565b6000806040838503121561068d57600080fd5b6106968361065e565b946020939093013593505050565b6000806000606084860312156106b957600080fd5b6106c28461065e565b92506106d06020850161065e565b9150604084013590509250925092565b6000602082840312156106f257600080fd5b6106fb8261065e565b9392505050565b6000806040838503121561071557600080fd5b61071e8361065e565b915061072c6020840161065e565b90509250929050565b600181811c9082168061074957607f821691505b60208210810361076957634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561024057634e487b7160e01b600052601160045260246000fdfea2646970667358221220dfee8b2508201459d014b985ef570589fb9fe2647a943251cbfaf253dc423e2764736f6c63430008140033", } // ConstantSupplyERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/CrossChainMessenger/CrossChainMessenger.go b/contracts/generated/CrossChainMessenger/CrossChainMessenger.go index 3c0786ca12..2a31ae18f6 100644 --- a/contracts/generated/CrossChainMessenger/CrossChainMessenger.go +++ b/contracts/generated/CrossChainMessenger/CrossChainMessenger.go @@ -42,7 +42,7 @@ type StructsCrossChainMessage struct { // CrossChainMessengerMetaData contains all meta data concerning the CrossChainMessenger contract. var CrossChainMessengerMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"error\",\"type\":\"bytes\"}],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"crossChainSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"encodeCall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messageBusAddr\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageBus\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b50610a438061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639b7cf1ee1161004d5780639b7cf1ee146100bc578063a1a227fa146100d1578063c4d66de8146100e1575f80fd5b80635b76f28b1461006857806363012de514610091575b5f80fd5b61007b610076366004610595565b6100f4565b604051610088919061065e565b60405180910390f35b6001546100a4906001600160a01b031681565b6040516001600160a01b039091168152602001610088565b6100cf6100ca366004610677565b610173565b005b5f546001600160a01b03166100a4565b6100cf6100ef3660046106ae565b61029e565b60606040518060600160405280856001600160a01b0316815260200184848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093855250505060209182015260405161015b9291016106c7565b60405160208183030381529060405290509392505050565b61017c81610403565b61018960208201826106ae565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555f6101c4608083018361070b565b8101906101d191906107dc565b90505f80825f01516001600160a01b03165a84602001516040516101f591906108a8565b5f604051808303815f8787f1925050503d805f811461022f576040519150601f19603f3d011682016040523d82523d5f602084013e610234565b606091505b50915091508161027b57806040517fa5fa8d2b000000000000000000000000000000000000000000000000000000008152600401610272919061065e565b60405180910390fd5b50506001805473ffffffffffffffffffffffffffffffffffffffff191690555050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156102e85750825b90505f8267ffffffffffffffff1660011480156103045750303b155b905081158015610312575080155b15610349576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561037d57845468ff00000000000000001916680100000000000000001785555b5f80546001600160a01b03881673ffffffffffffffffffffffffffffffffffffffff199182161790915560018054909116905583156103fb57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f546040517f33a88c720000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906333a88c729061044b90849060040161090e565b602060405180830381865afa158015610466573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048a91906109ee565b6104d65760405162461bcd60e51b815260206004820152601f60248201527f4d657373616765206e6f7420666f756e64206f722066696e616c697a65642e006044820152606401610272565b5f816040516020016104e8919061090e565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff161561055f5760405162461bcd60e51b815260206004820152601960248201527f4d65737361676520616c726561647920636f6e73756d65642e000000000000006044820152606401610272565b5f908152600260205260409020805460ff1916600117905550565b80356001600160a01b0381168114610590575f80fd5b919050565b5f805f604084860312156105a7575f80fd5b6105b08461057a565b9250602084013567ffffffffffffffff808211156105cc575f80fd5b818601915086601f8301126105df575f80fd5b8135818111156105ed575f80fd5b8760208285010111156105fe575f80fd5b6020830194508093505050509250925092565b5f5b8381101561062b578181015183820152602001610613565b50505f910152565b5f815180845261064a816020860160208601610611565b601f01601f19169290920160200192915050565b602081525f6106706020830184610633565b9392505050565b5f60208284031215610687575f80fd5b813567ffffffffffffffff81111561069d575f80fd5b820160c08185031215610670575f80fd5b5f602082840312156106be575f80fd5b6106708261057a565b602081526001600160a01b0382511660208201525f6020830151606060408401526106f56080840182610633565b9050604084015160608401528091505092915050565b5f808335601e19843603018112610720575f80fd5b83018035915067ffffffffffffffff82111561073a575f80fd5b60200191503681900382131561074e575f80fd5b9250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156107a5576107a5610755565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156107d4576107d4610755565b604052919050565b5f60208083850312156107ed575f80fd5b823567ffffffffffffffff80821115610804575f80fd5b9084019060608287031215610817575f80fd5b61081f610782565b6108288361057a565b8152838301358281111561083a575f80fd5b8301601f8101881361084a575f80fd5b80358381111561085c5761085c610755565b61086e601f8201601f191687016107ab565b93508084528886828401011115610883575f80fd5b80868301878601375f9084018601525092830152604090810135908201529392505050565b5f82516108b9818460208701610611565b9190910192915050565b803563ffffffff81168114610590575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b803560ff81168114610590575f80fd5b602081526001600160a01b036109238361057a565b1660208201525f602083013567ffffffffffffffff808216808314610946575f80fd5b80604086015250610959604086016108c3565b915063ffffffff808316606086015280610975606088016108c3565b1660808601525060808501359150601e19853603018212610994575f80fd5b60209185019182019135818111156109aa575f80fd5b8036038313156109b8575f80fd5b60c060a08601526109cd60e0860182856108d6565b925050506109dd60a085016108fe565b60ff811660c0850152509392505050565b5f602082840312156109fe575f80fd5b81518015158114610670575f80fdfea26469706673582212207866e94e178cdd6434f7587649cf64f2e4539464826cdd49ba12f78e331b4c6764736f6c63430008140033", + Bin: "0x608060405234801561001057600080fd5b50610a86806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80639b7cf1ee116100505780639b7cf1ee146100c0578063a1a227fa146100d5578063c4d66de8146100e657600080fd5b80635b76f28b1461006c57806363012de514610095575b600080fd5b61007f61007a3660046105ac565b6100f9565b60405161008c919061067f565b60405180910390f35b6001546100a8906001600160a01b031681565b6040516001600160a01b03909116815260200161008c565b6100d36100ce366004610699565b610179565b005b6000546001600160a01b03166100a8565b6100d36100f43660046106d4565b6102ab565b60606040518060600160405280856001600160a01b0316815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050506020918201526040516101619291016106ef565b60405160208183030381529060405290509392505050565b61018281610413565b61018f60208201826106d4565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905560006101cb6080830183610734565b8101906101d8919061080b565b905060008082600001516001600160a01b03165a84602001516040516101fe91906108df565b60006040518083038160008787f1925050503d806000811461023c576040519150601f19603f3d011682016040523d82523d6000602084013e610241565b606091505b50915091508161028857806040517fa5fa8d2b00000000000000000000000000000000000000000000000000000000815260040161027f919061067f565b60405180910390fd5b50506001805473ffffffffffffffffffffffffffffffffffffffff191690555050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156102f65750825b905060008267ffffffffffffffff1660011480156103135750303b155b905081158015610321575080155b15610358576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561038c57845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b03881673ffffffffffffffffffffffffffffffffffffffff1991821617909155600180549091169055831561040b57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b6000546040517f33a88c720000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906333a88c729061045c908490600401610949565b602060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190610a2e565b6104e95760405162461bcd60e51b815260206004820152601f60248201527f4d657373616765206e6f7420666f756e64206f722066696e616c697a65642e00604482015260640161027f565b6000816040516020016104fc9190610949565b60408051601f1981840301815291815281516020928301206000818152600290935291205490915060ff16156105745760405162461bcd60e51b815260206004820152601960248201527f4d65737361676520616c726561647920636f6e73756d65642e00000000000000604482015260640161027f565b6000908152600260205260409020805460ff1916600117905550565b80356001600160a01b03811681146105a757600080fd5b919050565b6000806000604084860312156105c157600080fd5b6105ca84610590565b9250602084013567ffffffffffffffff808211156105e757600080fd5b818601915086601f8301126105fb57600080fd5b81358181111561060a57600080fd5b87602082850101111561061c57600080fd5b6020830194508093505050509250925092565b60005b8381101561064a578181015183820152602001610632565b50506000910152565b6000815180845261066b81602086016020860161062f565b601f01601f19169290920160200192915050565b6020815260006106926020830184610653565b9392505050565b6000602082840312156106ab57600080fd5b813567ffffffffffffffff8111156106c257600080fd5b820160c0818503121561069257600080fd5b6000602082840312156106e657600080fd5b61069282610590565b602081526001600160a01b038251166020820152600060208301516060604084015261071e6080840182610653565b9050604084015160608401528091505092915050565b6000808335601e1984360301811261074b57600080fd5b83018035915067ffffffffffffffff82111561076657600080fd5b60200191503681900382131561077b57600080fd5b9250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156107d4576107d4610782565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561080357610803610782565b604052919050565b6000602080838503121561081e57600080fd5b823567ffffffffffffffff8082111561083657600080fd5b908401906060828703121561084a57600080fd5b6108526107b1565b61085b83610590565b8152838301358281111561086e57600080fd5b8301601f8101881361087f57600080fd5b80358381111561089157610891610782565b6108a3601f8201601f191687016107da565b935080845288868284010111156108b957600080fd5b808683018786013760009084018601525092830152604090810135908201529392505050565b600082516108f181846020870161062f565b9190910192915050565b803563ffffffff811681146105a757600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b803560ff811681146105a757600080fd5b602081526001600160a01b0361095e83610590565b1660208201526000602083013567ffffffffffffffff80821680831461098357600080fd5b80604086015250610996604086016108fb565b915063ffffffff8083166060860152806109b2606088016108fb565b1660808601525060808501359150601e198536030182126109d257600080fd5b60209185019182019135818111156109e957600080fd5b8036038313156109f857600080fd5b60c060a0860152610a0d60e08601828561090f565b92505050610a1d60a08501610938565b60ff811660c0850152509392505050565b600060208284031215610a4057600080fd5b8151801515811461069257600080fdfea26469706673582212205dc5b80e9d88b384254cf417ae26dc0174232223f8426bc65bd43cc898376cdd64736f6c63430008140033", } // CrossChainMessengerABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/EthereumBridge/EthereumBridge.go b/contracts/generated/EthereumBridge/EthereumBridge.go index c2b8843a6a..02feb4b1fa 100644 --- a/contracts/generated/EthereumBridge/EthereumBridge.go +++ b/contracts/generated/EthereumBridge/EthereumBridge.go @@ -32,7 +32,7 @@ var ( // EthereumBridgeMetaData contains all meta data concerning the EthereumBridge contract. var EthereumBridgeMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"remoteAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"localAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"CreatedWrappedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messengerAddress\",\"type\":\"address\"}],\"name\":\"configure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"hasTokenMapping\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messenger\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"remoteBridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"localToRemoteToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"crossChainAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"onCreateTokenCommand\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"receiveAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"remoteToLocalToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendNative\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"wrappedTokens\",\"outputs\":[{\"internalType\":\"contractWrappedERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60806040526001805463ffffffff60a01b1916905534801561001f575f80fd5b506125ca8061002d5f395ff3fe608060405260043610620000c5575f3560e01c806383bece4d11620000725780639e405b7111620000545780639e405b7114620002d3578063a381c8e2146200030b578063d5c6b504146200032f576200013e565b806383bece4d14620002615780639813c7b21462000285576200013e565b8063458ffd6311620000a8578063458ffd6314620001f5578063485cc955146200021957806375cb2672146200023d576200013e565b80628d48e314620001875780631888d71214620001dc576200013e565b366200013e5760405162461bcd60e51b815260206004820152602360248201527f436f6e747261637420646f6573206e6f7420737570706f72742072656365697660448201527f652829000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60405162461bcd60e51b815260206004820152601d60248201527f66616c6c6261636b2829206d6574686f6420756e737570706f72746564000000604482015260640162000135565b34801562000193575f80fd5b50620001bf620001a536600462000f49565b60046020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b620001f3620001ed36600462000f49565b62000367565b005b34801562000201575f80fd5b50620001f36200021336600462000fb6565b62000513565b34801562000225575f80fd5b50620001f3620002373660046200103c565b62000720565b34801562000249575f80fd5b50620001f36200025b36600462000f49565b6200088c565b3480156200026d575f80fd5b50620001f36200027f36600462001078565b62000969565b34801562000291575f80fd5b50620002c2620002a336600462000f49565b6001600160a01b039081165f9081526002602052604090205416151590565b6040519015158152602001620001d3565b348015620002df575f80fd5b50620001bf620002f136600462000f49565b60036020525f90815260409020546001600160a01b031681565b34801562000317575f80fd5b50620001f36200032936600462001078565b62000ba5565b3480156200033b575f80fd5b50620001bf6200034d36600462000f49565b60026020525f90815260409020546001600160a01b031681565b5f3411620003b85760405162461bcd60e51b815260206004820152600d60248201527f4e6f7468696e672073656e742e00000000000000000000000000000000000000604482015260640162000135565b5f805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b546001600160a01b0316620004395760405162461bcd60e51b815260206004820152601560248201527f4e6f206d617070696e6720666f7220746f6b656e2e0000000000000000000000604482015260640162000135565b5f80805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff546040516001600160a01b03918216602482015234604482015290831660648201526383bece4d60e01b9060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526005549091506200050f906001600160a01b0316825f5b5f8062000d2c565b5050565b6005545f546001600160a01b03918216911633146200059b5760405162461bcd60e51b815260206004820152603060248201527f436f6e74726163742063616c6c6572206973206e6f742074686520726567697360448201527f7465726564206d657373656e6765722100000000000000000000000000000000606482015260840162000135565b806001600160a01b0316620005af62000e3d565b6001600160a01b0316146200062d5760405162461bcd60e51b815260206004820152603160248201527f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2060448201527f696e636f72726563742073656e64657221000000000000000000000000000000606482015260840162000135565b5f85858585604051620006409062000f23565b6200064f9493929190620010e4565b604051809103905ff08015801562000669573d5f803e3d5ffd5b506001600160a01b038082165f818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081168617909155600383528184208054968f169682168717905594835260049091529081902080549093169091179091555190915081907f30c05779f384e0ae9d43bbf7ec4417f28bdc53d02a35551b6eb270a9c4c71dca906200070e908a9084908b908b908b908b9062001119565b60405180910390a15050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156200076b5750825b90505f8267ffffffffffffffff166001148015620007885750303b155b90508115801562000797575080155b15620007cf576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156200080457845468ff00000000000000001916680100000000000000001785555b6200080f876200088c565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03881617905583156200088357845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6200089662000eb9565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa15801562000913573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000939919062001169565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6005545f546001600160a01b0391821691163314620009f15760405162461bcd60e51b815260206004820152603060248201527f436f6e74726163742063616c6c6572206973206e6f742074686520726567697360448201527f7465726564206d657373656e6765722100000000000000000000000000000000606482015260840162000135565b806001600160a01b031662000a0562000e3d565b6001600160a01b03161462000a835760405162461bcd60e51b815260206004820152603160248201527f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2060448201527f696e636f72726563742073656e64657221000000000000000000000000000000606482015260840162000135565b6001600160a01b038085165f9081526004602090815260408083205484168084526002909252909120549091168062000b255760405162461bcd60e51b815260206004820152602b60248201527f526563656976696e672061737365747320666f7220756e6b6e6f776e2077726160448201527f7070656420746f6b656e21000000000000000000000000000000000000000000606482015260840162000135565b6040517f979005ad0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820187905282169063979005ad906044015f604051808303815f87803b15801562000b86575f80fd5b505af115801562000b99573d5f803e3d5ffd5b50505050505050505050565b6001600160a01b038084165f908152600260205260409020541662000c0d5760405162461bcd60e51b815260206004820152601560248201527f4e6f206d617070696e6720666f7220746f6b656e2e0000000000000000000000604482015260640162000135565b6001600160a01b038381165f90815260026020526040908190205490517f1dd319cb000000000000000000000000000000000000000000000000000000008152336004820152602481018590529116908190631dd319cb906044015f604051808303815f87803b15801562000c80575f80fd5b505af115801562000c93573d5f803e3d5ffd5b505050506001600160a01b038481165f90815260036020908152604080832054815190851660248201526044810188905286851660648083019190915282518083039091018152608490910190915290810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166383bece4d60e01b179052600554909262000d2592911690839062000507565b5050505050565b5f6040518060600160405280876001600160a01b031681526020018681526020018481525060405160200162000d639190620011cc565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff1690601462000db88362001212565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b815260040162000dfa94939291906200125a565b6020604051808303815f875af115801562000e17573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000883919062001298565b5f805f9054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000e8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000eb4919062001169565b905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1662000f21576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6112d380620012c283390190565b6001600160a01b038116811462000f46575f80fd5b50565b5f6020828403121562000f5a575f80fd5b813562000f678162000f31565b9392505050565b5f8083601f84011262000f7f575f80fd5b50813567ffffffffffffffff81111562000f97575f80fd5b60208301915083602082850101111562000faf575f80fd5b9250929050565b5f805f805f6060868803121562000fcb575f80fd5b853562000fd88162000f31565b9450602086013567ffffffffffffffff8082111562000ff5575f80fd5b6200100389838a0162000f6e565b909650945060408801359150808211156200101c575f80fd5b506200102b8882890162000f6e565b969995985093965092949392505050565b5f80604083850312156200104e575f80fd5b82356200105b8162000f31565b915060208301356200106d8162000f31565b809150509250929050565b5f805f606084860312156200108b575f80fd5b8335620010988162000f31565b9250602084013591506040840135620010b18162000f31565b809150509250925092565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b604081525f620010f9604083018688620010bc565b82810360208401526200110e818587620010bc565b979650505050505050565b5f6001600160a01b0380891683528088166020840152506080604083015262001147608083018688620010bc565b82810360608401526200115c818587620010bc565b9998505050505050505050565b5f602082840312156200117a575f80fd5b815162000f678162000f31565b5f81518084525f5b81811015620011ad576020818501810151868301820152016200118f565b505f602082860101526020601f19601f83011685010191505092915050565b602081526001600160a01b0382511660208201525f602083015160606040840152620011fc608084018262001187565b9050604084015160608401528091505092915050565b5f63ffffffff80831681810362001250577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6001019392505050565b5f63ffffffff80871683528086166020840152506080604083015262001284608083018562001187565b905060ff8316606083015295945050505050565b5f60208284031215620012a9575f80fd5b815167ffffffffffffffff8116811462000f67575f80fdfe6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f317905534801562000036575f80fd5b50604051620012d3380380620012d3833981016040819052620000599162000228565b8181818160036200006b83826200031a565b5060046200007a82826200031a565b5050505050620000b17fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000ba60201b60201c565b505050620003e2565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff1662000161575f8381526007602090815260408083206001600160a01b03861684529091529020805460ff19166001179055620001183390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000164565b505f5b92915050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200018e575f80fd5b81516001600160401b0380821115620001ab57620001ab6200016a565b604051601f8301601f19908116603f01168101908282118183101715620001d657620001d66200016a565b81604052838152602092508683858801011115620001f2575f80fd5b5f91505b83821015620002155785820183015181830184015290820190620001f6565b5f93810190920192909252949350505050565b5f80604083850312156200023a575f80fd5b82516001600160401b038082111562000251575f80fd5b6200025f868387016200017e565b9350602085015191508082111562000275575f80fd5b5062000284858286016200017e565b9150509250929050565b600181811c90821680620002a357607f821691505b602082108103620002c257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000315575f81815260208120601f850160051c81016020861015620002f05750805b601f850160051c820191505b818110156200031157828155600101620002fc565b5050505b505050565b81516001600160401b038111156200033657620003366200016a565b6200034e816200034784546200028e565b84620002c8565b602080601f83116001811462000384575f84156200036c5750858301515b5f19600386901b1c1916600185901b17855562000311565b5f85815260208120601f198616915b82811015620003b45788860151825594840194600190910190840162000393565b5085821015620003d257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b610ee380620003f05f395ff3fe608060405234801561000f575f80fd5b5060043610610149575f3560e01c806336568abe116100c7578063979005ad1161007d578063a9059cbb11610063578063a9059cbb146102c2578063d547741f146102d5578063dd62ed3e146102e8575f80fd5b8063979005ad146102a8578063a217fddf146102bb575f80fd5b806375b238fc116100ad57806375b238fc1461024157806391d148541461026857806395d89b41146102a0575f80fd5b806336568abe1461021b57806370a082311461022e575f80fd5b80631dd319cb1161011c578063248a9ca311610102578063248a9ca3146101d75780632f2ff15d146101f9578063313ce5671461020c575f80fd5b80631dd319cb146101af57806323b872dd146101c4575f80fd5b806301ffc9a71461014d57806306fdde0314610175578063095ea7b31461018a57806318160ddd1461019d575b5f80fd5b61016061015b366004610cc7565b6102fb565b60405190151581526020015b60405180910390f35b61017d610393565b60405161016c9190610d0d565b610160610198366004610d73565b610423565b6002545b60405190815260200161016c565b6101c26101bd366004610d73565b61043a565b005b6101606101d2366004610d9b565b6104d0565b6101a16101e5366004610dd4565b5f9081526007602052604090206001015490565b6101c2610207366004610deb565b6104f3565b6040516012815260200161016c565b6101c2610229366004610deb565b61051d565b6101a161023c366004610e15565b610569565b6101a17fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610160610276366004610deb565b5f9182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61017d61060c565b6101c26102b6366004610d73565b61061b565b6101a15f81565b6101606102d0366004610d73565b61064f565b6101c26102e3366004610deb565b61065c565b6101a16102f6366004610e2e565b610680565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061038d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103a290610e56565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce90610e56565b80156104195780601f106103f057610100808354040283529160200191610419565b820191905f5260205f20905b8154815290600101906020018083116103fc57829003601f168201915b5050505050905090565b5f3361043081858561078e565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756104648161079b565b8161046e84610569565b10156104c15760405162461bcd60e51b815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e000000000000000000000060448201526064015b60405180910390fd5b6104cb83836107a8565b505050565b5f336104dd8582856107e0565b6104e8858585610856565b506001949350505050565b5f8281526007602052604090206001015461050d8161079b565b61051783836108b3565b50505050565b6001600160a01b038116331461055f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104cb828261095e565b5f6001600160a01b0382163203610597576001600160a01b0382165f9081526020819052604090205461038d565b6001600160a01b03821633036105c4576001600160a01b0382165f9081526020819052604090205461038d565b60405162461bcd60e51b815260206004820152601f60248201527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650060448201526064016104b8565b6060600480546103a290610e56565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756106458161079b565b6104cb83836109e3565b5f33610430818585610856565b5f828152600760205260409020600101546106768161079b565b610517838361095e565b5f326001600160a01b03841614806106a05750326001600160a01b038316145b156106d2576001600160a01b038084165f908152600160209081526040808320938616835292905220545b905061038d565b336001600160a01b03841614806106f15750336001600160a01b038316145b15610720576001600160a01b038084165f908152600160209081526040808320938616835292905220546106cb565b60405162461bcd60e51b815260206004820152602160248201527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016104b8565b6104cb8383836001610a17565b6107a58133610b1b565b50565b6001600160a01b0382166107d157604051634b637e8f60e11b81525f60048201526024016104b8565b6107dc825f83610b88565b5050565b5f6107eb8484610680565b90505f1981146105175781811015610848576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016104b8565b61051784848484035f610a17565b6001600160a01b03831661087f57604051634b637e8f60e11b81525f60048201526024016104b8565b6001600160a01b0382166108a85760405163ec442f0560e01b81525f60048201526024016104b8565b6104cb838383610b88565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff16610957575f8381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561090f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161038d565b505f61038d565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff1615610957575f8381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161038d565b6001600160a01b038216610a0c5760405163ec442f0560e01b81525f60048201526024016104b8565b6107dc5f8383610b88565b6001600160a01b038416610a59576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016104b8565b6001600160a01b038316610a9b576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016104b8565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561051757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b0d91815260200190565b60405180910390a350505050565b5f8281526007602090815260408083206001600160a01b038516845290915290205460ff166107dc576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602481018390526044016104b8565b6001600160a01b038316610bb2578060025f828254610ba79190610e8e565b90915550610c3b9050565b6001600160a01b0383165f9081526020819052604090205481811015610c1d576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101829052604481018390526064016104b8565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610c5757600280548290039055610c75565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cba91815260200190565b60405180910390a3505050565b5f60208284031215610cd7575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d06575f80fd5b9392505050565b5f6020808352835180828501525f5b81811015610d3857858101830151858201604001528201610d1c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610d6e575f80fd5b919050565b5f8060408385031215610d84575f80fd5b610d8d83610d58565b946020939093013593505050565b5f805f60608486031215610dad575f80fd5b610db684610d58565b9250610dc460208501610d58565b9150604084013590509250925092565b5f60208284031215610de4575f80fd5b5035919050565b5f8060408385031215610dfc575f80fd5b82359150610e0c60208401610d58565b90509250929050565b5f60208284031215610e25575f80fd5b610d0682610d58565b5f8060408385031215610e3f575f80fd5b610e4883610d58565b9150610e0c60208401610d58565b600181811c90821680610e6a57607f821691505b602082108103610e8857634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561038d57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220d78cf2dd9ecf4da03679034ab54dbc38a0748a2a50f13ee501925e8df4738b1264736f6c63430008140033a2646970667358221220910ed4d806fc5d201f041052722e240d19224d7a3957d6d54e271e5fa89dde2664736f6c63430008140033", + Bin: "0x60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50612681806100306000396000f3fe608060405260043610620000c65760003560e01c806383bece4d11620000735780639e405b7111620000555780639e405b7114620002dc578063a381c8e21462000316578063d5c6b504146200033b576200013f565b806383bece4d14620002675780639813c7b2146200028c576200013f565b8063458ffd6311620000a9578063458ffd6314620001f8578063485cc955146200021d57806375cb26721462000242576200013f565b80628d48e314620001885780631888d71214620001df576200013f565b366200013f5760405162461bcd60e51b815260206004820152602360248201527f436f6e747261637420646f6573206e6f7420737570706f72742072656365697660448201527f652829000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60405162461bcd60e51b815260206004820152601d60248201527f66616c6c6261636b2829206d6574686f6420756e737570706f72746564000000604482015260640162000136565b3480156200019557600080fd5b50620001c2620001a736600462000f7f565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b620001f6620001f036600462000f7f565b62000375565b005b3480156200020557600080fd5b50620001f66200021736600462000ff2565b62000526565b3480156200022a57600080fd5b50620001f66200023c3660046200107e565b62000739565b3480156200024f57600080fd5b50620001f66200026136600462000f7f565b620008a7565b3480156200027457600080fd5b50620001f662000286366004620010bc565b62000987565b3480156200029957600080fd5b50620002cb620002ab36600462000f7f565b6001600160a01b0390811660009081526002602052604090205416151590565b6040519015158152602001620001d6565b348015620002e957600080fd5b50620001c2620002fb36600462000f7f565b6003602052600090815260409020546001600160a01b031681565b3480156200032357600080fd5b50620001f662000335366004620010bc565b62000bca565b3480156200034857600080fd5b50620001c26200035a36600462000f7f565b6002602052600090815260409020546001600160a01b031681565b60003411620003c75760405162461bcd60e51b815260206004820152600d60248201527f4e6f7468696e672073656e742e00000000000000000000000000000000000000604482015260640162000136565b6000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b546001600160a01b0316620004495760405162461bcd60e51b815260206004820152601560248201527f4e6f206d617070696e6720666f7220746f6b656e2e0000000000000000000000604482015260640162000136565b600080805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff546040516001600160a01b03918216602482015234604482015290831660648201526383bece4d60e01b9060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260055490915062000522906001600160a01b03168260005b60008062000d59565b5050565b6005546000546001600160a01b0391821691163314620005af5760405162461bcd60e51b815260206004820152603060248201527f436f6e74726163742063616c6c6572206973206e6f742074686520726567697360448201527f7465726564206d657373656e6765722100000000000000000000000000000000606482015260840162000136565b806001600160a01b0316620005c362000e6e565b6001600160a01b031614620006415760405162461bcd60e51b815260206004820152603160248201527f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2060448201527f696e636f72726563742073656e64657221000000000000000000000000000000606482015260840162000136565b600085858585604051620006559062000f58565b6200066494939291906200112c565b604051809103906000f08015801562000681573d6000803e3d6000fd5b506001600160a01b038082166000818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081168617909155600383528184208054968f169682168717905594835260049091529081902080549093169091179091555190915081907f30c05779f384e0ae9d43bbf7ec4417f28bdc53d02a35551b6eb270a9c4c71dca9062000727908a9084908b908b908b908b9062001162565b60405180910390a15050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015620007855750825b905060008267ffffffffffffffff166001148015620007a35750303b155b905081158015620007b2575080155b15620007ea576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156200081f57845468ff00000000000000001916680100000000000000001785555b6200082a87620008a7565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03881617905583156200089e57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b620008b162000eee565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa15801562000931573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009579190620011b3565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6005546000546001600160a01b039182169116331462000a105760405162461bcd60e51b815260206004820152603060248201527f436f6e74726163742063616c6c6572206973206e6f742074686520726567697360448201527f7465726564206d657373656e6765722100000000000000000000000000000000606482015260840162000136565b806001600160a01b031662000a2462000e6e565b6001600160a01b03161462000aa25760405162461bcd60e51b815260206004820152603160248201527f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2060448201527f696e636f72726563742073656e64657221000000000000000000000000000000606482015260840162000136565b6001600160a01b0380851660009081526004602090815260408083205484168084526002909252909120549091168062000b455760405162461bcd60e51b815260206004820152602b60248201527f526563656976696e672061737365747320666f7220756e6b6e6f776e2077726160448201527f7070656420746f6b656e21000000000000000000000000000000000000000000606482015260840162000136565b6040517f979005ad0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820187905282169063979005ad90604401600060405180830381600087803b15801562000ba957600080fd5b505af115801562000bbe573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b038084166000908152600260205260409020541662000c335760405162461bcd60e51b815260206004820152601560248201527f4e6f206d617070696e6720666f7220746f6b656e2e0000000000000000000000604482015260640162000136565b6001600160a01b03838116600090815260026020526040908190205490517f1dd319cb000000000000000000000000000000000000000000000000000000008152336004820152602481018590529116908190631dd319cb90604401600060405180830381600087803b15801562000caa57600080fd5b505af115801562000cbf573d6000803e3d6000fd5b505050506001600160a01b03848116600090815260036020908152604080832054815190851660248201526044810188905286851660648083019190915282518083039091018152608490910190915290810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166383bece4d60e01b179052600554909262000d5292911690839062000519565b5050505050565b60006040518060600160405280876001600160a01b031681526020018681526020018481525060405160200162000d9191906200121b565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff1690601462000de68362001262565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b815260040162000e289493929190620012ad565b6020604051808303816000875af115801562000e48573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200089e9190620012ec565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ec3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ee99190620011b3565b905090565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1662000f56576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611333806200131983390190565b6001600160a01b038116811462000f7c57600080fd5b50565b60006020828403121562000f9257600080fd5b813562000f9f8162000f66565b9392505050565b60008083601f84011262000fb957600080fd5b50813567ffffffffffffffff81111562000fd257600080fd5b60208301915083602082850101111562000feb57600080fd5b9250929050565b6000806000806000606086880312156200100b57600080fd5b8535620010188162000f66565b9450602086013567ffffffffffffffff808211156200103657600080fd5b6200104489838a0162000fa6565b909650945060408801359150808211156200105e57600080fd5b506200106d8882890162000fa6565b969995985093965092949392505050565b600080604083850312156200109257600080fd5b82356200109f8162000f66565b91506020830135620010b18162000f66565b809150509250929050565b600080600060608486031215620010d257600080fd5b8335620010df8162000f66565b9250602084013591506040840135620010f88162000f66565b809150509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6040815260006200114260408301868862001103565b82810360208401526200115781858762001103565b979650505050505050565b60006001600160a01b038089168352808816602084015250608060408301526200119160808301868862001103565b8281036060840152620011a681858762001103565b9998505050505050505050565b600060208284031215620011c657600080fd5b815162000f9f8162000f66565b6000815180845260005b81811015620011fb57602081850181015186830182015201620011dd565b506000602082860101526020601f19601f83011685010191505092915050565b602081526001600160a01b03825116602082015260006020830151606060408401526200124c6080840182620011d3565b9050604084015160608401528091505092915050565b600063ffffffff808316818103620012a3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001019392505050565b600063ffffffff808716835280861660208401525060806040830152620012d86080830185620011d3565b905060ff8316606083015295945050505050565b600060208284031215620012ff57600080fd5b815167ffffffffffffffff8116811462000f9f57600080fdfe6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162001333380380620013338339810160408190526200005a9162000233565b8181818160036200006c83826200032c565b5060046200007b82826200032c565b5050505050620000b27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000bb60201b60201c565b505050620003f8565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16620001645760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200011b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000168565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200019657600080fd5b81516001600160401b0380821115620001b357620001b36200016e565b604051601f8301601f19908116603f01168101908282118183101715620001de57620001de6200016e565b81604052838152602092508683858801011115620001fb57600080fd5b600091505b838210156200021f578582018301518183018401529082019062000200565b600093810190920192909252949350505050565b600080604083850312156200024757600080fd5b82516001600160401b03808211156200025f57600080fd5b6200026d8683870162000184565b935060208501519150808211156200028457600080fd5b50620002938582860162000184565b9150509250929050565b600181811c90821680620002b257607f821691505b602082108103620002d357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200032757600081815260208120601f850160051c81016020861015620003025750805b601f850160051c820191505b8181101562000323578281556001016200030e565b5050505b505050565b81516001600160401b038111156200034857620003486200016e565b62000360816200035984546200029d565b84620002d9565b602080601f8311600181146200039857600084156200037f5750858301515b600019600386901b1c1916600185901b17855562000323565b600085815260208120601f198616915b82811015620003c957888601518255948401946001909101908401620003a8565b5085821015620003e85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610f2b80620004086000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017e578063095ea7b31461019357806318160ddd146101a6575b600080fd5b610169610164366004610cf7565b610307565b60405190151581526020015b60405180910390f35b6101866103a0565b6040516101759190610d40565b6101696101a1366004610daa565b610432565b6002545b604051908152602001610175565b6101cb6101c6366004610daa565b61044a565b005b6101696101db366004610dd4565b6104e0565b6101aa6101ee366004610e10565b60009081526007602052604090206001015490565b6101cb610211366004610e29565b610504565b60405160128152602001610175565b6101cb610233366004610e29565b61052f565b6101aa610246366004610e55565b61057b565b6101aa7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610e29565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610186610621565b6101cb6102c1366004610daa565b610630565b6101aa600081565b6101696102dc366004610daa565b610664565b6101cb6102ef366004610e29565b610672565b6101aa610302366004610e70565b610697565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e9a565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e9a565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856107a8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610474816107b5565b8161047e8461057b565b10156104d15760405162461bcd60e51b815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e000000000000000000000060448201526064015b60405180910390fd5b6104db83836107c2565b505050565b6000336104ee8582856107fc565b6104f9858585610875565b506001949350505050565b60008281526007602052604090206001015461051f816107b5565b61052983836108d4565b50505050565b6001600160a01b0381163314610571576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104db8282610982565b60006001600160a01b03821632036105ab576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105d9576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260206004820152601f60248201527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650060448201526064016104c8565b6060600480546103af90610e9a565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561065a816107b5565b6104db8383610a09565b600033610440818585610875565b60008281526007602052604090206001015461068d816107b5565b6105298383610982565b6000326001600160a01b03841614806106b85750326001600160a01b038316145b156106eb576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b038416148061070a5750336001600160a01b038316145b1561073a576001600160a01b038084166000908152600160209081526040808320938616835292905220546106e4565b60405162461bcd60e51b815260206004820152602160248201527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016104c8565b6104db8383836001610a3f565b6107bf8133610b46565b50565b6001600160a01b0382166107ec57604051634b637e8f60e11b8152600060048201526024016104c8565b6107f882600083610bb4565b5050565b60006108088484610697565b905060001981146105295781811015610866576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016104c8565b61052984848484036000610a3f565b6001600160a01b03831661089f57604051634b637e8f60e11b8152600060048201526024016104c8565b6001600160a01b0382166108c95760405163ec442f0560e01b8152600060048201526024016104c8565b6104db838383610bb4565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff1661097a5760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556109323390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff161561097a5760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b038216610a335760405163ec442f0560e01b8152600060048201526024016104c8565b6107f860008383610bb4565b6001600160a01b038416610a82576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016104c8565b6001600160a01b038316610ac5576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016104c8565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561052957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b3891815260200190565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107f8576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602481018390526044016104c8565b6001600160a01b038316610bdf578060026000828254610bd49190610ed4565b90915550610c6a9050565b6001600160a01b03831660009081526020819052604090205481811015610c4b576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101829052604481018390526064016104c8565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610c8657600280548290039055610ca5565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cea91815260200190565b60405180910390a3505050565b600060208284031215610d0957600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d3957600080fd5b9392505050565b600060208083528351808285015260005b81811015610d6d57858101830151858201604001528201610d51565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610da557600080fd5b919050565b60008060408385031215610dbd57600080fd5b610dc683610d8e565b946020939093013593505050565b600080600060608486031215610de957600080fd5b610df284610d8e565b9250610e0060208501610d8e565b9150604084013590509250925092565b600060208284031215610e2257600080fd5b5035919050565b60008060408385031215610e3c57600080fd5b82359150610e4c60208401610d8e565b90509250929050565b600060208284031215610e6757600080fd5b610d3982610d8e565b60008060408385031215610e8357600080fd5b610e8c83610d8e565b9150610e4c60208401610d8e565b600181811c90821680610eae57607f821691505b602082108103610ece57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561039a57634e487b7160e01b600052601160045260246000fdfea264697066735822122073c661078daaaa94cd6d2de1a875ac8163912d81e7f2083db0bfdaf8c67f3fe564736f6c63430008140033a26469706673582212207bd666bd6e32772e6e7d7f5ba8d9e3d7f6521d01988f6698161bb364fc4f5ab964736f6c63430008140033", } // EthereumBridgeABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/GasConsumerBalance/GasConsumerBalance.go b/contracts/generated/GasConsumerBalance/GasConsumerBalance.go index c5cb17c595..2444b2e2fa 100644 --- a/contracts/generated/GasConsumerBalance/GasConsumerBalance.go +++ b/contracts/generated/GasConsumerBalance/GasConsumerBalance.go @@ -32,7 +32,7 @@ var ( // GasConsumerBalanceMetaData contains all meta data concerning the GasConsumerBalance contract. var GasConsumerBalanceMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"get_balance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b505f80546001600160a01b031916331790556101528061002e5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806383197ef0146100435780638da5cb5b1461004d578063c1cfb99a1461004b575b5f80fd5b61004b610095565b005b5f5461006c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b5f5473ffffffffffffffffffffffffffffffffffffffff163314610119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f596f7520617265206e6f7420746865206f776e65720000000000000000000000604482015260640160405180910390fd5b30fffea26469706673582212205bfc66da08320422cf69c718067c856e73af5dbc541b5ef740407b90ed8656a864736f6c63430008140033", + Bin: "0x608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610157806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806383197ef0146100465780638da5cb5b14610050578063c1cfb99a1461004e575b600080fd5b61004e610099565b005b6000546100709073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60005473ffffffffffffffffffffffffffffffffffffffff16331461011e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f596f7520617265206e6f7420746865206f776e65720000000000000000000000604482015260640160405180910390fd5b30fffea26469706673582212205d989c8df853591d61707dd349944634844c4a7cbbae383852bd046ba70f7ab464736f6c63430008140033", } // GasConsumerBalanceABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ManagementContract/ManagementContract.go b/contracts/generated/ManagementContract/ManagementContract.go index b34aff1de6..8cc256dcf3 100644 --- a/contracts/generated/ManagementContract/ManagementContract.go +++ b/contracts/generated/ManagementContract/ManagementContract.go @@ -54,7 +54,7 @@ type StructsMetaRollup struct { // ManagementContractMetaData contains all meta data concerning the ManagementContract contract. var ManagementContractMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"ImportantContractAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"messageBusAddress\",\"type\":\"address\"}],\"name\":\"LogManagementContractCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"AggregatorID\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"r\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"_rollupData\",\"type\":\"string\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"structStructs.HeaderCrossChainData\",\"name\":\"crossChainData\",\"type\":\"tuple\"}],\"name\":\"AddRollup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"Attested\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GetHostAddresses\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GetImportantContractKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"rollupHash\",\"type\":\"bytes32\"}],\"name\":\"GetRollupByHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"AggregatorID\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_aggregatorID\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initSecret\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_hostAddress\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_genesisAttestation\",\"type\":\"string\"}],\"name\":\"InitializeNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IsWithdrawalAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"requestReport\",\"type\":\"string\"}],\"name\":\"RequestNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"attesterID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterID\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"attesterSig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"responseSecret\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"hostAddress\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"verifyAttester\",\"type\":\"bool\"}],\"name\":\"RespondNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RetrieveAllBridgeFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"SetImportantContractAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"importantContractAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"importantContractKeys\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBatchSeqNo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageBus\",\"outputs\":[{\"internalType\":\"contractIMessageBus\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b50338061003557604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61003e81610044565b50610093565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b612bcd806100a05f395ff3fe608060405234801561000f575f80fd5b5060043610610149575f3560e01c80638129fc1c116100c7578063a1a227fa1161007d578063bbd79e1511610063578063bbd79e1514610351578063e34fbfc814610364578063f2fde38b14610377575f80fd5b8063a1a227fa1461032e578063a52f433c14610341575f80fd5b80638da5cb5b116100ad5780638da5cb5b146102eb5780638fa0d053146102fb57806398077e861461030e575f80fd5b80638129fc1c146102495780638236a7ba14610251575f80fd5b8063440c953b1161011c5780636a30d26c116101025780636a30d26c14610231578063715018a6146102395780637281099614610241575f80fd5b8063440c953b1461020757806359a900711461021e575f80fd5b806303e72e481461014d578063324ff866146101625780633e60a22f1461018057806343348b2f146101cc575b5f80fd5b61016061015b36600461123d565b61038a565b005b61016a610490565b60405161017791906112d9565b60405180910390f35b6101b461018e366004611339565b80516020818301810180516005825292820191909301209152546001600160a01b031681565b6040516001600160a01b039091168152602001610177565b6101f76101da366004611373565b6001600160a01b03165f9081526002602052604090205460ff1690565b6040519015158152602001610177565b61021060075481565b604051908152602001610177565b61016061022c3660046113da565b610564565b61016a6105e5565b6101606106b0565b6101606106c3565b61016061073e565b6102b861025f36600461147a565b60408051606080820183525f80835260208084018290529284018190528481526008835283902083519182018452805480835260018201546001600160a01b031693830193909352600201549281019290925290911491565b60408051921515835281516020808501919091528201516001600160a01b03168382015201516060820152608001610177565b5f546001600160a01b03166101b4565b610160610309366004611491565b6108f8565b61032161031c36600461147a565b61098a565b6040516101779190611511565b6009546101b4906001600160a01b031681565b600654610100900460ff166101f7565b61016061035f366004611523565b610a30565b6101606103723660046115e1565b610b89565b610160610385366004611373565b610ba7565b610392610bfd565b5f6001600160a01b03166005836040516103ac9190611620565b908152604051908190036020019020546001600160a01b03160361040757600480546001810182555f919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0161040583826116c0565b505b806005836040516104189190611620565b90815260405190819003602001812080546001600160a01b039390931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091557f17b2f9f5748931099ffee882b5b64f4a560b5c55da9b4f4e396dae3bb9f98cb590610484908490849061177c565b60405180910390a15050565b60606003805480602002602001604051908101604052809291908181526020015f905b8282101561055b578382905f5260205f200180546104d09061163b565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc9061163b565b80156105475780601f1061051e57610100808354040283529160200191610547565b820191905f5260205f20905b81548152906001019060200180831161052a57829003601f168201915b5050505050815260200190600101906104b3565b50505050905090565b60065460ff1615610573575f80fd5b60068054600160ff1991821681179092556001600160a01b0388165f9081526002602052604081208054909216831790915560038054928301815590527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b016105dc84826116c0565b50505050505050565b60606004805480602002602001604051908101604052809291908181526020015f905b8282101561055b578382905f5260205f200180546106259061163b565b80601f01602080910402602001604051908101604052809291908181526020018280546106519061163b565b801561069c5780601f106106735761010080835404028352916020019161069c565b820191905f5260205f20905b81548152906001019060200180831161067f57829003601f168201915b505050505081526020019060010190610608565b6106b8610bfd565b6106c15f610c42565b565b6106cb610bfd565b6009546040517f36d2da900000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03909116906336d2da90906024015f604051808303815f87803b158015610726575f80fd5b505af1158015610738573d5f803e3d5ffd5b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156107885750825b90505f8267ffffffffffffffff1660011480156107a45750303b155b9050811580156107b2575080155b156107e9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561081d57845468ff00000000000000001916680100000000000000001785555b5f60075560405161082d9061117e565b604051809103905ff080158015610846573d5f803e3d5ffd5b506009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691821790556040519081527fbd726cf82ac9c3260b1495107182e336e0654b25c10915648c0cc15b2bb72cbf9060200160405180910390a183156108f157845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b60025f61090b6040870160208801611373565b6001600160a01b0316815260208101919091526040015f205460ff166109785760405162461bcd60e51b815260206004820152601760248201527f61676772656761746f72206e6f7420617474657374656400000000000000000060448201526064015b60405180910390fd5b61098184610c9e565b61073881610cd2565b60048181548110610999575f80fd5b905f5260205f20015f9150905080546109b19061163b565b80601f01602080910402602001604051908101604052809291908181526020018280546109dd9061163b565b8015610a285780601f106109ff57610100808354040283529160200191610a28565b820191905f5260205f20905b815481529060010190602001808311610a0b57829003601f168201915b505050505081565b6001600160a01b0386165f9081526002602052604090205460ff1680610a54575f80fd5b8115610b22575f610a8988888688604051602001610a7594939291906117a6565b604051602081830303815290604052610d85565b90505f610a968288610dbf565b9050886001600160a01b0316816001600160a01b031614610b1f5760405162461bcd60e51b815260206004820152602c60248201527f63616c63756c61746564206164647265737320616e642061747465737465724960448201527f4420646f6e74206d617463680000000000000000000000000000000000000000606482015260840161096f565b50505b6001600160a01b0386165f908152600260205260408120805460ff191660019081179091556003805491820181559091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01610b7f84826116c0565b5050505050505050565b335f908152600160205260409020610ba2828483611801565b505050565b610baf610bfd565b6001600160a01b038116610bf1576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f600482015260240161096f565b610bfa81610c42565b50565b5f546001600160a01b031633146106c1576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161096f565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80355f9081526008602052604090208190610cb982826118bc565b505060075460408201351115610bfa5760400135600755565b5f610cdd8280611908565b905090505f5b81811015610ba2576009546001600160a01b0316639730886d610d068580611908565b84818110610d1657610d1661194e565b9050602002810190610d289190611962565b60016040518363ffffffff1660e01b8152600401610d47929190611a08565b5f604051808303815f87803b158015610d5e575f80fd5b505af1158015610d70573d5f803e3d5ffd5b5050505080610d7e90611abd565b9050610ce3565b5f610d908251610de7565b82604051602001610da2929190611ae1565b604051602081830303815290604052805190602001209050919050565b5f805f80610dcd8686610e84565b925092509250610ddd8282610ecd565b5090949350505050565b60605f610df383610fd4565b60010190505f8167ffffffffffffffff811115610e1257610e1261118c565b6040519080825280601f01601f191660200182016040528015610e3c576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610e4657509392505050565b5f805f8351604103610ebb576020840151604085015160608601515f1a610ead888285856110b6565b955095509550505050610ec6565b505081515f91506002905b9250925092565b5f826003811115610ee057610ee0611b3b565b03610ee9575050565b6001826003811115610efd57610efd611b3b565b03610f34576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115610f4857610f48611b3b565b03610f82576040517ffce698f70000000000000000000000000000000000000000000000000000000081526004810182905260240161096f565b6003826003811115610f9657610f96611b3b565b03610fd0576040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004810182905260240161096f565b5050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061101c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611048576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061106657662386f26fc10000830492506010015b6305f5e100831061107e576305f5e100830492506008015b612710831061109257612710830492506004015b606483106110a4576064830492506002015b600a83106110b0576001015b92915050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156110ef57505f91506003905082611174565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611140573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661116b57505f925060019150829050611174565b92505f91508190505b9450945094915050565b6110488062001b5083390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126111af575f80fd5b813567ffffffffffffffff808211156111ca576111ca61118c565b604051601f8301601f19908116603f011681019082821181831017156111f2576111f261118c565b8160405283815286602085880101111561120a575f80fd5b836020870160208301375f602085830101528094505050505092915050565b6001600160a01b0381168114610bfa575f80fd5b5f806040838503121561124e575f80fd5b823567ffffffffffffffff811115611264575f80fd5b611270858286016111a0565b925050602083013561128181611229565b809150509250929050565b5f5b838110156112a657818101518382015260200161128e565b50505f910152565b5f81518084526112c581602086016020860161128c565b601f01601f19169290920160200192915050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101561132c57603f1988860301845261131a8583516112ae565b945092850192908501906001016112fe565b5092979650505050505050565b5f60208284031215611349575f80fd5b813567ffffffffffffffff81111561135f575f80fd5b61136b848285016111a0565b949350505050565b5f60208284031215611383575f80fd5b813561138e81611229565b9392505050565b5f8083601f8401126113a5575f80fd5b50813567ffffffffffffffff8111156113bc575f80fd5b6020830191508360208285010111156113d3575f80fd5b9250929050565b5f805f805f80608087890312156113ef575f80fd5b86356113fa81611229565b9550602087013567ffffffffffffffff80821115611416575f80fd5b6114228a838b01611395565b9097509550604089013591508082111561143a575f80fd5b6114468a838b016111a0565b9450606089013591508082111561145b575f80fd5b5061146889828a01611395565b979a9699509497509295939492505050565b5f6020828403121561148a575f80fd5b5035919050565b5f805f8084860360a08112156114a5575f80fd5b60608112156114b2575f80fd5b50849350606085013567ffffffffffffffff808211156114d0575f80fd5b6114dc88838901611395565b909550935060808701359150808211156114f4575f80fd5b50850160208188031215611506575f80fd5b939692955090935050565b602081525f61138e60208301846112ae565b5f805f805f8060c08789031215611538575f80fd5b863561154381611229565b9550602087013561155381611229565b9450604087013567ffffffffffffffff8082111561156f575f80fd5b61157b8a838b016111a0565b95506060890135915080821115611590575f80fd5b61159c8a838b016111a0565b945060808901359150808211156115b1575f80fd5b506115be89828a016111a0565b92505060a087013580151581146115d3575f80fd5b809150509295509295509295565b5f80602083850312156115f2575f80fd5b823567ffffffffffffffff811115611608575f80fd5b61161485828601611395565b90969095509350505050565b5f825161163181846020870161128c565b9190910192915050565b600181811c9082168061164f57607f821691505b60208210810361166d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610ba2575f81815260208120601f850160051c810160208610156116995750805b601f850160051c820191505b818110156116b8578281556001016116a5565b505050505050565b815167ffffffffffffffff8111156116da576116da61118c565b6116ee816116e8845461163b565b84611673565b602080601f831160018114611721575f841561170a5750858301515b5f19600386901b1c1916600185901b1785556116b8565b5f85815260208120601f198616915b8281101561174f57888601518255948401946001909101908401611730565b508582101561176c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b604081525f61178e60408301856112ae565b90506001600160a01b03831660208301529392505050565b5f6bffffffffffffffffffffffff19808760601b168352808660601b1660148401525083516117dc81602885016020880161128c565b8351908301906117f381602884016020880161128c565b016028019695505050505050565b67ffffffffffffffff8311156118195761181961118c565b61182d83611827835461163b565b83611673565b5f601f84116001811461185e575f85156118475750838201355b5f19600387901b1c1916600186901b1783556108f1565b5f83815260209020601f19861690835b8281101561188e578685013582556020948501946001909201910161186e565b50868210156118aa575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b813581556001810160208301356118d281611229565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff198354161782555050604082013560028201555050565b5f808335601e1984360301811261191d575f80fd5b83018035915067ffffffffffffffff821115611937575f80fd5b6020019150600581901b36038213156113d3575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f823560be19833603018112611631575f80fd5b803563ffffffff81168114611989575f80fd5b919050565b5f808335601e198436030181126119a3575f80fd5b830160208101925035905067ffffffffffffffff8111156119c2575f80fd5b8036038213156113d3575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b803560ff81168114611989575f80fd5b604081525f8335611a1881611229565b6001600160a01b03166040830152602084013567ffffffffffffffff8116808214611a41575f80fd5b606084015250611a5360408501611976565b63ffffffff166080830152611a6a60608501611976565b63ffffffff1660a0830152611a82608085018561198e565b60c080850152611a97610100850182846119d0565b915050611aa660a086016119f8565b60ff1660e084015260209092019290925292915050565b5f60018201611ada57634e487b7160e01b5f52601160045260245ffd5b5060010190565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f8351611b1881601a85016020880161128c565b835190830190611b2f81601a84016020880161128c565b01601a01949350505050565b634e487b7160e01b5f52602160045260245ffdfe608060405234801561000f575f80fd5b50338061003557604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61003e81610044565b50610093565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fa8806100a05f395ff3fe6080604052600436106100b4575f3560e01c80638da5cb5b1161006857806399a3ad211161004d57806399a3ad211461025d578063b1454caa1461027c578063f2fde38b146102b457610124565b80638da5cb5b146102185780639730886d1461023e57610124565b8063346633fb11610099578063346633fb146101d257806336d2da90146101e5578063715018a61461020457610124565b80630fcfbd111461017157806333a88c72146101a357610124565b36610124576040517f346633fb0000000000000000000000000000000000000000000000000000000081523360048201523460248201819052309163346633fb91906044015f604051808303818588803b158015610110575f80fd5b505af1158015610122573d5f803e3d5ffd5b005b60405162461bcd60e51b815260206004820152600b60248201527f756e737570706f7274656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b34801561017c575f80fd5b5061019061018b36600461091b565b6102d3565b6040519081526020015b60405180910390f35b3480156101ae575f80fd5b506101c26101bd36600461091b565b610387565b604051901515815260200161019a565b6101226101e0366004610961565b6103d8565b3480156101f0575f80fd5b506101226101ff36600461098b565b6104a3565b34801561020f575f80fd5b5061012261054e565b348015610223575f80fd5b505f546040516001600160a01b03909116815260200161019a565b348015610249575f80fd5b506101226102583660046109a6565b610561565b348015610268575f80fd5b50610122610277366004610961565b6106ad565b348015610287575f80fd5b5061029b610296366004610a17565b610759565b60405167ffffffffffffffff909116815260200161019a565b3480156102bf575f80fd5b506101226102ce36600461098b565b6107b1565b5f80826040516020016102e69190610af9565b60408051601f1981840301815291815281516020928301205f8181526001909352912054909150806103805760405162461bcd60e51b815260206004820152602160248201527f54686973206d65737361676520776173206e65766572207375626d697474656460448201527f2e000000000000000000000000000000000000000000000000000000000000006064820152608401610168565b9392505050565b5f808260405160200161039a9190610af9565b60408051601f1981840301815291815281516020928301205f818152600190935291205490915080158015906103d05750428111155b949350505050565b5f341180156103e657508034145b6104585760405162461bcd60e51b815260206004820152603060248201527f417474656d7074696e6720746f2073656e642076616c756520776974686f757460448201527f2070726f766964696e67204574686572000000000000000000000000000000006064820152608401610168565b604080513381526001600160a01b0384166020820152348183015290517ff1365f826a788d6c1a955db0eed5ba8642674219c4771f8c65918617511a15609181900360600190a15050565b6104ab610807565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146104f4576040519150601f19603f3d011682016040523d82523d5f602084013e6104f9565b606091505b505090508061054a5760405162461bcd60e51b815260206004820152601460248201527f6661696c65642073656e64696e672076616c75650000000000000000000000006044820152606401610168565b5050565b610556610807565b61055f5f61084c565b565b610569610807565b5f6105748242610bf4565b90505f836040516020016105889190610af9565b60408051601f1981840301815291815281516020928301205f8181526001909352912054909150156106225760405162461bcd60e51b815260206004820152602160248201527f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636560448201527f21000000000000000000000000000000000000000000000000000000000000006064820152608401610168565b5f8181526001602090815260408220849055600291906106449087018761098b565b6001600160a01b0316815260208101919091526040015f9081209061066f6080870160608801610c0d565b63ffffffff1681526020808201929092526040015f90812080546001810182559082529190208591600402016106a58282610dd1565b505050505050565b6106b5610807565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146106fe576040519150601f19603f3d011682016040523d82523d5f602084013e610703565b606091505b50509050806107545760405162461bcd60e51b815260206004820152601460248201527f6661696c65642073656e64696e672076616c75650000000000000000000000006044820152606401610168565b505050565b5f610763336108a8565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516107a09796959493929190610eeb565b60405180910390a195945050505050565b6107b9610807565b6001600160a01b0381166107fb576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610168565b6108048161084c565b50565b5f546001600160a01b0316331461055f576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610168565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381165f908152600360205260408120805467ffffffffffffffff1691600191906108da8385610f4a565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b5f60c08284031215610915575f80fd5b50919050565b5f6020828403121561092b575f80fd5b813567ffffffffffffffff811115610941575f80fd5b6103d084828501610905565b6001600160a01b0381168114610804575f80fd5b5f8060408385031215610972575f80fd5b823561097d8161094d565b946020939093013593505050565b5f6020828403121561099b575f80fd5b81356103808161094d565b5f80604083850312156109b7575f80fd5b823567ffffffffffffffff8111156109cd575f80fd5b6109d985828601610905565b95602094909401359450505050565b63ffffffff81168114610804575f80fd5b60ff81168114610804575f80fd5b8035610a12816109f9565b919050565b5f805f805f60808688031215610a2b575f80fd5b8535610a36816109e8565b94506020860135610a46816109e8565b9350604086013567ffffffffffffffff80821115610a62575f80fd5b818801915088601f830112610a75575f80fd5b813581811115610a83575f80fd5b896020828501011115610a94575f80fd5b6020830195508094505050506060860135610aae816109f9565b809150509295509295909350565b67ffffffffffffffff81168114610804575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f8235610b098161094d565b6001600160a01b0381166020840152506020830135610b2781610abc565b67ffffffffffffffff808216604085015260408501359150610b48826109e8565b63ffffffff808316606086015260608601359250610b65836109e8565b80831660808601525060808501359150601e19853603018212610b86575f80fd5b6020918501918201913581811115610b9c575f80fd5b803603831315610baa575f80fd5b60c060a0860152610bbf60e086018285610ad1565b92505050610bcf60a08501610a07565b60ff811660c0850152509392505050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c0757610c07610be0565b92915050565b5f60208284031215610c1d575f80fd5b8135610380816109e8565b5f8135610c07816109e8565b5f808335601e19843603018112610c49575f80fd5b83018035915067ffffffffffffffff821115610c63575f80fd5b602001915036819003821315610c77575f80fd5b9250929050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680610ca657607f821691505b60208210810361091557634e487b7160e01b5f52602260045260245ffd5b601f821115610754575f81815260208120601f850160051c81016020861015610cea5750805b601f850160051c820191505b818110156106a557828155600101610cf6565b67ffffffffffffffff831115610d2157610d21610c7e565b610d3583610d2f8354610c92565b83610cc4565b5f601f841160018114610d66575f8515610d4f5750838201355b5f19600387901b1c1916600186901b178355610dbe565b5f83815260209020601f19861690835b82811015610d965786850135825560209485019460019092019101610d76565b5086821015610db2575f1960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b5f8135610c07816109f9565b8135610ddc8161094d565b6001600160a01b038116905081548173ffffffffffffffffffffffffffffffffffffffff1982161783556020840135610e1481610abc565b7bffffffffffffffff00000000000000000000000000000000000000008160a01b1690507fffffffff0000000000000000000000000000000000000000000000000000000081848285161717855560408601359250610e72836109e8565b921760e09190911b909116178155610eaa610e8f60608401610c28565b6001830163ffffffff821663ffffffff198254161781555050565b610eb76080830183610c34565b610ec5818360028601610d09565b505061054a610ed660a08401610dc5565b6003830160ff821660ff198254161781555050565b6001600160a01b038816815267ffffffffffffffff871660208201525f63ffffffff808816604084015280871660608401525060c06080830152610f3360c083018587610ad1565b905060ff831660a083015298975050505050505050565b67ffffffffffffffff818116838216019080821115610f6b57610f6b610be0565b509291505056fea264697066735822122076ee989163cafe9af5816a8fe978aae61590b2374fa3eb153e06140a1bba2f1b64736f6c63430008140033a264697066735822122066465611131e935a75afab1e5ad5d2ea36a8341118e771dff756ddc0023095aa64736f6c63430008140033", + Bin: "0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b612cd8806100a56000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80638129fc1c116100cd578063a1a227fa11610081578063bbd79e1511610066578063bbd79e151461035d578063e34fbfc814610370578063f2fde38b1461038357600080fd5b8063a1a227fa1461033a578063a52f433c1461034d57600080fd5b80638da5cb5b116100b25780638da5cb5b146102f65780638fa0d0531461030757806398077e861461031a57600080fd5b80638129fc1c146102535780638236a7ba1461025b57600080fd5b8063440c953b116101245780636a30d26c116101095780636a30d26c1461023b578063715018a614610243578063728109961461024b57600080fd5b8063440c953b1461021157806359a900711461022857600080fd5b806303e72e4814610156578063324ff8661461016b5780633e60a22f1461018957806343348b2f146101d5575b600080fd5b610169610164366004611296565b610396565b005b61017361049e565b6040516101809190611338565b60405180910390f35b6101bd61019736600461139a565b80516020818301810180516005825292820191909301209152546001600160a01b031681565b6040516001600160a01b039091168152602001610180565b6102016101e33660046113d7565b6001600160a01b031660009081526002602052604090205460ff1690565b6040519015158152602001610180565b61021a60075481565b604051908152602001610180565b610169610236366004611444565b610577565b6101736105fa565b6101696106ca565b6101696106de565b61016961075e565b6102c36102693660046114eb565b6040805160608082018352600080835260208084018290529284018190528481526008835283902083519182018452805480835260018201546001600160a01b031693830193909352600201549281019290925290911491565b60408051921515835281516020808501919091528201516001600160a01b03168382015201516060820152608001610180565b6000546001600160a01b03166101bd565b610169610315366004611504565b61091e565b61032d6103283660046114eb565b6109b2565b604051610180919061158b565b6009546101bd906001600160a01b031681565b600654610100900460ff16610201565b61016961036b36600461159e565b610a5e565b61016961037e366004611664565b610bbc565b6101696103913660046113d7565b610bdb565b61039e610c32565b60006001600160a01b03166005836040516103b991906116a6565b908152604051908190036020019020546001600160a01b03160361041557600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01610413838261174a565b505b8060058360405161042691906116a6565b90815260405190819003602001812080546001600160a01b039390931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091557f17b2f9f5748931099ffee882b5b64f4a560b5c55da9b4f4e396dae3bb9f98cb590610492908490849061180a565b60405180910390a15050565b60606003805480602002602001604051908101604052809291908181526020016000905b8282101561056e5783829060005260206000200180546104e1906116c2565b80601f016020809104026020016040519081016040528092919081815260200182805461050d906116c2565b801561055a5780601f1061052f5761010080835404028352916020019161055a565b820191906000526020600020905b81548152906001019060200180831161053d57829003601f168201915b5050505050815260200190600101906104c2565b50505050905090565b60065460ff161561058757600080fd5b60068054600160ff1991821681179092556001600160a01b03881660009081526002602052604081208054909216831790915560038054928301815590527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b016105f1848261174a565b50505050505050565b60606004805480602002602001604051908101604052809291908181526020016000905b8282101561056e57838290600052602060002001805461063d906116c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610669906116c2565b80156106b65780601f1061068b576101008083540402835291602001916106b6565b820191906000526020600020905b81548152906001019060200180831161069957829003601f168201915b50505050508152602001906001019061061e565b6106d2610c32565b6106dc6000610c78565b565b6106e6610c32565b6009546040517f36d2da900000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03909116906336d2da9090602401600060405180830381600087803b15801561074457600080fd5b505af1158015610758573d6000803e3d6000fd5b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107a95750825b905060008267ffffffffffffffff1660011480156107c65750303b155b9050811580156107d4575080155b1561080b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561083f57845468ff00000000000000001916680100000000000000001785555b6000600755604051610850906111d0565b604051809103906000f08015801561086c573d6000803e3d6000fd5b506009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691821790556040519081527fbd726cf82ac9c3260b1495107182e336e0654b25c10915648c0cc15b2bb72cbf9060200160405180910390a1831561091757845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6002600061093260408701602088016113d7565b6001600160a01b0316815260208101919091526040016000205460ff166109a05760405162461bcd60e51b815260206004820152601760248201527f61676772656761746f72206e6f7420617474657374656400000000000000000060448201526064015b60405180910390fd5b6109a984610cd5565b61075881610d0a565b600481815481106109c257600080fd5b9060005260206000200160009150905080546109dd906116c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610a09906116c2565b8015610a565780601f10610a2b57610100808354040283529160200191610a56565b820191906000526020600020905b815481529060010190602001808311610a3957829003601f168201915b505050505081565b6001600160a01b03861660009081526002602052604090205460ff1680610a8457600080fd5b8115610b54576000610aba88888688604051602001610aa69493929190611835565b604051602081830303815290604052610dc4565b90506000610ac88288610dff565b9050886001600160a01b0316816001600160a01b031614610b515760405162461bcd60e51b815260206004820152602c60248201527f63616c63756c61746564206164647265737320616e642061747465737465724960448201527f4420646f6e74206d6174636800000000000000000000000000000000000000006064820152608401610997565b50505b6001600160a01b0386166000908152600260205260408120805460ff191660019081179091556003805491820181559091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01610bb2848261174a565b5050505050505050565b336000908152600160205260409020610bd6828483611891565b505050565b610be3610c32565b6001600160a01b038116610c26576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610997565b610c2f81610c78565b50565b6000546001600160a01b031633146106dc576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610997565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803560009081526008602052604090208190610cf18282611951565b505060075460408201351115610c2f5760400135600755565b6000610d16828061199d565b9050905060005b81811015610bd6576009546001600160a01b0316639730886d610d40858061199d565b84818110610d5057610d506119e7565b9050602002810190610d6291906119fd565b60016040518363ffffffff1660e01b8152600401610d81929190611aac565b600060405180830381600087803b158015610d9b57600080fd5b505af1158015610daf573d6000803e3d6000fd5b5050505080610dbd90611b63565b9050610d1d565b6000610dd08251610e29565b82604051602001610de2929190611b8a565b604051602081830303815290604052805190602001209050919050565b600080600080610e0f8686610ec9565b925092509250610e1f8282610f16565b5090949350505050565b60606000610e368361101e565b600101905060008167ffffffffffffffff811115610e5657610e566111de565b6040519080825280601f01601f191660200182016040528015610e80576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610e8a57509392505050565b60008060008351604103610f035760208401516040850151606086015160001a610ef588828585611101565b955095509550505050610f0f565b50508151600091506002905b9250925092565b6000826003811115610f2a57610f2a611be5565b03610f33575050565b6001826003811115610f4757610f47611be5565b03610f7e576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115610f9257610f92611be5565b03610fcc576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101829052602401610997565b6003826003811115610fe057610fe0611be5565b0361101a576040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260048101829052602401610997565b5050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611067577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611093576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106110b157662386f26fc10000830492506010015b6305f5e10083106110c9576305f5e100830492506008015b61271083106110dd57612710830492506004015b606483106110ef576064830492506002015b600a83106110fb576001015b92915050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561113c57506000915060039050826111c6565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611190573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166111bc575060009250600191508290506111c6565b9250600091508190505b9450945094915050565b6110a78062001bfc83390190565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261120557600080fd5b813567ffffffffffffffff80821115611220576112206111de565b604051601f8301601f19908116603f01168101908282118183101715611248576112486111de565b8160405283815286602085880101111561126157600080fd5b836020870160208301376000602085830101528094505050505092915050565b6001600160a01b0381168114610c2f57600080fd5b600080604083850312156112a957600080fd5b823567ffffffffffffffff8111156112c057600080fd5b6112cc858286016111f4565b92505060208301356112dd81611281565b809150509250929050565b60005b838110156113035781810151838201526020016112eb565b50506000910152565b600081518084526113248160208601602086016112e8565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561138d57603f1988860301845261137b85835161130c565b9450928501929085019060010161135f565b5092979650505050505050565b6000602082840312156113ac57600080fd5b813567ffffffffffffffff8111156113c357600080fd5b6113cf848285016111f4565b949350505050565b6000602082840312156113e957600080fd5b81356113f481611281565b9392505050565b60008083601f84011261140d57600080fd5b50813567ffffffffffffffff81111561142557600080fd5b60208301915083602082850101111561143d57600080fd5b9250929050565b6000806000806000806080878903121561145d57600080fd5b863561146881611281565b9550602087013567ffffffffffffffff8082111561148557600080fd5b6114918a838b016113fb565b909750955060408901359150808211156114aa57600080fd5b6114b68a838b016111f4565b945060608901359150808211156114cc57600080fd5b506114d989828a016113fb565b979a9699509497509295939492505050565b6000602082840312156114fd57600080fd5b5035919050565b60008060008084860360a081121561151b57600080fd5b606081121561152957600080fd5b50849350606085013567ffffffffffffffff8082111561154857600080fd5b611554888389016113fb565b9095509350608087013591508082111561156d57600080fd5b5085016020818803121561158057600080fd5b939692955090935050565b6020815260006113f4602083018461130c565b60008060008060008060c087890312156115b757600080fd5b86356115c281611281565b955060208701356115d281611281565b9450604087013567ffffffffffffffff808211156115ef57600080fd5b6115fb8a838b016111f4565b9550606089013591508082111561161157600080fd5b61161d8a838b016111f4565b9450608089013591508082111561163357600080fd5b5061164089828a016111f4565b92505060a0870135801515811461165657600080fd5b809150509295509295509295565b6000806020838503121561167757600080fd5b823567ffffffffffffffff81111561168e57600080fd5b61169a858286016113fb565b90969095509350505050565b600082516116b88184602087016112e8565b9190910192915050565b600181811c908216806116d657607f821691505b6020821081036116f657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610bd657600081815260208120601f850160051c810160208610156117235750805b601f850160051c820191505b818110156117425782815560010161172f565b505050505050565b815167ffffffffffffffff811115611764576117646111de565b6117788161177284546116c2565b846116fc565b602080601f8311600181146117ad57600084156117955750858301515b600019600386901b1c1916600185901b178555611742565b600085815260208120601f198616915b828110156117dc578886015182559484019460019091019084016117bd565b50858210156117fa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408152600061181d604083018561130c565b90506001600160a01b03831660208301529392505050565b60006bffffffffffffffffffffffff19808760601b168352808660601b16601484015250835161186c8160288501602088016112e8565b8351908301906118838160288401602088016112e8565b016028019695505050505050565b67ffffffffffffffff8311156118a9576118a96111de565b6118bd836118b783546116c2565b836116fc565b6000601f8411600181146118f157600085156118d95750838201355b600019600387901b1c1916600186901b178355610917565b600083815260209020601f19861690835b828110156119225786850135825560209485019460019092019101611902565b508682101561193f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8135815560018101602083013561196781611281565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff198354161782555050604082013560028201555050565b6000808335601e198436030181126119b457600080fd5b83018035915067ffffffffffffffff8211156119cf57600080fd5b6020019150600581901b360382131561143d57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000823560be198336030181126116b857600080fd5b803563ffffffff81168114611a2757600080fd5b919050565b6000808335601e19843603018112611a4357600080fd5b830160208101925035905067ffffffffffffffff811115611a6357600080fd5b80360382131561143d57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b803560ff81168114611a2757600080fd5b6040815260008335611abd81611281565b6001600160a01b03166040830152602084013567ffffffffffffffff8116808214611ae757600080fd5b606084015250611af960408501611a13565b63ffffffff166080830152611b1060608501611a13565b63ffffffff1660a0830152611b286080850185611a2c565b60c080850152611b3d61010085018284611a72565b915050611b4c60a08601611a9b565b60ff1660e084015260209092019290925292915050565b600060018201611b8357634e487b7160e01b600052601160045260246000fd5b5060010190565b7f19457468657265756d205369676e6564204d6573736167653a0a000000000000815260008351611bc281601a8501602088016112e8565b835190830190611bd981601a8401602088016112e8565b01601a01949350505050565b634e487b7160e01b600052602160045260246000fdfe608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611002806100a56000396000f3fe6080604052600436106100b55760003560e01c80638da5cb5b1161006957806399a3ad211161004e57806399a3ad2114610269578063b1454caa14610289578063f2fde38b146102c257610129565b80638da5cb5b146102215780639730886d1461024957610129565b8063346633fb1161009a578063346633fb146101d957806336d2da90146101ec578063715018a61461020c57610129565b80630fcfbd111461017657806333a88c72146101a957610129565b36610129576040517f346633fb0000000000000000000000000000000000000000000000000000000081523360048201523460248201819052309163346633fb91906044016000604051808303818588803b15801561011357600080fd5b505af1158015610127573d6000803e3d6000fd5b005b60405162461bcd60e51b815260206004820152600b60248201527f756e737570706f7274656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b34801561018257600080fd5b50610196610191366004610945565b6102e2565b6040519081526020015b60405180910390f35b3480156101b557600080fd5b506101c96101c4366004610945565b610398565b60405190151581526020016101a0565b6101276101e736600461098f565b6103eb565b3480156101f857600080fd5b506101276102073660046109bb565b6104b7565b34801561021857600080fd5b50610127610566565b34801561022d57600080fd5b506000546040516001600160a01b0390911681526020016101a0565b34801561025557600080fd5b506101276102643660046109d8565b61057a565b34801561027557600080fd5b5061012761028436600461098f565b6106cc565b34801561029557600080fd5b506102a96102a4366004610a4e565b61077c565b60405167ffffffffffffffff90911681526020016101a0565b3480156102ce57600080fd5b506101276102dd3660046109bb565b6107d5565b600080826040516020016102f69190610b3a565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150806103915760405162461bcd60e51b815260206004820152602160248201527f54686973206d65737361676520776173206e65766572207375626d697474656460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015260840161016d565b9392505050565b600080826040516020016103ac9190610b3a565b60408051601f1981840301815291815281516020928301206000818152600190935291205490915080158015906103e35750428111155b949350505050565b6000341180156103fa57508034145b61046c5760405162461bcd60e51b815260206004820152603060248201527f417474656d7074696e6720746f2073656e642076616c756520776974686f757460448201527f2070726f766964696e6720457468657200000000000000000000000000000000606482015260840161016d565b604080513381526001600160a01b0384166020820152348183015290517ff1365f826a788d6c1a955db0eed5ba8642674219c4771f8c65918617511a15609181900360600190a15050565b6104bf61082c565b6000816001600160a01b03164760405160006040518083038185875af1925050503d806000811461050c576040519150601f19603f3d011682016040523d82523d6000602084013e610511565b606091505b50509050806105625760405162461bcd60e51b815260206004820152601460248201527f6661696c65642073656e64696e672076616c7565000000000000000000000000604482015260640161016d565b5050565b61056e61082c565b6105786000610872565b565b61058261082c565b600061058e8242610c3b565b90506000836040516020016105a39190610b3a565b60408051601f198184030181529181528151602092830120600081815260019093529120549091501561063e5760405162461bcd60e51b815260206004820152602160248201527f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636560448201527f2100000000000000000000000000000000000000000000000000000000000000606482015260840161016d565b6000818152600160209081526040822084905560029190610661908701876109bb565b6001600160a01b03168152602081019190915260400160009081209061068d6080870160608801610c54565b63ffffffff168152602080820192909252604001600090812080546001810182559082529190208591600402016106c48282610e2a565b505050505050565b6106d461082c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610721576040519150601f19603f3d011682016040523d82523d6000602084013e610726565b606091505b50509050806107775760405162461bcd60e51b815260206004820152601460248201527f6661696c65642073656e64696e672076616c7565000000000000000000000000604482015260640161016d565b505050565b6000610787336108cf565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516107c49796959493929190610f44565b60405180910390a195945050505050565b6107dd61082c565b6001600160a01b038116610820576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526000600482015260240161016d565b61082981610872565b50565b6000546001600160a01b03163314610578576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161016d565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166000908152600360205260408120805467ffffffffffffffff1691600191906109028385610fa4565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b600060c0828403121561093f57600080fd5b50919050565b60006020828403121561095757600080fd5b813567ffffffffffffffff81111561096e57600080fd5b6103e38482850161092d565b6001600160a01b038116811461082957600080fd5b600080604083850312156109a257600080fd5b82356109ad8161097a565b946020939093013593505050565b6000602082840312156109cd57600080fd5b81356103918161097a565b600080604083850312156109eb57600080fd5b823567ffffffffffffffff811115610a0257600080fd5b610a0e8582860161092d565b95602094909401359450505050565b63ffffffff8116811461082957600080fd5b60ff8116811461082957600080fd5b8035610a4981610a2f565b919050565b600080600080600060808688031215610a6657600080fd5b8535610a7181610a1d565b94506020860135610a8181610a1d565b9350604086013567ffffffffffffffff80821115610a9e57600080fd5b818801915088601f830112610ab257600080fd5b813581811115610ac157600080fd5b896020828501011115610ad357600080fd5b6020830195508094505050506060860135610aed81610a2f565b809150509295509295909350565b67ffffffffffffffff8116811461082957600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260008235610b4b8161097a565b6001600160a01b0381166020840152506020830135610b6981610afb565b67ffffffffffffffff808216604085015260408501359150610b8a82610a1d565b63ffffffff808316606086015260608601359250610ba783610a1d565b80831660808601525060808501359150601e19853603018212610bc957600080fd5b6020918501918201913581811115610be057600080fd5b803603831315610bef57600080fd5b60c060a0860152610c0460e086018285610b11565b92505050610c1460a08501610a3e565b60ff811660c0850152509392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c4e57610c4e610c25565b92915050565b600060208284031215610c6657600080fd5b813561039181610a1d565b60008135610c4e81610a1d565b6000808335601e19843603018112610c9557600080fd5b83018035915067ffffffffffffffff821115610cb057600080fd5b602001915036819003821315610cc557600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680610cf657607f821691505b60208210810361093f57634e487b7160e01b600052602260045260246000fd5b601f82111561077757600081815260208120601f850160051c81016020861015610d3d5750805b601f850160051c820191505b818110156106c457828155600101610d49565b67ffffffffffffffff831115610d7457610d74610ccc565b610d8883610d828354610ce2565b83610d16565b6000601f841160018114610dbc5760008515610da45750838201355b600019600387901b1c1916600186901b178355610e16565b600083815260209020601f19861690835b82811015610ded5786850135825560209485019460019092019101610dcd565b5086821015610e0a5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60008135610c4e81610a2f565b8135610e358161097a565b6001600160a01b038116905081548173ffffffffffffffffffffffffffffffffffffffff1982161783556020840135610e6d81610afb565b7bffffffffffffffff00000000000000000000000000000000000000008160a01b1690507fffffffff0000000000000000000000000000000000000000000000000000000081848285161717855560408601359250610ecb83610a1d565b921760e09190911b909116178155610f03610ee860608401610c71565b6001830163ffffffff821663ffffffff198254161781555050565b610f106080830183610c7e565b610f1e818360028601610d5c565b5050610562610f2f60a08401610e1d565b6003830160ff821660ff198254161781555050565b6001600160a01b038816815267ffffffffffffffff87166020820152600063ffffffff808816604084015280871660608401525060c06080830152610f8d60c083018587610b11565b905060ff831660a083015298975050505050505050565b67ffffffffffffffff818116838216019080821115610fc557610fc5610c25565b509291505056fea2646970667358221220bf1d60e3428c04ea6757da5786796ba3e18c5c9e196fa40928db0557ff27620f64736f6c63430008140033a2646970667358221220f9990321c02b27ff6d9e9764a4533e0649409c086361d42137fc2d2df1d7363064736f6c63430008140033", } // ManagementContractABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/MessageBus/MessageBus.go b/contracts/generated/MessageBus/MessageBus.go index 58712f9bf3..a5919dd6c7 100644 --- a/contracts/generated/MessageBus/MessageBus.go +++ b/contracts/generated/MessageBus/MessageBus.go @@ -42,7 +42,7 @@ type StructsCrossChainMessage struct { // MessageBusMetaData contains all meta data concerning the MessageBus contract. var MessageBusMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"LogMessagePublished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ValueTransfer\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"getMessageTimeOfFinality\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"publishMessage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveValueFromL2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"retrieveAllFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendValueToL2\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"finalAfterTimestamp\",\"type\":\"uint256\"}],\"name\":\"storeCrossChainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"verifyMessageFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x608060405234801561000f575f80fd5b50338061003557604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61003e81610044565b50610093565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fa8806100a05f395ff3fe6080604052600436106100b4575f3560e01c80638da5cb5b1161006857806399a3ad211161004d57806399a3ad211461025d578063b1454caa1461027c578063f2fde38b146102b457610124565b80638da5cb5b146102185780639730886d1461023e57610124565b8063346633fb11610099578063346633fb146101d257806336d2da90146101e5578063715018a61461020457610124565b80630fcfbd111461017157806333a88c72146101a357610124565b36610124576040517f346633fb0000000000000000000000000000000000000000000000000000000081523360048201523460248201819052309163346633fb91906044015f604051808303818588803b158015610110575f80fd5b505af1158015610122573d5f803e3d5ffd5b005b60405162461bcd60e51b815260206004820152600b60248201527f756e737570706f7274656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b34801561017c575f80fd5b5061019061018b36600461091b565b6102d3565b6040519081526020015b60405180910390f35b3480156101ae575f80fd5b506101c26101bd36600461091b565b610387565b604051901515815260200161019a565b6101226101e0366004610961565b6103d8565b3480156101f0575f80fd5b506101226101ff36600461098b565b6104a3565b34801561020f575f80fd5b5061012261054e565b348015610223575f80fd5b505f546040516001600160a01b03909116815260200161019a565b348015610249575f80fd5b506101226102583660046109a6565b610561565b348015610268575f80fd5b50610122610277366004610961565b6106ad565b348015610287575f80fd5b5061029b610296366004610a17565b610759565b60405167ffffffffffffffff909116815260200161019a565b3480156102bf575f80fd5b506101226102ce36600461098b565b6107b1565b5f80826040516020016102e69190610af9565b60408051601f1981840301815291815281516020928301205f8181526001909352912054909150806103805760405162461bcd60e51b815260206004820152602160248201527f54686973206d65737361676520776173206e65766572207375626d697474656460448201527f2e000000000000000000000000000000000000000000000000000000000000006064820152608401610168565b9392505050565b5f808260405160200161039a9190610af9565b60408051601f1981840301815291815281516020928301205f818152600190935291205490915080158015906103d05750428111155b949350505050565b5f341180156103e657508034145b6104585760405162461bcd60e51b815260206004820152603060248201527f417474656d7074696e6720746f2073656e642076616c756520776974686f757460448201527f2070726f766964696e67204574686572000000000000000000000000000000006064820152608401610168565b604080513381526001600160a01b0384166020820152348183015290517ff1365f826a788d6c1a955db0eed5ba8642674219c4771f8c65918617511a15609181900360600190a15050565b6104ab610807565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146104f4576040519150601f19603f3d011682016040523d82523d5f602084013e6104f9565b606091505b505090508061054a5760405162461bcd60e51b815260206004820152601460248201527f6661696c65642073656e64696e672076616c75650000000000000000000000006044820152606401610168565b5050565b610556610807565b61055f5f61084c565b565b610569610807565b5f6105748242610bf4565b90505f836040516020016105889190610af9565b60408051601f1981840301815291815281516020928301205f8181526001909352912054909150156106225760405162461bcd60e51b815260206004820152602160248201527f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636560448201527f21000000000000000000000000000000000000000000000000000000000000006064820152608401610168565b5f8181526001602090815260408220849055600291906106449087018761098b565b6001600160a01b0316815260208101919091526040015f9081209061066f6080870160608801610c0d565b63ffffffff1681526020808201929092526040015f90812080546001810182559082529190208591600402016106a58282610dd1565b505050505050565b6106b5610807565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146106fe576040519150601f19603f3d011682016040523d82523d5f602084013e610703565b606091505b50509050806107545760405162461bcd60e51b815260206004820152601460248201527f6661696c65642073656e64696e672076616c75650000000000000000000000006044820152606401610168565b505050565b5f610763336108a8565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516107a09796959493929190610eeb565b60405180910390a195945050505050565b6107b9610807565b6001600160a01b0381166107fb576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610168565b6108048161084c565b50565b5f546001600160a01b0316331461055f576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610168565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381165f908152600360205260408120805467ffffffffffffffff1691600191906108da8385610f4a565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b5f60c08284031215610915575f80fd5b50919050565b5f6020828403121561092b575f80fd5b813567ffffffffffffffff811115610941575f80fd5b6103d084828501610905565b6001600160a01b0381168114610804575f80fd5b5f8060408385031215610972575f80fd5b823561097d8161094d565b946020939093013593505050565b5f6020828403121561099b575f80fd5b81356103808161094d565b5f80604083850312156109b7575f80fd5b823567ffffffffffffffff8111156109cd575f80fd5b6109d985828601610905565b95602094909401359450505050565b63ffffffff81168114610804575f80fd5b60ff81168114610804575f80fd5b8035610a12816109f9565b919050565b5f805f805f60808688031215610a2b575f80fd5b8535610a36816109e8565b94506020860135610a46816109e8565b9350604086013567ffffffffffffffff80821115610a62575f80fd5b818801915088601f830112610a75575f80fd5b813581811115610a83575f80fd5b896020828501011115610a94575f80fd5b6020830195508094505050506060860135610aae816109f9565b809150509295509295909350565b67ffffffffffffffff81168114610804575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f8235610b098161094d565b6001600160a01b0381166020840152506020830135610b2781610abc565b67ffffffffffffffff808216604085015260408501359150610b48826109e8565b63ffffffff808316606086015260608601359250610b65836109e8565b80831660808601525060808501359150601e19853603018212610b86575f80fd5b6020918501918201913581811115610b9c575f80fd5b803603831315610baa575f80fd5b60c060a0860152610bbf60e086018285610ad1565b92505050610bcf60a08501610a07565b60ff811660c0850152509392505050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c0757610c07610be0565b92915050565b5f60208284031215610c1d575f80fd5b8135610380816109e8565b5f8135610c07816109e8565b5f808335601e19843603018112610c49575f80fd5b83018035915067ffffffffffffffff821115610c63575f80fd5b602001915036819003821315610c77575f80fd5b9250929050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680610ca657607f821691505b60208210810361091557634e487b7160e01b5f52602260045260245ffd5b601f821115610754575f81815260208120601f850160051c81016020861015610cea5750805b601f850160051c820191505b818110156106a557828155600101610cf6565b67ffffffffffffffff831115610d2157610d21610c7e565b610d3583610d2f8354610c92565b83610cc4565b5f601f841160018114610d66575f8515610d4f5750838201355b5f19600387901b1c1916600186901b178355610dbe565b5f83815260209020601f19861690835b82811015610d965786850135825560209485019460019092019101610d76565b5086821015610db2575f1960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b5f8135610c07816109f9565b8135610ddc8161094d565b6001600160a01b038116905081548173ffffffffffffffffffffffffffffffffffffffff1982161783556020840135610e1481610abc565b7bffffffffffffffff00000000000000000000000000000000000000008160a01b1690507fffffffff0000000000000000000000000000000000000000000000000000000081848285161717855560408601359250610e72836109e8565b921760e09190911b909116178155610eaa610e8f60608401610c28565b6001830163ffffffff821663ffffffff198254161781555050565b610eb76080830183610c34565b610ec5818360028601610d09565b505061054a610ed660a08401610dc5565b6003830160ff821660ff198254161781555050565b6001600160a01b038816815267ffffffffffffffff871660208201525f63ffffffff808816604084015280871660608401525060c06080830152610f3360c083018587610ad1565b905060ff831660a083015298975050505050505050565b67ffffffffffffffff818116838216019080821115610f6b57610f6b610be0565b509291505056fea264697066735822122076ee989163cafe9af5816a8fe978aae61590b2374fa3eb153e06140a1bba2f1b64736f6c63430008140033", + Bin: "0x608060405234801561001057600080fd5b50338061003757604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61004081610046565b50610096565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611002806100a56000396000f3fe6080604052600436106100b55760003560e01c80638da5cb5b1161006957806399a3ad211161004e57806399a3ad2114610269578063b1454caa14610289578063f2fde38b146102c257610129565b80638da5cb5b146102215780639730886d1461024957610129565b8063346633fb1161009a578063346633fb146101d957806336d2da90146101ec578063715018a61461020c57610129565b80630fcfbd111461017657806333a88c72146101a957610129565b36610129576040517f346633fb0000000000000000000000000000000000000000000000000000000081523360048201523460248201819052309163346633fb91906044016000604051808303818588803b15801561011357600080fd5b505af1158015610127573d6000803e3d6000fd5b005b60405162461bcd60e51b815260206004820152600b60248201527f756e737570706f7274656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b34801561018257600080fd5b50610196610191366004610945565b6102e2565b6040519081526020015b60405180910390f35b3480156101b557600080fd5b506101c96101c4366004610945565b610398565b60405190151581526020016101a0565b6101276101e736600461098f565b6103eb565b3480156101f857600080fd5b506101276102073660046109bb565b6104b7565b34801561021857600080fd5b50610127610566565b34801561022d57600080fd5b506000546040516001600160a01b0390911681526020016101a0565b34801561025557600080fd5b506101276102643660046109d8565b61057a565b34801561027557600080fd5b5061012761028436600461098f565b6106cc565b34801561029557600080fd5b506102a96102a4366004610a4e565b61077c565b60405167ffffffffffffffff90911681526020016101a0565b3480156102ce57600080fd5b506101276102dd3660046109bb565b6107d5565b600080826040516020016102f69190610b3a565b60408051601f19818403018152918152815160209283012060008181526001909352912054909150806103915760405162461bcd60e51b815260206004820152602160248201527f54686973206d65737361676520776173206e65766572207375626d697474656460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015260840161016d565b9392505050565b600080826040516020016103ac9190610b3a565b60408051601f1981840301815291815281516020928301206000818152600190935291205490915080158015906103e35750428111155b949350505050565b6000341180156103fa57508034145b61046c5760405162461bcd60e51b815260206004820152603060248201527f417474656d7074696e6720746f2073656e642076616c756520776974686f757460448201527f2070726f766964696e6720457468657200000000000000000000000000000000606482015260840161016d565b604080513381526001600160a01b0384166020820152348183015290517ff1365f826a788d6c1a955db0eed5ba8642674219c4771f8c65918617511a15609181900360600190a15050565b6104bf61082c565b6000816001600160a01b03164760405160006040518083038185875af1925050503d806000811461050c576040519150601f19603f3d011682016040523d82523d6000602084013e610511565b606091505b50509050806105625760405162461bcd60e51b815260206004820152601460248201527f6661696c65642073656e64696e672076616c7565000000000000000000000000604482015260640161016d565b5050565b61056e61082c565b6105786000610872565b565b61058261082c565b600061058e8242610c3b565b90506000836040516020016105a39190610b3a565b60408051601f198184030181529181528151602092830120600081815260019093529120549091501561063e5760405162461bcd60e51b815260206004820152602160248201527f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636560448201527f2100000000000000000000000000000000000000000000000000000000000000606482015260840161016d565b6000818152600160209081526040822084905560029190610661908701876109bb565b6001600160a01b03168152602081019190915260400160009081209061068d6080870160608801610c54565b63ffffffff168152602080820192909252604001600090812080546001810182559082529190208591600402016106c48282610e2a565b505050505050565b6106d461082c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610721576040519150601f19603f3d011682016040523d82523d6000602084013e610726565b606091505b50509050806107775760405162461bcd60e51b815260206004820152601460248201527f6661696c65642073656e64696e672076616c7565000000000000000000000000604482015260640161016d565b505050565b6000610787336108cf565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef775937338288888888886040516107c49796959493929190610f44565b60405180910390a195945050505050565b6107dd61082c565b6001600160a01b038116610820576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526000600482015260240161016d565b61082981610872565b50565b6000546001600160a01b03163314610578576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161016d565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166000908152600360205260408120805467ffffffffffffffff1691600191906109028385610fa4565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b600060c0828403121561093f57600080fd5b50919050565b60006020828403121561095757600080fd5b813567ffffffffffffffff81111561096e57600080fd5b6103e38482850161092d565b6001600160a01b038116811461082957600080fd5b600080604083850312156109a257600080fd5b82356109ad8161097a565b946020939093013593505050565b6000602082840312156109cd57600080fd5b81356103918161097a565b600080604083850312156109eb57600080fd5b823567ffffffffffffffff811115610a0257600080fd5b610a0e8582860161092d565b95602094909401359450505050565b63ffffffff8116811461082957600080fd5b60ff8116811461082957600080fd5b8035610a4981610a2f565b919050565b600080600080600060808688031215610a6657600080fd5b8535610a7181610a1d565b94506020860135610a8181610a1d565b9350604086013567ffffffffffffffff80821115610a9e57600080fd5b818801915088601f830112610ab257600080fd5b813581811115610ac157600080fd5b896020828501011115610ad357600080fd5b6020830195508094505050506060860135610aed81610a2f565b809150509295509295909350565b67ffffffffffffffff8116811461082957600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260008235610b4b8161097a565b6001600160a01b0381166020840152506020830135610b6981610afb565b67ffffffffffffffff808216604085015260408501359150610b8a82610a1d565b63ffffffff808316606086015260608601359250610ba783610a1d565b80831660808601525060808501359150601e19853603018212610bc957600080fd5b6020918501918201913581811115610be057600080fd5b803603831315610bef57600080fd5b60c060a0860152610c0460e086018285610b11565b92505050610c1460a08501610a3e565b60ff811660c0850152509392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c4e57610c4e610c25565b92915050565b600060208284031215610c6657600080fd5b813561039181610a1d565b60008135610c4e81610a1d565b6000808335601e19843603018112610c9557600080fd5b83018035915067ffffffffffffffff821115610cb057600080fd5b602001915036819003821315610cc557600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680610cf657607f821691505b60208210810361093f57634e487b7160e01b600052602260045260246000fd5b601f82111561077757600081815260208120601f850160051c81016020861015610d3d5750805b601f850160051c820191505b818110156106c457828155600101610d49565b67ffffffffffffffff831115610d7457610d74610ccc565b610d8883610d828354610ce2565b83610d16565b6000601f841160018114610dbc5760008515610da45750838201355b600019600387901b1c1916600186901b178355610e16565b600083815260209020601f19861690835b82811015610ded5786850135825560209485019460019092019101610dcd565b5086821015610e0a5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60008135610c4e81610a2f565b8135610e358161097a565b6001600160a01b038116905081548173ffffffffffffffffffffffffffffffffffffffff1982161783556020840135610e6d81610afb565b7bffffffffffffffff00000000000000000000000000000000000000008160a01b1690507fffffffff0000000000000000000000000000000000000000000000000000000081848285161717855560408601359250610ecb83610a1d565b921760e09190911b909116178155610f03610ee860608401610c71565b6001830163ffffffff821663ffffffff198254161781555050565b610f106080830183610c7e565b610f1e818360028601610d5c565b5050610562610f2f60a08401610e1d565b6003830160ff821660ff198254161781555050565b6001600160a01b038816815267ffffffffffffffff87166020820152600063ffffffff808816604084015280871660608401525060c06080830152610f8d60c083018587610b11565b905060ff831660a083015298975050505050505050565b67ffffffffffffffff818116838216019080821115610fc557610fc5610c25565b509291505056fea2646970667358221220bf1d60e3428c04ea6757da5786796ba3e18c5c9e196fa40928db0557ff27620f64736f6c63430008140033", } // MessageBusABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ObsERC20/ObsERC20.go b/contracts/generated/ObsERC20/ObsERC20.go index b33f30c74f..ebd9c97c6e 100644 --- a/contracts/generated/ObsERC20/ObsERC20.go +++ b/contracts/generated/ObsERC20/ObsERC20.go @@ -32,7 +32,7 @@ var ( // ObsERC20MetaData contains all meta data concerning the ObsERC20 contract. var ObsERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f317905534801562000036575f80fd5b5060405162000c0538038062000c05833981016040819052620000599162000141565b8181600362000069838262000233565b50600462000078828262000233565b5050505050620002fb565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112620000a7575f80fd5b81516001600160401b0380821115620000c457620000c462000083565b604051601f8301601f19908116603f01168101908282118183101715620000ef57620000ef62000083565b816040528381526020925086838588010111156200010b575f80fd5b5f91505b838210156200012e57858201830151818301840152908201906200010f565b5f93810190920192909252949350505050565b5f806040838503121562000153575f80fd5b82516001600160401b03808211156200016a575f80fd5b620001788683870162000097565b935060208501519150808211156200018e575f80fd5b506200019d8582860162000097565b9150509250929050565b600181811c90821680620001bc57607f821691505b602082108103620001db57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200022e575f81815260208120601f850160051c81016020861015620002095750805b601f850160051c820191505b818110156200022a5782815560010162000215565b5050505b505050565b81516001600160401b038111156200024f576200024f62000083565b6200026781620002608454620001a7565b84620001e1565b602080601f8311600181146200029d575f8415620002855750858301515b5f19600386901b1c1916600185901b1785556200022a565b5f85815260208120601f198616915b82811015620002cd57888601518255948401946001909101908401620002ac565b5085821015620002eb57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6108fc80620003095f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063313ce5671161007257806395d89b411161005857806395d89b411461012b578063a9059cbb14610133578063dd62ed3e14610146575f80fd5b8063313ce5671461010957806370a0823114610118575f80fd5b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100e457806323b872dd146100f6575b5f80fd5b6100ab610159565b6040516100b89190610757565b60405180910390f35b6100d46100cf3660046107bd565b6101e9565b60405190151581526020016100b8565b6002545b6040519081526020016100b8565b6100d46101043660046107e5565b610202565b604051601281526020016100b8565b6100e861012636600461081e565b610225565b6100ab6102cd565b6100d46101413660046107bd565b6102dc565b6100e861015436600461083e565b6102e9565b6060600380546101689061086f565b80601f01602080910402602001604051908101604052809291908181526020018280546101949061086f565b80156101df5780601f106101b6576101008083540402835291602001916101df565b820191905f5260205f20905b8154815290600101906020018083116101c257829003601f168201915b5050505050905090565b5f336101f68185856103f7565b60019150505b92915050565b5f3361020f858285610409565b61021a858585610485565b506001949350505050565b5f6001600160a01b0382163203610253576001600160a01b0382165f908152602081905260409020546101fc565b6001600160a01b0382163303610280576001600160a01b0382165f908152602081905260409020546101fc565b60405162461bcd60e51b815260206004820152601f60248201527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650060448201526064015b60405180910390fd5b6060600480546101689061086f565b5f336101f6818585610485565b5f326001600160a01b03841614806103095750326001600160a01b038316145b1561033b576001600160a01b038084165f908152600160209081526040808320938616835292905220545b90506101fc565b336001600160a01b038416148061035a5750336001600160a01b038316145b15610389576001600160a01b038084165f90815260016020908152604080832093861683529290522054610334565b60405162461bcd60e51b815260206004820152602160248201527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016102c4565b6104048383836001610514565b505050565b5f61041484846102e9565b90505f19811461047f5781811015610471576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016102c4565b61047f84848484035f610514565b50505050565b6001600160a01b0383166104c7576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016102c4565b6001600160a01b038216610509576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016102c4565b610404838383610618565b6001600160a01b038416610556576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016102c4565b6001600160a01b038316610598576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016102c4565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561047f57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060a91815260200190565b60405180910390a350505050565b6001600160a01b038316610642578060025f82825461063791906108a7565b909155506106cb9050565b6001600160a01b0383165f90815260208190526040902054818110156106ad576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101829052604481018390526064016102c4565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166106e757600280548290039055610705565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161074a91815260200190565b60405180910390a3505050565b5f6020808352835180828501525f5b8181101561078257858101830151858201604001528201610766565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107b8575f80fd5b919050565b5f80604083850312156107ce575f80fd5b6107d7836107a2565b946020939093013593505050565b5f805f606084860312156107f7575f80fd5b610800846107a2565b925061080e602085016107a2565b9150604084013590509250925092565b5f6020828403121561082e575f80fd5b610837826107a2565b9392505050565b5f806040838503121561084f575f80fd5b610858836107a2565b9150610866602084016107a2565b90509250929050565b600181811c9082168061088357607f821691505b6020821081036108a157634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156101fc57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220ee5ed205aebde9bd99bcfce3cb969833ce42c8b5553fdc7a2c86922f8e738a3964736f6c63430008140033", + Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162000c4738038062000c478339810160408190526200005a9162000149565b818160036200006a838262000242565b50600462000079828262000242565b50505050506200030e565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000ac57600080fd5b81516001600160401b0380821115620000c957620000c962000084565b604051601f8301601f19908116603f01168101908282118183101715620000f457620000f462000084565b816040528381526020925086838588010111156200011157600080fd5b600091505b8382101562000135578582018301518183018401529082019062000116565b600093810190920192909252949350505050565b600080604083850312156200015d57600080fd5b82516001600160401b03808211156200017557600080fd5b62000183868387016200009a565b935060208501519150808211156200019a57600080fd5b50620001a9858286016200009a565b9150509250929050565b600181811c90821680620001c857607f821691505b602082108103620001e957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200023d57600081815260208120601f850160051c81016020861015620002185750805b601f850160051c820191505b81811015620002395782815560010162000224565b5050505b505050565b81516001600160401b038111156200025e576200025e62000084565b62000276816200026f8454620001b3565b84620001ef565b602080601f831160018114620002ae5760008415620002955750858301515b600019600386901b1c1916600185901b17855562000239565b600085815260208120601f198616915b82811015620002df57888601518255948401946001909101908401620002be565b5085821015620002fe5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610929806200031e6000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b4114610130578063a9059cbb14610138578063dd62ed3e1461014b57600080fd5b8063313ce5671461010e57806370a082311461011d57600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e957806323b872dd146100fb575b600080fd5b6100b061015e565b6040516100bd9190610773565b60405180910390f35b6100d96100d43660046107dd565b6101f0565b60405190151581526020016100bd565b6002545b6040519081526020016100bd565b6100d9610109366004610807565b61020a565b604051601281526020016100bd565b6100ed61012b366004610843565b61022e565b6100b06102d9565b6100d96101463660046107dd565b6102e8565b6100ed610159366004610865565b6102f6565b60606003805461016d90610898565b80601f016020809104026020016040519081016040528092919081815260200182805461019990610898565b80156101e65780601f106101bb576101008083540402835291602001916101e6565b820191906000526020600020905b8154815290600101906020018083116101c957829003601f168201915b5050505050905090565b6000336101fe818585610407565b60019150505b92915050565b600033610218858285610419565b610223858585610498565b506001949350505050565b60006001600160a01b038216320361025e576001600160a01b038216600090815260208190526040902054610204565b6001600160a01b038216330361028c576001600160a01b038216600090815260208190526040902054610204565b60405162461bcd60e51b815260206004820152601f60248201527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650060448201526064015b60405180910390fd5b60606004805461016d90610898565b6000336101fe818585610498565b6000326001600160a01b03841614806103175750326001600160a01b038316145b1561034a576001600160a01b038084166000908152600160209081526040808320938616835292905220545b9050610204565b336001600160a01b03841614806103695750336001600160a01b038316145b15610399576001600160a01b03808416600090815260016020908152604080832093861683529290522054610343565b60405162461bcd60e51b815260206004820152602160248201527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016102d0565b6104148383836001610529565b505050565b600061042584846102f6565b905060001981146104925781811015610483576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016102d0565b61049284848484036000610529565b50505050565b6001600160a01b0383166104db576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016102d0565b6001600160a01b03821661051e576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016102d0565b610414838383610630565b6001600160a01b03841661056c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016102d0565b6001600160a01b0383166105af576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016102d0565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561049257826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161062291815260200190565b60405180910390a350505050565b6001600160a01b03831661065b57806002600082825461065091906108d2565b909155506106e69050565b6001600160a01b038316600090815260208190526040902054818110156106c7576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101829052604481018390526064016102d0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661070257600280548290039055610721565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161076691815260200190565b60405180910390a3505050565b600060208083528351808285015260005b818110156107a057858101830151858201604001528201610784565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107d857600080fd5b919050565b600080604083850312156107f057600080fd5b6107f9836107c1565b946020939093013593505050565b60008060006060848603121561081c57600080fd5b610825846107c1565b9250610833602085016107c1565b9150604084013590509250925092565b60006020828403121561085557600080fd5b61085e826107c1565b9392505050565b6000806040838503121561087857600080fd5b610881836107c1565b915061088f602084016107c1565b90509250929050565b600181811c908216806108ac57607f821691505b6020821081036108cc57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561020457634e487b7160e01b600052601160045260246000fdfea26469706673582212208662842705313f18d545cbf80eaa76650666e87da6a5ebe4efbe0d4a14c7362a64736f6c63430008140033", } // ObsERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ObscuroBridge/ObscuroBridge.go b/contracts/generated/ObscuroBridge/ObscuroBridge.go index e4b61ac875..02338cd41e 100644 --- a/contracts/generated/ObscuroBridge/ObscuroBridge.go +++ b/contracts/generated/ObscuroBridge/ObscuroBridge.go @@ -32,7 +32,7 @@ var ( // ObscuroBridgeMetaData contains all meta data concerning the ObscuroBridge contract. var ObscuroBridgeMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20_TOKEN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_TOKEN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messengerAddress\",\"type\":\"address\"}],\"name\":\"configure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"promoteToAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"receiveAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"removeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendNative\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bridge\",\"type\":\"address\"}],\"name\":\"setRemoteBridge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"asset\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"whitelistToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60806040526001805463ffffffff60a01b1916905534801561001f575f80fd5b506118cf8061002d5f395ff3fe60806040526004361061013d575f3560e01c806375b238fc116100bb578063a217fddf11610071578063c4d66de811610057578063c4d66de81461039a578063d547741f146103b9578063e4c3ebc7146103d8575f80fd5b8063a217fddf14610368578063a381c8e21461037b575f80fd5b806383bece4d116100a157806383bece4d146102e657806391d148541461030557806393b3744214610349575f80fd5b806375b238fc1461029457806375cb2672146102c7575f80fd5b80632f2ff15d11610110578063498d82ab116100f6578063498d82ab146102235780635d872970146102425780635fa7b58414610275575f80fd5b80632f2ff15d146101e557806336568abe14610204575f80fd5b806301ffc9a71461014157806316ce8149146101755780631888d71214610196578063248a9ca3146101a9575b5f80fd5b34801561014c575f80fd5b5061016061015b366004611504565b61040b565b60405190151581526020015b60405180910390f35b348015610180575f80fd5b5061019461018f36600461153f565b610473565b005b6101946101a436600461153f565b6104cd565b3480156101b4575f80fd5b506101d76101c336600461155a565b5f9081526002602052604090206001015490565b60405190815260200161016c565b3480156101f0575f80fd5b506101946101ff366004611571565b610600565b34801561020f575f80fd5b5061019461021e366004611571565b61062a565b34801561022e575f80fd5b5061019461023d3660046115e4565b61067b565b34801561024d575f80fd5b506101d77f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a81565b348015610280575f80fd5b5061019461028f36600461153f565b61073f565b34801561029f575f80fd5b506101d77fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b3480156102d2575f80fd5b506101946102e136600461153f565b610793565b3480156102f1575f80fd5b50610194610300366004611661565b61086b565b348015610310575f80fd5b5061016061031f366004611571565b5f9182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b348015610354575f80fd5b5061019461036336600461153f565b610a84565b348015610373575f80fd5b506101d75f81565b348015610386575f80fd5b50610194610395366004611661565b610ad8565b3480156103a5575f80fd5b506101946103b436600461153f565b610c82565b3480156103c4575f80fd5b506101946103d3366004611571565b610e13565b3480156103e3575f80fd5b506101d77fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad211057881565b5f6001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061046d57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561049d81610e37565b506003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f34116105215760405162461bcd60e51b815260206004820152600f60248201527f456d707479207472616e736665722e000000000000000000000000000000000060448201526064015b60405180910390fd5b604080518082018252348082526001600160a01b03848116602093840190815284519384019290925290518116828401528251808303840181526060909201909252600354909161057891168260025b5f80610e44565b6001546001600160a01b03166040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152346024830181905292169163346633fb916044015f604051808303818588803b1580156105e5575f80fd5b505af11580156105f7573d5f803e3d5ffd5b50505050505050565b5f8281526002602052604090206001015461061a81610e37565b6106248383610f4c565b50505050565b6001600160a01b038116331461066c576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106768282610ff7565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756106a581610e37565b6106cf7f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a87610f4c565b505f63458ffd6360e01b87878787876040516024016106f29594939291906116c8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526003549091506105f7906001600160a01b0316826001610571565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561076981610e37565b6106767f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a83610ff7565b61079b61107c565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa158015610817573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083b9190611709565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6003545f546001600160a01b03918216911633146108f15760405162461bcd60e51b815260206004820152603060248201527f436f6e74726163742063616c6c6572206973206e6f742074686520726567697360448201527f7465726564206d657373656e67657221000000000000000000000000000000006064820152608401610518565b806001600160a01b03166109036110e5565b6001600160a01b03161461097f5760405162461bcd60e51b815260206004820152603160248201527f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2060448201527f696e636f72726563742073656e646572210000000000000000000000000000006064820152608401610518565b6001600160a01b0384165f9081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16156109ce576109c984848461115e565b610624565b6001600160a01b0384165f9081527f13ad2d85210d477fe1a6e25654c8250308cf29b050a4bf0b039d70467486712c602052604090205460ff1615610a16576109c982611169565b60405162461bcd60e51b815260206004820152602560248201527f417474656d7074696e6720746f20776974686472617720756e6b6e6f776e206160448201527f737365742e0000000000000000000000000000000000000000000000000000006064820152608401610518565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610aae81610e37565b6106767fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583610f4c565b5f8211610b275760405162461bcd60e51b815260206004820152601a60248201527f417474656d7074696e6720656d707479207472616e736665722e0000000000006044820152606401610518565b6001600160a01b0383165f9081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16610bf95760405162461bcd60e51b815260206004820152604e60248201527f54686973206164647265737320686173206e6f74206265656e20676976656e2060448201527f61207479706520616e64206973207468757320636f6e73696465726564206e6f60648201527f742077686974656c69737465642e000000000000000000000000000000000000608482015260a401610518565b610c0583333085611208565b604080516001600160a01b038581166024830152604482018590528381166064808401919091528351808403909101815260849092019092526020810180516001600160e01b03167f83bece4d0000000000000000000000000000000000000000000000000000000017905260035490916106249116825f610571565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610ccc5750825b90505f8267ffffffffffffffff166001148015610ce85750303b155b905081158015610cf6575080155b15610d2d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d6157845468ff00000000000000001916680100000000000000001785555b610d6a86610793565b610d947fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610f4c565b50610dbf7fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad21105785f610f4c565b508315610e0b57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f82815260026020526040902060010154610e2d81610e37565b6106248383610ff7565b610e41813361126f565b50565b5f6040518060600160405280876001600160a01b0316815260200186815260200184815250604051602001610e799190611771565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff16906014610ecc836117b5565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b8152600401610f0c94939291906117fc565b6020604051808303815f875af1158015610f28573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f79190611838565b5f8281526002602090815260408083206001600160a01b038516845290915281205460ff16610ff0575f8381526002602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610fa83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161046d565b505f61046d565b5f8281526002602090815260408083206001600160a01b038516845290915281205460ff1615610ff0575f8381526002602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161046d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166110e3576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f805f9054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611135573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111599190611709565b905090565b6106768382846112dc565b6040515f906001600160a01b038316908281818181865af19150503d805f81146111ae576040519150601f19603f3d011682016040523d82523d5f602084013e6111b3565b606091505b50509050806112045760405162461bcd60e51b815260206004820152601460248201527f4661696c656420746f2073656e642045746865720000000000000000000000006044820152606401610518565b5050565b6040516001600160a01b0384811660248301528381166044830152606482018390526106249186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061130d565b5f8281526002602090815260408083206001600160a01b038516845290915290205460ff16611204576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610518565b6040516001600160a01b0383811660248301526044820183905261067691859182169063a9059cbb9060640161123d565b5f6113216001600160a01b03841683611387565b905080515f14158015611345575080806020019051810190611343919061185f565b155b15610676576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610518565b606061139483835f61139b565b9392505050565b6060814710156113d9576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610518565b5f80856001600160a01b031684866040516113f4919061187e565b5f6040518083038185875af1925050503d805f811461142e576040519150601f19603f3d011682016040523d82523d5f602084013e611433565b606091505b509150915061144386838361144d565b9695505050505050565b6060826114625761145d826114c2565b611394565b815115801561147957506001600160a01b0384163b155b156114bb576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610518565b5080611394565b8051156114d25780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60208284031215611514575f80fd5b81356001600160e01b031981168114611394575f80fd5b6001600160a01b0381168114610e41575f80fd5b5f6020828403121561154f575f80fd5b81356113948161152b565b5f6020828403121561156a575f80fd5b5035919050565b5f8060408385031215611582575f80fd5b8235915060208301356115948161152b565b809150509250929050565b5f8083601f8401126115af575f80fd5b50813567ffffffffffffffff8111156115c6575f80fd5b6020830191508360208285010111156115dd575f80fd5b9250929050565b5f805f805f606086880312156115f8575f80fd5b85356116038161152b565b9450602086013567ffffffffffffffff8082111561161f575f80fd5b61162b89838a0161159f565b90965094506040880135915080821115611643575f80fd5b506116508882890161159f565b969995985093965092949392505050565b5f805f60608486031215611673575f80fd5b833561167e8161152b565b92506020840135915060408401356116958161152b565b809150509250925092565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b0386168152606060208201525f6116ea6060830186886116a0565b82810360408401526116fd8185876116a0565b98975050505050505050565b5f60208284031215611719575f80fd5b81516113948161152b565b5f5b8381101561173e578181015183820152602001611726565b50505f910152565b5f815180845261175d816020860160208601611724565b601f01601f19169290920160200192915050565b602081526001600160a01b0382511660208201525f60208301516060604084015261179f6080840182611746565b9050604084015160608401528091505092915050565b5f63ffffffff8083168181036117f2577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6001019392505050565b5f63ffffffff8087168352808616602084015250608060408301526118246080830185611746565b905060ff8316606083015295945050505050565b5f60208284031215611848575f80fd5b815167ffffffffffffffff81168114611394575f80fd5b5f6020828403121561186f575f80fd5b81518015158114611394575f80fd5b5f825161188f818460208701611724565b919091019291505056fea2646970667358221220eb300a1f32731fc01883edb9fd7062b4cbe7d428f2f0a0bc9f4267f6a53a009e64736f6c63430008140033", + Bin: "0x60806040526001805463ffffffff60a01b1916905534801561002057600080fd5b50611944806100306000396000f3fe6080604052600436106101445760003560e01c806375b238fc116100c0578063a217fddf11610074578063c4d66de811610059578063c4d66de8146103b4578063d547741f146103d4578063e4c3ebc7146103f457600080fd5b8063a217fddf1461037f578063a381c8e21461039457600080fd5b806383bece4d116100a557806383bece4d146102f957806391d148541461031957806393b374421461035f57600080fd5b806375b238fc146102a557806375cb2672146102d957600080fd5b80632f2ff15d11610117578063498d82ab116100fc578063498d82ab146102315780635d872970146102515780635fa7b5841461028557600080fd5b80632f2ff15d146101f157806336568abe1461021157600080fd5b806301ffc9a71461014957806316ce81491461017e5780631888d712146101a0578063248a9ca3146101b3575b600080fd5b34801561015557600080fd5b5061016961016436600461154f565b610428565b60405190151581526020015b60405180910390f35b34801561018a57600080fd5b5061019e61019936600461158e565b610491565b005b61019e6101ae36600461158e565b6104eb565b3480156101bf57600080fd5b506101e36101ce3660046115ab565b60009081526002602052604090206001015490565b604051908152602001610175565b3480156101fd57600080fd5b5061019e61020c3660046115c4565b610624565b34801561021d57600080fd5b5061019e61022c3660046115c4565b61064f565b34801561023d57600080fd5b5061019e61024c36600461163d565b6106a0565b34801561025d57600080fd5b506101e37f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a81565b34801561029157600080fd5b5061019e6102a036600461158e565b610765565b3480156102b157600080fd5b506101e37fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b3480156102e557600080fd5b5061019e6102f436600461158e565b6107b9565b34801561030557600080fd5b5061019e6103143660046116c0565b610894565b34801561032557600080fd5b506101696103343660046115c4565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561036b57600080fd5b5061019e61037a36600461158e565b610ab0565b34801561038b57600080fd5b506101e3600081565b3480156103a057600080fd5b5061019e6103af3660046116c0565b610b04565b3480156103c057600080fd5b5061019e6103cf36600461158e565b610cb1565b3480156103e057600080fd5b5061019e6103ef3660046115c4565b610e45565b34801561040057600080fd5b506101e37fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad211057881565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061048b57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756104bb81610e6a565b506003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600034116105405760405162461bcd60e51b815260206004820152600f60248201527f456d707479207472616e736665722e000000000000000000000000000000000060448201526064015b60405180910390fd5b604080518082018252348082526001600160a01b03848116602093840190815284519384019290925290518116828401528251808303840181526060909201909252600354909161059891168260025b600080610e77565b6001546001600160a01b03166040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152346024830181905292169163346633fb916044016000604051808303818588803b15801561060757600080fd5b505af115801561061b573d6000803e3d6000fd5b50505050505050565b60008281526002602052604090206001015461063f81610e6a565b6106498383610f83565b50505050565b6001600160a01b0381163314610691576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61069b8282611031565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756106ca81610e6a565b6106f47f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a87610f83565b50600063458ffd6360e01b878787878760405160240161071895949392919061172b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915260035490915061061b906001600160a01b0316826001610590565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561078f81610e6a565b61069b7f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a83611031565b6107c16110b8565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa158015610840573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610864919061176d565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6003546000546001600160a01b039182169116331461091b5760405162461bcd60e51b815260206004820152603060248201527f436f6e74726163742063616c6c6572206973206e6f742074686520726567697360448201527f7465726564206d657373656e67657221000000000000000000000000000000006064820152608401610537565b806001600160a01b031661092d611121565b6001600160a01b0316146109a95760405162461bcd60e51b815260206004820152603160248201527f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2060448201527f696e636f72726563742073656e646572210000000000000000000000000000006064820152608401610537565b6001600160a01b03841660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16156109f9576109f484848461119e565b610649565b6001600160a01b03841660009081527f13ad2d85210d477fe1a6e25654c8250308cf29b050a4bf0b039d70467486712c602052604090205460ff1615610a42576109f4826111a9565b60405162461bcd60e51b815260206004820152602560248201527f417474656d7074696e6720746f20776974686472617720756e6b6e6f776e206160448201527f737365742e0000000000000000000000000000000000000000000000000000006064820152608401610537565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610ada81610e6a565b61069b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583610f83565b60008211610b545760405162461bcd60e51b815260206004820152601a60248201527f417474656d7074696e6720656d707479207472616e736665722e0000000000006044820152606401610537565b6001600160a01b03831660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16610c275760405162461bcd60e51b815260206004820152604e60248201527f54686973206164647265737320686173206e6f74206265656e20676976656e2060448201527f61207479706520616e64206973207468757320636f6e73696465726564206e6f60648201527f742077686974656c69737465642e000000000000000000000000000000000000608482015260a401610537565b610c338333308561124b565b604080516001600160a01b038581166024830152604482018590528381166064808401919091528351808403909101815260849092019092526020810180516001600160e01b03167f83bece4d0000000000000000000000000000000000000000000000000000000017905260035490916106499116826000610590565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610cfc5750825b905060008267ffffffffffffffff166001148015610d195750303b155b905081158015610d27575080155b15610d5e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d9257845468ff00000000000000001916680100000000000000001785555b610d9b866107b9565b610dc57fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610f83565b50610df17fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad21105786000610f83565b508315610e3d57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600082815260026020526040902060010154610e6081610e6a565b6106498383611031565b610e7481336112b2565b50565b60006040518060600160405280876001600160a01b0316815260200186815260200184815250604051602001610ead91906117da565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa917401000000000000000000000000000000000000000090910463ffffffff16906014610f008361181f565b91906101000a81548163ffffffff021916908363ffffffff1602179055508684866040518563ffffffff1660e01b8152600401610f409493929190611869565b6020604051808303816000875af1158015610f5f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061b91906118a6565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff166110295760008381526002602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610fe13390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161048b565b50600061048b565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff16156110295760008381526002602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161048b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661111f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611175573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611199919061176d565b905090565b61069b838284611320565b6040516000906001600160a01b038316908281818181865af19150503d80600081146111f1576040519150601f19603f3d011682016040523d82523d6000602084013e6111f6565b606091505b50509050806112475760405162461bcd60e51b815260206004820152601460248201527f4661696c656420746f2073656e642045746865720000000000000000000000006044820152606401610537565b5050565b6040516001600160a01b0384811660248301528381166044830152606482018390526106499186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611351565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff16611247576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610537565b6040516001600160a01b0383811660248301526044820183905261069b91859182169063a9059cbb90606401611280565b60006113666001600160a01b038416836113cd565b9050805160001415801561138b57508080602001905181019061138991906118d0565b155b1561069b576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610537565b60606113db838360006113e2565b9392505050565b606081471015611420576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610537565b600080856001600160a01b0316848660405161143c91906118f2565b60006040518083038185875af1925050503d8060008114611479576040519150601f19603f3d011682016040523d82523d6000602084013e61147e565b606091505b509150915061148e868383611498565b9695505050505050565b6060826114ad576114a88261150d565b6113db565b81511580156114c457506001600160a01b0384163b155b15611506576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610537565b50806113db565b80511561151d5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561156157600080fd5b81356001600160e01b0319811681146113db57600080fd5b6001600160a01b0381168114610e7457600080fd5b6000602082840312156115a057600080fd5b81356113db81611579565b6000602082840312156115bd57600080fd5b5035919050565b600080604083850312156115d757600080fd5b8235915060208301356115e981611579565b809150509250929050565b60008083601f84011261160657600080fd5b50813567ffffffffffffffff81111561161e57600080fd5b60208301915083602082850101111561163657600080fd5b9250929050565b60008060008060006060868803121561165557600080fd5b853561166081611579565b9450602086013567ffffffffffffffff8082111561167d57600080fd5b61168989838a016115f4565b909650945060408801359150808211156116a257600080fd5b506116af888289016115f4565b969995985093965092949392505050565b6000806000606084860312156116d557600080fd5b83356116e081611579565b92506020840135915060408401356116f781611579565b809150509250925092565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038616815260606020820152600061174e606083018688611702565b8281036040840152611761818587611702565b98975050505050505050565b60006020828403121561177f57600080fd5b81516113db81611579565b60005b838110156117a557818101518382015260200161178d565b50506000910152565b600081518084526117c681602086016020860161178a565b601f01601f19169290920160200192915050565b602081526001600160a01b038251166020820152600060208301516060604084015261180960808401826117ae565b9050604084015160608401528091505092915050565b600063ffffffff80831681810361185f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6001019392505050565b600063ffffffff80871683528086166020840152506080604083015261189260808301856117ae565b905060ff8316606083015295945050505050565b6000602082840312156118b857600080fd5b815167ffffffffffffffff811681146113db57600080fd5b6000602082840312156118e257600080fd5b815180151581146113db57600080fd5b6000825161190481846020870161178a565b919091019291505056fea2646970667358221220b6da03d923071fdb64d4c34500251f0e4c8373e99c7304b82e92aad962239c9b64736f6c63430008140033", } // ObscuroBridgeABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/WrappedERC20/WrappedERC20.go b/contracts/generated/WrappedERC20/WrappedERC20.go index b74ae34fc5..4fef35b29c 100644 --- a/contracts/generated/WrappedERC20/WrappedERC20.go +++ b/contracts/generated/WrappedERC20/WrappedERC20.go @@ -32,7 +32,7 @@ var ( // WrappedERC20MetaData contains all meta data concerning the WrappedERC20 contract. var WrappedERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"giver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"issueFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f317905534801562000036575f80fd5b50604051620012d3380380620012d3833981016040819052620000599162000228565b8181818160036200006b83826200031a565b5060046200007a82826200031a565b5050505050620000b17fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000ba60201b60201c565b505050620003e2565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff1662000161575f8381526007602090815260408083206001600160a01b03861684529091529020805460ff19166001179055620001183390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000164565b505f5b92915050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200018e575f80fd5b81516001600160401b0380821115620001ab57620001ab6200016a565b604051601f8301601f19908116603f01168101908282118183101715620001d657620001d66200016a565b81604052838152602092508683858801011115620001f2575f80fd5b5f91505b83821015620002155785820183015181830184015290820190620001f6565b5f93810190920192909252949350505050565b5f80604083850312156200023a575f80fd5b82516001600160401b038082111562000251575f80fd5b6200025f868387016200017e565b9350602085015191508082111562000275575f80fd5b5062000284858286016200017e565b9150509250929050565b600181811c90821680620002a357607f821691505b602082108103620002c257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000315575f81815260208120601f850160051c81016020861015620002f05750805b601f850160051c820191505b818110156200031157828155600101620002fc565b5050505b505050565b81516001600160401b038111156200033657620003366200016a565b6200034e816200034784546200028e565b84620002c8565b602080601f83116001811462000384575f84156200036c5750858301515b5f19600386901b1c1916600185901b17855562000311565b5f85815260208120601f198616915b82811015620003b45788860151825594840194600190910190840162000393565b5085821015620003d257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b610ee380620003f05f395ff3fe608060405234801561000f575f80fd5b5060043610610149575f3560e01c806336568abe116100c7578063979005ad1161007d578063a9059cbb11610063578063a9059cbb146102c2578063d547741f146102d5578063dd62ed3e146102e8575f80fd5b8063979005ad146102a8578063a217fddf146102bb575f80fd5b806375b238fc116100ad57806375b238fc1461024157806391d148541461026857806395d89b41146102a0575f80fd5b806336568abe1461021b57806370a082311461022e575f80fd5b80631dd319cb1161011c578063248a9ca311610102578063248a9ca3146101d75780632f2ff15d146101f9578063313ce5671461020c575f80fd5b80631dd319cb146101af57806323b872dd146101c4575f80fd5b806301ffc9a71461014d57806306fdde0314610175578063095ea7b31461018a57806318160ddd1461019d575b5f80fd5b61016061015b366004610cc7565b6102fb565b60405190151581526020015b60405180910390f35b61017d610393565b60405161016c9190610d0d565b610160610198366004610d73565b610423565b6002545b60405190815260200161016c565b6101c26101bd366004610d73565b61043a565b005b6101606101d2366004610d9b565b6104d0565b6101a16101e5366004610dd4565b5f9081526007602052604090206001015490565b6101c2610207366004610deb565b6104f3565b6040516012815260200161016c565b6101c2610229366004610deb565b61051d565b6101a161023c366004610e15565b610569565b6101a17fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610160610276366004610deb565b5f9182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61017d61060c565b6101c26102b6366004610d73565b61061b565b6101a15f81565b6101606102d0366004610d73565b61064f565b6101c26102e3366004610deb565b61065c565b6101a16102f6366004610e2e565b610680565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061038d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103a290610e56565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce90610e56565b80156104195780601f106103f057610100808354040283529160200191610419565b820191905f5260205f20905b8154815290600101906020018083116103fc57829003601f168201915b5050505050905090565b5f3361043081858561078e565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756104648161079b565b8161046e84610569565b10156104c15760405162461bcd60e51b815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e000000000000000000000060448201526064015b60405180910390fd5b6104cb83836107a8565b505050565b5f336104dd8582856107e0565b6104e8858585610856565b506001949350505050565b5f8281526007602052604090206001015461050d8161079b565b61051783836108b3565b50505050565b6001600160a01b038116331461055f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104cb828261095e565b5f6001600160a01b0382163203610597576001600160a01b0382165f9081526020819052604090205461038d565b6001600160a01b03821633036105c4576001600160a01b0382165f9081526020819052604090205461038d565b60405162461bcd60e51b815260206004820152601f60248201527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650060448201526064016104b8565b6060600480546103a290610e56565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756106458161079b565b6104cb83836109e3565b5f33610430818585610856565b5f828152600760205260409020600101546106768161079b565b610517838361095e565b5f326001600160a01b03841614806106a05750326001600160a01b038316145b156106d2576001600160a01b038084165f908152600160209081526040808320938616835292905220545b905061038d565b336001600160a01b03841614806106f15750336001600160a01b038316145b15610720576001600160a01b038084165f908152600160209081526040808320938616835292905220546106cb565b60405162461bcd60e51b815260206004820152602160248201527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016104b8565b6104cb8383836001610a17565b6107a58133610b1b565b50565b6001600160a01b0382166107d157604051634b637e8f60e11b81525f60048201526024016104b8565b6107dc825f83610b88565b5050565b5f6107eb8484610680565b90505f1981146105175781811015610848576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016104b8565b61051784848484035f610a17565b6001600160a01b03831661087f57604051634b637e8f60e11b81525f60048201526024016104b8565b6001600160a01b0382166108a85760405163ec442f0560e01b81525f60048201526024016104b8565b6104cb838383610b88565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff16610957575f8381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561090f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161038d565b505f61038d565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff1615610957575f8381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161038d565b6001600160a01b038216610a0c5760405163ec442f0560e01b81525f60048201526024016104b8565b6107dc5f8383610b88565b6001600160a01b038416610a59576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016104b8565b6001600160a01b038316610a9b576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016104b8565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561051757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b0d91815260200190565b60405180910390a350505050565b5f8281526007602090815260408083206001600160a01b038516845290915290205460ff166107dc576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602481018390526044016104b8565b6001600160a01b038316610bb2578060025f828254610ba79190610e8e565b90915550610c3b9050565b6001600160a01b0383165f9081526020819052604090205481811015610c1d576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101829052604481018390526064016104b8565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610c5757600280548290039055610c75565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cba91815260200190565b60405180910390a3505050565b5f60208284031215610cd7575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d06575f80fd5b9392505050565b5f6020808352835180828501525f5b81811015610d3857858101830151858201604001528201610d1c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610d6e575f80fd5b919050565b5f8060408385031215610d84575f80fd5b610d8d83610d58565b946020939093013593505050565b5f805f60608486031215610dad575f80fd5b610db684610d58565b9250610dc460208501610d58565b9150604084013590509250925092565b5f60208284031215610de4575f80fd5b5035919050565b5f8060408385031215610dfc575f80fd5b82359150610e0c60208401610d58565b90509250929050565b5f60208284031215610e25575f80fd5b610d0682610d58565b5f8060408385031215610e3f575f80fd5b610e4883610d58565b9150610e0c60208401610d58565b600181811c90821680610e6a57607f821691505b602082108103610e8857634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561038d57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220d78cf2dd9ecf4da03679034ab54dbc38a0748a2a50f13ee501925e8df4738b1264736f6c63430008140033", + Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f31790553480156200003757600080fd5b5060405162001333380380620013338339810160408190526200005a9162000233565b8181818160036200006c83826200032c565b5060046200007b82826200032c565b5050505050620000b27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620000bb60201b60201c565b505050620003f8565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16620001645760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200011b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000168565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200019657600080fd5b81516001600160401b0380821115620001b357620001b36200016e565b604051601f8301601f19908116603f01168101908282118183101715620001de57620001de6200016e565b81604052838152602092508683858801011115620001fb57600080fd5b600091505b838210156200021f578582018301518183018401529082019062000200565b600093810190920192909252949350505050565b600080604083850312156200024757600080fd5b82516001600160401b03808211156200025f57600080fd5b6200026d8683870162000184565b935060208501519150808211156200028457600080fd5b50620002938582860162000184565b9150509250929050565b600181811c90821680620002b257607f821691505b602082108103620002d357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200032757600081815260208120601f850160051c81016020861015620003025750805b601f850160051c820191505b8181101562000323578281556001016200030e565b5050505b505050565b81516001600160401b038111156200034857620003486200016e565b62000360816200035984546200029d565b84620002d9565b602080601f8311600181146200039857600084156200037f5750858301515b600019600386901b1c1916600185901b17855562000323565b600085815260208120601f198616915b82811015620003c957888601518255948401946001909101908401620003a8565b5085821015620003e85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610f2b80620004086000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017e578063095ea7b31461019357806318160ddd146101a6575b600080fd5b610169610164366004610cf7565b610307565b60405190151581526020015b60405180910390f35b6101866103a0565b6040516101759190610d40565b6101696101a1366004610daa565b610432565b6002545b604051908152602001610175565b6101cb6101c6366004610daa565b61044a565b005b6101696101db366004610dd4565b6104e0565b6101aa6101ee366004610e10565b60009081526007602052604090206001015490565b6101cb610211366004610e29565b610504565b60405160128152602001610175565b6101cb610233366004610e29565b61052f565b6101aa610246366004610e55565b61057b565b6101aa7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610e29565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610186610621565b6101cb6102c1366004610daa565b610630565b6101aa600081565b6101696102dc366004610daa565b610664565b6101cb6102ef366004610e29565b610672565b6101aa610302366004610e70565b610697565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e9a565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e9a565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856107a8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610474816107b5565b8161047e8461057b565b10156104d15760405162461bcd60e51b815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e000000000000000000000060448201526064015b60405180910390fd5b6104db83836107c2565b505050565b6000336104ee8582856107fc565b6104f9858585610875565b506001949350505050565b60008281526007602052604090206001015461051f816107b5565b61052983836108d4565b50505050565b6001600160a01b0381163314610571576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104db8282610982565b60006001600160a01b03821632036105ab576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105d9576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260206004820152601f60248201527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650060448201526064016104c8565b6060600480546103af90610e9a565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561065a816107b5565b6104db8383610a09565b600033610440818585610875565b60008281526007602052604090206001015461068d816107b5565b6105298383610982565b6000326001600160a01b03841614806106b85750326001600160a01b038316145b156106eb576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b038416148061070a5750336001600160a01b038316145b1561073a576001600160a01b038084166000908152600160209081526040808320938616835292905220546106e4565b60405162461bcd60e51b815260206004820152602160248201527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016104c8565b6104db8383836001610a3f565b6107bf8133610b46565b50565b6001600160a01b0382166107ec57604051634b637e8f60e11b8152600060048201526024016104c8565b6107f882600083610bb4565b5050565b60006108088484610697565b905060001981146105295781811015610866576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016104c8565b61052984848484036000610a3f565b6001600160a01b03831661089f57604051634b637e8f60e11b8152600060048201526024016104c8565b6001600160a01b0382166108c95760405163ec442f0560e01b8152600060048201526024016104c8565b6104db838383610bb4565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff1661097a5760008381526007602090815260408083206001600160a01b03861684529091529020805460ff191660011790556109323390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff161561097a5760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b038216610a335760405163ec442f0560e01b8152600060048201526024016104c8565b6107f860008383610bb4565b6001600160a01b038416610a82576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016104c8565b6001600160a01b038316610ac5576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016104c8565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561052957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b3891815260200190565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107f8576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602481018390526044016104c8565b6001600160a01b038316610bdf578060026000828254610bd49190610ed4565b90915550610c6a9050565b6001600160a01b03831660009081526020819052604090205481811015610c4b576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101829052604481018390526064016104c8565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610c8657600280548290039055610ca5565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cea91815260200190565b60405180910390a3505050565b600060208284031215610d0957600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d3957600080fd5b9392505050565b600060208083528351808285015260005b81811015610d6d57858101830151858201604001528201610d51565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610da557600080fd5b919050565b60008060408385031215610dbd57600080fd5b610dc683610d8e565b946020939093013593505050565b600080600060608486031215610de957600080fd5b610df284610d8e565b9250610e0060208501610d8e565b9150604084013590509250925092565b600060208284031215610e2257600080fd5b5035919050565b60008060408385031215610e3c57600080fd5b82359150610e4c60208401610d8e565b90509250929050565b600060208284031215610e6757600080fd5b610d3982610d8e565b60008060408385031215610e8357600080fd5b610e8c83610d8e565b9150610e4c60208401610d8e565b600181811c90821680610eae57607f821691505b602082108103610ece57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561039a57634e487b7160e01b600052601160045260246000fdfea264697066735822122073c661078daaaa94cd6d2de1a875ac8163912d81e7f2083db0bfdaf8c67f3fe564736f6c63430008140033", } // WrappedERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/package.json b/contracts/package.json index ebe6d77049..3d6c7bd2c3 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -13,7 +13,7 @@ "@nomicfoundation/hardhat-toolbox": "~2.0.0", "@openzeppelin/hardhat-upgrades": "^1.21.0", "@solidstate/hardhat-bytecode-exporter": "^1.1.1", - "hardhat": "~2.12.4", + "hardhat": "~2.19.3", "hardhat-abi-exporter": "^2.10.1", "hardhat-deploy": "0.11.42", "node-docker-api": "^1.1.22", diff --git a/contracts/src/common/ConstantSupplyERC20.sol b/contracts/src/common/ConstantSupplyERC20.sol index 6d0bf7548e..0329165268 100644 --- a/contracts/src/common/ConstantSupplyERC20.sol +++ b/contracts/src/common/ConstantSupplyERC20.sol @@ -1,11 +1,13 @@ // SPDX-License-Identifier: Apache 2 pragma solidity >=0.7.0 <0.9.0; -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; -contract ConstantSupplyERC20 is ERC20 { - constructor(string memory name, string memory symbol, uint256 initialSupply) ERC20(name, symbol) { +contract ConstantSupplyERC20 is ERC20 { + constructor(string memory name, string memory symbol, uint256 initialSupply) + ERC20(name, symbol) + { _mint(msg.sender, initialSupply); } } diff --git a/contracts/test/bridge-test.ts b/contracts/test/bridge-test.ts index acb1ebb126..31cc2d930f 100644 --- a/contracts/test/bridge-test.ts +++ b/contracts/test/bridge-test.ts @@ -32,10 +32,20 @@ describe("Bridge", function () { const L1Bridge = await hre.ethers.getContractFactory("ObscuroBridge"); const L2Bridge = await hre.ethers.getContractFactory("EthereumBridge"); - const ERC20 = await hre.ethers.getContractFactory("ERC20"); + const [owner] = await ethers.getSigners(); + + const ERC20 = await hre.ethers.getContractFactory("ConstantSupplyERC20", owner); + + console.log(`Deploying erc20`); + try { + const erc20 = await ERC20.deploy("XXX", "XXX", 100000); + erc20address = erc20.address; + } catch(err) { + console.error(err); + } + - const erc20 = await ERC20.deploy("XXX", "XXX"); - erc20address = erc20.address; + console.log(`Deployed erc20`); busL1 = await MessageBus.deploy(); busL2 = await MessageBus.deploy();