UNPKG

@0xcert/ethereum-erc20-contracts

Version:

Smart contract implementation of the ERC-20 standard on the Ethereum blockchain.

1,285 lines 77.6 kB
{ "DappToken": { "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_target", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "state", "type": "bool" } ], "name": "ApprovedMigrator", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_target", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "SetAbilities", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_target", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "state", "type": "bool" } ], "name": "WhitelistedRecipient", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "addressToAbility", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "_remaining", "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": "_success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_approver", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "address", "name": "_feeRecipient", "type": "address" }, { "internalType": "uint256", "name": "_feeValue", "type": "uint256" }, { "internalType": "uint256", "name": "_seed", "type": "uint256" }, { "internalType": "uint256", "name": "_expiration", "type": "uint256" }, { "components": [ { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "enum DappToken.SignatureKind", "name": "kind", "type": "uint8" } ], "internalType": "struct DappToken.SignatureData", "name": "_signature", "type": "tuple" } ], "name": "approveWithSignature", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "approvedMigrators", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "_balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "barteredToken", "outputs": [ { "internalType": "contract ERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "address", "name": "_feeRecipient", "type": "address" }, { "internalType": "uint256", "name": "_feeValue", "type": "uint256" }, { "internalType": "uint256", "name": "_seed", "type": "uint256" }, { "internalType": "uint256", "name": "_expiration", "type": "uint256" } ], "name": "cancelApproveWithSignature", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "claimCancelled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "claimPerformed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "_decimals", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_approver", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "address", "name": "_feeRecipient", "type": "address" }, { "internalType": "uint256", "name": "_feeValue", "type": "uint256" }, { "internalType": "uint256", "name": "_seed", "type": "uint256" }, { "internalType": "uint256", "name": "_expiration", "type": "uint256" } ], "name": "generateClaim", "outputs": [ { "internalType": "bytes32", "name": "_claim", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "grantAbilities", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "isAble", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_signer", "type": "address" }, { "internalType": "bytes32", "name": "_claim", "type": "bytes32" }, { "components": [ { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "enum DappToken.SignatureKind", "name": "kind", "type": "uint8" } ], "internalType": "struct DappToken.SignatureData", "name": "_signature", "type": "tuple" } ], "name": "isValidSignature", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "migrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "migrationAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "_name", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_migrator", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "onMigrationReceived", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "revokeAbilities", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "setAbilities", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setApprovedMigrator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setWhitelistedRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_target", "type": "address" } ], "name": "startMigration", "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": "_symbol", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenTransferProxy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "_totalSupply", "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": "_success", "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": "_success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelistedRecipients", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "evm": { "bytecode": { "object": "608060405234801561001057600080fd5b507f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff199081166001908117909255336000908152602083815260408220600f90558190527f9047944217cf7a5a57cc49e67181a64066b571778b37f1b501b5b2483c404e7480548316841790557fda3cefe610fb16fb609e83632d9bfe397c73a53e0e3889c3c671f29203793f8280548316841790557f0648b88cb4f83f2d3a24d50bb67a4b7e9cfc7f04811e84ba831e24e1b44237e2805483168417905563313ce56760e01b90527f57c3f48cc00ca48466de578a46bac144b80c7e62e6b209102e549439d6cf9afa8054909116909117905561214c806101176000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80635d19eb861161011a57806395d89b41116100ad578063c5b97e061161007c578063c5b97e0614610413578063c756672914610433578063dd62ed3e1461043b578063eb92ad661461044e578063f394b6df14610461576101fb565b806395d89b41146103d2578063a0f52da0146103da578063a9059cbb146103ed578063ba00a33014610400576101fb565b806371c396cc116100e957806371c396cc1461039c578063880d6c75146103a45780638fa76d8d146103b75780638fd3ab80146103ca576101fb565b80635d19eb8614610350578063680f36e2146103635780636e553f651461037657806370a0823114610389576101fb565b806323b872dd11610192578063313ce56711610161578063313ce5671461030257806345a32c8614610317578063590318291461032a5780635a2175511461033d576101fb565b806323b872dd146102b657806323bf3396146102c957806325052496146102dc5780632e1a7d4d146102ef576101fb565b80630eefdbad116101ce5780630eefdbad1461026657806313c5d2521461027b57806315ec3b8b1461028e57806318160ddd146102a1576101fb565b806301ffc9a71461020057806306fdde0314610229578063095ea7b31461023e5780630ab319e814610251575b600080fd5b61021361020e366004611e1d565b610474565b6040516102209190611f87565b60405180910390f35b610231610497565b6040516102209190611fce565b61021361024c366004611d69565b610529565b61026461025f366004611d69565b610581565b005b61026e610651565b6040516102209190611f36565b610213610289366004611b8e565b610660565b61026461029c366004611d69565b610675565b6102a961072c565b6040516102209190611f92565b6102136102c4366004611bda565b610732565b6102136102d7366004611e05565b610983565b6102646102ea366004611cf7565b610998565b6102646102fd366004611e05565b610a63565b61030a610ba2565b6040516102209190612021565b6102a9610325366004611b8e565b610bab565b610213610338366004611e05565b610bbd565b61026461034b366004611cf7565b610bd2565b61026461035e366004611c7c565b610c94565b6102a9610371366004611c15565b610f53565b610264610384366004611e55565b610f97565b6102a9610397366004611b8e565b611193565b61026e6111ae565b6102136103b2366004611b8e565b6111bd565b6102136103c5366004611d2d565b6111d2565b610264611370565b610231611532565b6102646103e8366004611b8e565b611541565b6102136103fb366004611d69565b611613565b61021361040e366004611d69565b61178c565b610426610421366004611d69565b6117f1565b6040516102209190611fb9565b61026e611961565b6102a9610449366004611ba8565b611970565b61026461045c366004611d92565b61199b565b61026461046f366004611d69565b611a23565b6001600160e01b0319811660009081526020819052604090205460ff165b919050565b6060600280546104a69061205e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d29061205e565b801561051f5780601f106104f45761010080835404028352916020019161051f565b820191906000526020600020905b81548152906001019060200180831161050257829003601f168201915b5050505050905090565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290916000805160206120f783398151915290610570908690611f92565b60405180910390a350600192915050565b60408051808201909152600681526518189b98181960d11b60208201526001906105af565b60405180910390fd5b5033600090815260016020908152604091829020548251808401909352600683526530313730303160d01b91830191909152821682146106025760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b038316600081815260016020526040808220805486179081905590519092917fd1d59d2d212a435434e7a4a4676427610dfe2b6268b01e541d280d65bf3d6b9091a3505050565b6008546001600160a01b031681565b60096020526000908152604090205460ff1681565b60408051808201825260068082526518189b98181960d11b6020928301523360009081526001808452908490205484518086019095529184526530313730303160d01b92840192909252909190821682146106e35760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b038316600081815260016020526040808220859055518492917fd1d59d2d212a435434e7a4a4676427610dfe2b6268b01e541d280d65bf3d6b9091a3505050565b60055490565b600b5460408051808201909152600681526530313030303560d01b60208201526000916001600160a01b03161561077c5760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b038316600090815260096020908152604091829020548251808401909352600683526530313030303360d01b9183019190915260ff166107d75760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b0384166000908152600660208181526040928390205483518085019094529183526530313030303160d01b9083015283111561082e5760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b0384166000908152600760209081526040808320338452825291829020548251808401909352600683526518189818181960d11b918301919091528311156108915760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b0384166000908152600660205260409020546108b6908390612047565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546108e690839061202f565b6001600160a01b038085166000908152600660209081526040808320949094559187168152600782528281203382529091522054610925908390612047565b6001600160a01b0380861660008181526007602090815260408083203384529091529081902093909355915190851691906000805160206120d783398151915290610971908690611f92565b60405180910390a35060019392505050565b600d6020526000908152604090205460ff1681565b60408051808201825260068082526518189b98181960d11b6020928301523360009081526001835283902054835180850185529182526530313730303160d01b928201929092529082168214610a015760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b0383166000818152600c602052604090819020805460ff1916851515179055517f923b9a8f748e5e88fa9de28bf3e57a5ea1508443a269cc9eeeb322939febf3e090610a56908590611f87565b60405180910390a2505050565b336000908152600660208181526040928390205483518085019094529183526530313030303160d01b90830152821115610ab05760405162461bcd60e51b81526004016105a69190611fce565b5080600554610abf9190612047565b60055533600090815260066020526040902054610add908290612047565b336000818152600660205260409081902092909255600a54915163a9059cbb60e01b81526001600160a01b039092169163a9059cbb91610b21918590600401611f6e565b602060405180830381600087803b158015610b3b57600080fd5b505af1158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190611de9565b5060405160009033906000805160206120d783398151915290610b97908590611f92565b60405180910390a350565b60045460ff1690565b60016020526000908152604090205481565b600e6020526000908152604090205460ff1681565b60408051808201825260068082526518189b98181960d11b602092830152336000908152600183528390205483518085019094529083526530313730303160d01b918301919091526010919082168214610c3f5760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b03831660008181526009602052604090819020805460ff1916851515179055517fa5fe0c8d62c32b5b6f14437194dfe68f86aaf45f6d384976081103e7db408bbc90610a56908590611f87565b6000610ca589898989898989610f53565b6000818152600e6020908152604091829020548251808401909352600683526530313030313160d01b918301919091529192509060ff1615610cfa5760405162461bcd60e51b81526004016105a69190611fce565b506000818152600d6020908152604091829020548251808401909352600683526506062606060760d31b9183019190915260ff1615610d4c5760405162461bcd60e51b81526004016105a69190611fce565b50610d588982846111d2565b6040518060400160405280600681526020016530313030303760d01b81525090610d955760405162461bcd60e51b81526004016105a69190611fce565b5060408051808201909152600681526530313030303960d01b6020820152428411610dd35760405162461bcd60e51b81526004016105a69190611fce565b506000818152600d60209081526040808320805460ff191660011790556001600160a01b03808d1680855260078452828520918d1680865291909352928190208a9055516000805160206120f783398151915290610e32908b90611f92565b60405180910390a36001600160a01b0389166000908152600660208181526040928390205483518085019094529183526530313030303160d01b90830152861115610e905760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b038916600090815260066020526040902054610eb5908690612047565b6001600160a01b03808b166000908152600660205260409020919091558616610edc573395505b6001600160a01b038616600090815260066020526040902054610f0090869061202f565b6001600160a01b0380881660008181526006602052604090819020939093559151908b16906000805160206120d783398151915290610f40908990611f92565b60405180910390a3505050505050505050565b60003088888888888888604051602001610f74989796959493929190611e77565b604051602081830303815290604052805190602001209050979650505050505050565b600b5460408051808201909152600681526530313030303560d01b6020820152906001600160a01b031615610fdf5760405162461bcd60e51b81526004016105a69190611fce565b5081600554610fee919061202f565b6005556001600160a01b03811660009081526006602052604090205461101590839061202f565b6001600160a01b038083166000908152600660205260409081902092909255600a5491516323b872dd60e01b81529116906323b872dd9061105e90339030908790600401611f4a565b602060405180830381600087803b15801561107857600080fd5b505af115801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b09190611de9565b506001600160a01b038082166000908152600760209081526040808320600854909416835292905220546110e590839061202f565b6001600160a01b03808316600081815260076020908152604080832060085490951683529390528281209390935590519091906000805160206120d783398151915290611133908690611f92565b60405180910390a36008546001600160a01b03828116600081815260076020908152604080832094909516808352939052839020549251919290916000805160206120f78339815191529161118791611f92565b60405180910390a35050565b6001600160a01b031660009081526006602052604090205490565b600b546001600160a01b031681565b600c6020526000908152604090205460ff1681565b600080826060015160028111156111f957634e487b7160e01b600052602160045260246000fd5b141561129b576001836040516020016112129190611ed4565b60405160208183030381529060405280519060200120836040015184600001518560200151604051600081526020016040526040516112549493929190611f9b565b6020604051602081039080840390855afa158015611276573d6000803e3d6000fd5b505050602060405103516001600160a01b0316846001600160a01b0316149050611369565b6001826060015160028111156112c157634e487b7160e01b600052602160045260246000fd5b14156112da576001836040516020016112129190611f05565b60028260600151600281111561130057634e487b7160e01b600052602160045260246000fd5b141561133557600183836040015184600001518560200151604051600081526020016040526040516112549493929190611f9b565b604080518082018252600681526503031303031360d41b6020820152905162461bcd60e51b81526105a69190600401611fce565b9392505050565b600b546040805180820190915260068152650c0c4c0c0c0d60d21b6020820152906001600160a01b03166113b75760405162461bcd60e51b81526004016105a69190611fce565b5033600090815260066020526040812080549190556005546113da908290612047565b600555600a54600b5460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92611413929116908590600401611f6e565b602060405180830381600087803b15801561142d57600080fd5b505af1158015611441573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114659190611de9565b50600b546040516362dcbf0360e11b808252916001600160a01b03169063c5b97e06906114989033908690600401611f6e565b602060405180830381600087803b1580156114b257600080fd5b505af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190611e39565b6001600160e01b031916146040518060400160405280600681526020016518189818181b60d11b81525090610b735760405162461bcd60e51b81526004016105a69190611fce565b6060600380546104a69061205e565b60408051808201825260068082526518189b98181960d11b602092830152336000908152600183528390205483518085019094529083526530313730303160d01b83830152909190821682146115aa5760405162461bcd60e51b81526004016105a69190611fce565b506040805180820190915260068152650c0c4c0c0c0d60d21b60208201526001600160a01b0383166115ef5760405162461bcd60e51b81526004016105a69190611fce565b5050600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b5460408051808201909152600681526530313030303560d01b60208201526000916001600160a01b03161561165d5760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b038316600090815260096020908152604091829020548251808401909352600683526530313030303360d01b9183019190915260ff166116b85760405162461bcd60e51b81526004016105a69190611fce565b50336000908152600660208181526040928390205483518085019094529183526530313030303160d01b908301528311156117065760405162461bcd60e51b81526004016105a69190611fce565b5033600090815260066020526040902054611722908390612047565b33600090815260066020526040808220929092556001600160a01b0385168152205461174f90839061202f565b6001600160a01b0384166000818152600660205260409081902092909255905133906000805160206120d783398151915290610570908690611f92565b60008082116040518060400160405280600681526020016518189b98181960d11b815250906117ce5760405162461bcd60e51b81526004016105a69190611fce565b50506001600160a01b039190911660009081526001602052604090205481161490565b336000908152600c60209081526040808320548151808301909252600682526518189818181b60d11b928201929092529060ff166118425760405162461bcd60e51b81526004016105a69190611fce565b5081600554611851919061202f565b6005556001600160a01b03831660009081526006602052604090205461187890839061202f565b6001600160a01b038085166000908152600660209081526040808320949094556007815283822060085490931682529190915220546118b890839061202f565b6001600160a01b03848116600081815260076020908152604080832060088054871685529252808320959095555490921680835291839020549251919290916000805160206120f78339815191529161191091611f92565b60405180910390a3826001600160a01b031660006001600160a01b03166000805160206120d78339815191528460405161194a9190611f92565b60405180910390a3506362dcbf0360e11b92915050565b600a546001600160a01b031681565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b60006119ac33888888888888610f53565b6000818152600d6020908152604091829020548251808401909352600683526506062606060760d31b918301919091529192509060ff1615611a015760405162461bcd60e51b81526004016105a69190611fce565b506000908152600e60205260409020805460ff19166001179055505050505050565b60408051808201825260068082526518189b98181960d11b6020928301523360009081526001808452908490205484518086019095529184526530313730303160d01b9284019290925290919082168214611a915760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b03831660008181526001602052604080822080548619169081905590519092917fd1d59d2d212a435434e7a4a4676427610dfe2b6268b01e541d280d65bf3d6b9091a3505050565b80356001600160a01b038116811461049257600080fd5b80356003811061049257600080fd5b600060808284031215611b18578081fd5b6040516080810181811067ffffffffffffffff82111715611b4757634e487b7160e01b83526041600452602483fd5b80604052508091508235815260208301356020820152604083013560ff81168114611b7157600080fd5b6040820152611b8260608401611af8565b60608201525092915050565b600060208284031215611b9f578081fd5b61136982611ae1565b60008060408385031215611bba578081fd5b611bc383611ae1565b9150611bd160208401611ae1565b90509250929050565b600080600060608486031215611bee578081fd5b611bf784611ae1565b9250611c0560208501611ae1565b9150604084013590509250925092565b600080600080600080600060e0888a031215611c2f578283fd5b611c3888611ae1565b9650611c4660208901611ae1565b955060408801359450611c5b60608901611ae1565b9699959850939660808101359560a0820135955060c0909101359350915050565b600080600080600080600080610160898b031215611c98578081fd5b611ca189611ae1565b9750611caf60208a01611ae1565b965060408901359550611cc460608a01611ae1565b94506080890135935060a0890135925060c08901359150611ce88a60e08b01611b07565b90509295985092959890939650565b60008060408385031215611d09578182fd5b611d1283611ae1565b91506020830135611d22816120af565b809150509250929050565b600080600060c08486031215611d41578283fd5b611d4a84611ae1565b925060208401359150611d608560408601611b07565b90509250925092565b60008060408385031215611d7b578182fd5b611d8483611ae1565b946020939093013593505050565b60008060008060008060c08789031215611daa578182fd5b611db387611ae1565b955060208701359450611dc860408801611ae1565b9350606087013592506080870135915060a087013590509295509295509295565b600060208284031215611dfa578081fd5b8151611369816120af565b600060208284031215611e16578081fd5b5035919050565b600060208284031215611e2e578081fd5b8135611369816120c0565b600060208284031215611e4a578081fd5b8151611369816120c0565b60008060408385031215611e67578182fd5b82359150611bd160208401611ae1565b6bffffffffffffffffffffffff196060998a1b8116825297891b8816601482015295881b87166028870152603c8601949094529190951b909316605c8301526070820193909352609081019190915260b081019190915260d00190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b7f19457468657265756d205369676e6564204d6573736167653a0a2000000000008152601b810191909152603b0190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6001600160e01b031991909116815260200190565b6000602080835283518082850152825b81811015611ffa57858101830151858201604001528201611fde565b8181111561200b5783604083870101525b50601f01601f1916929092016040019392505050565b60ff91909116815260200190565b6000821982111561204257612042612099565b500190565b60008282101561205957612059612099565b500390565b60028104600182168061207257607f821691505b6020821081141561209357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80151581146120bd57600080fd5b50565b6001600160e01b0319811681146120bd57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a264697066735822122043a7dcebbb8253e27585cba94e9a80defa50ba6c198f6418529d5b422be8292464736f6c63430008000033" }, "methodIdentifiers": { "addressToAbility(address)": "45a32c86", "allowance(address,address)": "dd62ed3e", "approve(address,uint256)": "095ea7b3", "approveWithSignature(address,address,uint256,address,uint256,uint256,uint256,(bytes32,bytes32,uint8,uint8))": "5d19eb86", "approvedMigrators(address)": "880d6c75", "balanceOf(address)": "70a08231", "barteredToken()": "c7566729", "cancelApproveWithSignature(address,uint256,address,uint256,uint256,uint256)": "eb92ad66", "claimCancelled(bytes32)": "59031829", "claimPerformed(bytes32)": "23bf3396", "decimals()": "313ce567", "deposit(uint256,address)": "6e553f65", "generateClaim(address,address,uint256,address,uint256,uint256,uint256)": "680f36e2", "grantAbilities(address,uint256)": "0ab319e8", "isAble(address,uint256)": "ba00a330", "isValidSignature(address,bytes32,(bytes32,bytes32,uint8,uint8))": "8fa76d8d", "migrate()": "8fd3ab80", "migrationAddress()": "71c396cc", "name()": "06fdde03", "onMigrationReceived(address,uint256)": "c5b97e06", "revokeAbilities(address,uint256)": "f394b6df", "setAbilities(address,uint256)": "15ec3b8b", "setApprovedMigrator(address,bool)": "25052496", "setWhitelistedRecipient(address,bool)": "5a217551", "startMigration(address)": "a0f52da0", "supportsInterface(bytes4)": "01ffc9a7", "symbol()": "95d89b41", "tokenTransferProxy()": "0eefdbad", "totalSupply()": "18160ddd", "transfer(address,uint256)": "a9059cbb", "transferFrom(address,address,uint256)": "23b872dd", "whitelistedRecipients(address)": "13c5d252", "withdraw(uint256)": "2e1a7d4d" } }, "metadata": { "compiler": { "version": "0.8.0+commit.c7dfd78e" }, "language": "Solidity", "output": { "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_target", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "state", "type": "bool" } ], "name": "ApprovedMigrator", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_target", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "_abilities", "type": "uint256" } ], "name": "SetAbilities", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_target", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "state", "type": "bool" } ], "name": "WhitelistedRecipient", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "addressToAbility", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "_remaining", "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": "_success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_approver", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "address", "name": "_feeRecipient", "type": "address" }, { "internalType": "uint256", "name": "_feeValue", "type": "uint256" }, { "internalType": "uint256", "name": "_seed", "type": "uint256" }, { "internalType": "uint256", "name": "_expiration", "type": "uint256" }, { "components": [ { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "enum DappToken.SignatureKind", "name": "kind", "type": "uint8" } ], "internalType": "struct DappToken.SignatureData", "name": "_signature", "type": "tuple" } ], "name": "approveWithSignature", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "approvedMigrators", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "_balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "barteredToken", "outputs": [ { "internalType": "contract ERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "address", "name": "_feeRecipient", "type": "address" }, { "internalType": "uint256", "name": "_feeValue", "type": "uint256" }, { "internalType": "uint256", "name": "_seed", "type": "uint256" }, { "internalType": "uint256", "name": "_expiration", "type": "uint256" } ], "name": "cancelApproveWithSignature", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "claimCancelled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "claimPerformed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "_decimals", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "t