@0xcert/ethereum-erc20-contracts
Version:
Smart contract implementation of the ERC-20 standard on the Ethereum blockchain.
1,228 lines • 77.4 kB
JSON
{
"DappTokenMock": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "uint8",
"name": "_decimals",
"type": "uint8"
},
{
"internalType": "address",
"name": "_barteredToken",
"type": "address"
},
{
"internalType": "address",
"name": "_tokenTransferProxy",
"type": "address"
}
],
"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": "60806040523480156200001157600080fd5b50604051620025633803806200256383398101604081905262000034916200030f565b7f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c58054600160ff199182168117909255336000908152602083815260408220600f90558181527f9047944217cf7a5a57cc49e67181a64066b571778b37f1b501b5b2483c404e7480548416851790557fda3cefe610fb16fb609e83632d9bfe397c73a53e0e3889c3c671f29203793f8280548416851790557f0648b88cb4f83f2d3a24d50bb67a4b7e9cfc7f04811e84ba831e24e1b44237e2805484168517905563313ce56760e01b9091527f57c3f48cc00ca48466de578a46bac144b80c7e62e6b209102e549439d6cf9afa8054909216909217905585516200013f9160029190880190620001a1565b50835162000155906003906020870190620001a1565b506004805460ff191660ff9490941693909317909255600a80546001600160a01b03199081166001600160a01b0393841617909155600880549091169190921617905550620004079050565b828054620001af90620003b4565b90600052602060002090601f016020900481019282620001d357600085556200021e565b82601f10620001ee57805160ff19168380011785556200021e565b828001600101855582156200021e579182015b828111156200021e57825182559160200191906001019062000201565b506200022c92915062000230565b5090565b5b808211156200022c576000815560010162000231565b80516001600160a01b03811681146200025f57600080fd5b919050565b600082601f83011262000275578081fd5b81516001600160401b0380821115620002925762000292620003f1565b6040516020601f8401601f1916820181018381118382101715620002ba57620002ba620003f1565b6040528382528584018101871015620002d1578485fd5b8492505b83831015620002f45785830181015182840182015291820191620002d5565b838311156200030557848185840101525b5095945050505050565b600080600080600060a0868803121562000327578081fd5b85516001600160401b03808211156200033e578283fd5b6200034c89838a0162000264565b9650602088015191508082111562000362578283fd5b50620003718882890162000264565b945050604086015160ff8116811462000388578182fd5b9250620003986060870162000247565b9150620003a86080870162000247565b90509295509295909350565b600281046001821680620003c957607f821691505b60208210811415620003eb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61214c80620004176000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80635d19eb861161011a57806395d89b41116100ad578063c5b97e061161007c578063c5b97e0614610413578063c756672914610433578063dd62ed3e1461043b578063eb92ad661461044e578063f394b6df14610461576101fb565b806395d89b41146103d2578063a0f52da0146103da578063a9059cbb146103ed578063ba00a33014610400576101fb565b806371c396cc116100e957806371c396cc1461039c578063880d6c75146103a45780638fa76d8d146103b75780638fd3ab80146103ca576101fb565b80635d19eb8614610350578063680f36e2146103635780636e553f651461037657806370a0823114610389576101fb565b806323b872dd11610192578063313ce56711610161578063313ce5671461030257806345a32c8614610317578063590318291461032a5780635a2175511461033d576101fb565b806323b872dd146102b657806323bf3396146102c957806325052496146102dc5780632e1a7d4d146102ef576101fb565b80630eefdbad116101ce5780630eefdbad1461026657806313c5d2521461027b57806315ec3b8b1461028e57806318160ddd146102a1576101fb565b806301ffc9a71461020057806306fdde0314610229578063095ea7b31461023e5780630ab319e814610251575b600080fd5b61021361020e366004611e1d565b610474565b6040516102209190611f87565b60405180910390f35b610231610497565b6040516102209190611fce565b61021361024c366004611d69565b610529565b61026461025f366004611d69565b610581565b005b61026e610651565b6040516102209190611f36565b610213610289366004611b8e565b610660565b61026461029c366004611d69565b610675565b6102a961072c565b6040516102209190611f92565b6102136102c4366004611bda565b610732565b6102136102d7366004611e05565b610983565b6102646102ea366004611cf7565b610998565b6102646102fd366004611e05565b610a63565b61030a610ba2565b6040516102209190612021565b6102a9610325366004611b8e565b610bab565b610213610338366004611e05565b610bbd565b61026461034b366004611cf7565b610bd2565b61026461035e366004611c7c565b610c94565b6102a9610371366004611c15565b610f53565b610264610384366004611e55565b610f97565b6102a9610397366004611b8e565b611193565b61026e6111ae565b6102136103b2366004611b8e565b6111bd565b6102136103c5366004611d2d565b6111d2565b610264611370565b610231611532565b6102646103e8366004611b8e565b611541565b6102136103fb366004611d69565b611613565b61021361040e366004611d69565b61178c565b610426610421366004611d69565b6117f1565b6040516102209190611fb9565b61026e611961565b6102a9610449366004611ba8565b611970565b61026461045c366004611d92565b61199b565b61026461046f366004611d69565b611a23565b6001600160e01b0319811660009081526020819052604090205460ff165b919050565b6060600280546104a69061205e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d29061205e565b801561051f5780601f106104f45761010080835404028352916020019161051f565b820191906000526020600020905b81548152906001019060200180831161050257829003601f168201915b5050505050905090565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290916000805160206120f783398151915290610570908690611f92565b60405180910390a350600192915050565b60408051808201909152600681526518189b98181960d11b60208201526001906105af565b60405180910390fd5b5033600090815260016020908152604091829020548251808401909352600683526530313730303160d01b91830191909152821682146106025760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b038316600081815260016020526040808220805486179081905590519092917fd1d59d2d212a435434e7a4a4676427610dfe2b6268b01e541d280d65bf3d6b9091a3505050565b6008546001600160a01b031681565b60096020526000908152604090205460ff1681565b60408051808201825260068082526518189b98181960d11b6020928301523360009081526001808452908490205484518086019095529184526530313730303160d01b92840192909252909190821682146106e35760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b038316600081815260016020526040808220859055518492917fd1d59d2d212a435434e7a4a4676427610dfe2b6268b01e541d280d65bf3d6b9091a3505050565b60055490565b600b5460408051808201909152600681526530313030303560d01b60208201526000916001600160a01b03161561077c5760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b038316600090815260096020908152604091829020548251808401909352600683526530313030303360d01b9183019190915260ff166107d75760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b0384166000908152600660208181526040928390205483518085019094529183526530313030303160d01b9083015283111561082e5760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b0384166000908152600760209081526040808320338452825291829020548251808401909352600683526518189818181960d11b918301919091528311156108915760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b0384166000908152600660205260409020546108b6908390612047565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546108e690839061202f565b6001600160a01b038085166000908152600660209081526040808320949094559187168152600782528281203382529091522054610925908390612047565b6001600160a01b0380861660008181526007602090815260408083203384529091529081902093909355915190851691906000805160206120d783398151915290610971908690611f92565b60405180910390a35060019392505050565b600d6020526000908152604090205460ff1681565b60408051808201825260068082526518189b98181960d11b6020928301523360009081526001835283902054835180850185529182526530313730303160d01b928201929092529082168214610a015760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b0383166000818152600c602052604090819020805460ff1916851515179055517f923b9a8f748e5e88fa9de28bf3e57a5ea1508443a269cc9eeeb322939febf3e090610a56908590611f87565b60405180910390a2505050565b336000908152600660208181526040928390205483518085019094529183526530313030303160d01b90830152821115610ab05760405162461bcd60e51b81526004016105a69190611fce565b5080600554610abf9190612047565b60055533600090815260066020526040902054610add908290612047565b336000818152600660205260409081902092909255600a54915163a9059cbb60e01b81526001600160a01b039092169163a9059cbb91610b21918590600401611f6e565b602060405180830381600087803b158015610b3b57600080fd5b505af1158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190611de9565b5060405160009033906000805160206120d783398151915290610b97908590611f92565b60405180910390a350565b60045460ff1690565b60016020526000908152604090205481565b600e6020526000908152604090205460ff1681565b60408051808201825260068082526518189b98181960d11b602092830152336000908152600183528390205483518085019094529083526530313730303160d01b918301919091526010919082168214610c3f5760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b03831660008181526009602052604090819020805460ff1916851515179055517fa5fe0c8d62c32b5b6f14437194dfe68f86aaf45f6d384976081103e7db408bbc90610a56908590611f87565b6000610ca589898989898989610f53565b6000818152600e6020908152604091829020548251808401909352600683526530313030313160d01b918301919091529192509060ff1615610cfa5760405162461bcd60e51b81526004016105a69190611fce565b506000818152600d6020908152604091829020548251808401909352600683526506062606060760d31b9183019190915260ff1615610d4c5760405162461bcd60e51b81526004016105a69190611fce565b50610d588982846111d2565b6040518060400160405280600681526020016530313030303760d01b81525090610d955760405162461bcd60e51b81526004016105a69190611fce565b5060408051808201909152600681526530313030303960d01b6020820152428411610dd35760405162461bcd60e51b81526004016105a69190611fce565b506000818152600d60209081526040808320805460ff191660011790556001600160a01b03808d1680855260078452828520918d1680865291909352928190208a9055516000805160206120f783398151915290610e32908b90611f92565b60405180910390a36001600160a01b0389166000908152600660208181526040928390205483518085019094529183526530313030303160d01b90830152861115610e905760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b038916600090815260066020526040902054610eb5908690612047565b6001600160a01b03808b166000908152600660205260409020919091558616610edc573395505b6001600160a01b038616600090815260066020526040902054610f0090869061202f565b6001600160a01b0380881660008181526006602052604090819020939093559151908b16906000805160206120d783398151915290610f40908990611f92565b60405180910390a3505050505050505050565b60003088888888888888604051602001610f74989796959493929190611e77565b604051602081830303815290604052805190602001209050979650505050505050565b600b5460408051808201909152600681526530313030303560d01b6020820152906001600160a01b031615610fdf5760405162461bcd60e51b81526004016105a69190611fce565b5081600554610fee919061202f565b6005556001600160a01b03811660009081526006602052604090205461101590839061202f565b6001600160a01b038083166000908152600660205260409081902092909255600a5491516323b872dd60e01b81529116906323b872dd9061105e90339030908790600401611f4a565b602060405180830381600087803b15801561107857600080fd5b505af115801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b09190611de9565b506001600160a01b038082166000908152600760209081526040808320600854909416835292905220546110e590839061202f565b6001600160a01b03808316600081815260076020908152604080832060085490951683529390528281209390935590519091906000805160206120d783398151915290611133908690611f92565b60405180910390a36008546001600160a01b03828116600081815260076020908152604080832094909516808352939052839020549251919290916000805160206120f78339815191529161118791611f92565b60405180910390a35050565b6001600160a01b031660009081526006602052604090205490565b600b546001600160a01b031681565b600c6020526000908152604090205460ff1681565b600080826060015160028111156111f957634e487b7160e01b600052602160045260246000fd5b141561129b576001836040516020016112129190611ed4565b60405160208183030381529060405280519060200120836040015184600001518560200151604051600081526020016040526040516112549493929190611f9b565b6020604051602081039080840390855afa158015611276573d6000803e3d6000fd5b505050602060405103516001600160a01b0316846001600160a01b0316149050611369565b6001826060015160028111156112c157634e487b7160e01b600052602160045260246000fd5b14156112da576001836040516020016112129190611f05565b60028260600151600281111561130057634e487b7160e01b600052602160045260246000fd5b141561133557600183836040015184600001518560200151604051600081526020016040526040516112549493929190611f9b565b604080518082018252600681526503031303031360d41b6020820152905162461bcd60e51b81526105a69190600401611fce565b9392505050565b600b546040805180820190915260068152650c0c4c0c0c0d60d21b6020820152906001600160a01b03166113b75760405162461bcd60e51b81526004016105a69190611fce565b5033600090815260066020526040812080549190556005546113da908290612047565b600555600a54600b5460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92611413929116908590600401611f6e565b602060405180830381600087803b15801561142d57600080fd5b505af1158015611441573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114659190611de9565b50600b546040516362dcbf0360e11b808252916001600160a01b03169063c5b97e06906114989033908690600401611f6e565b602060405180830381600087803b1580156114b257600080fd5b505af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190611e39565b6001600160e01b031916146040518060400160405280600681526020016518189818181b60d11b81525090610b735760405162461bcd60e51b81526004016105a69190611fce565b6060600380546104a69061205e565b60408051808201825260068082526518189b98181960d11b602092830152336000908152600183528390205483518085019094529083526530313730303160d01b83830152909190821682146115aa5760405162461bcd60e51b81526004016105a69190611fce565b506040805180820190915260068152650c0c4c0c0c0d60d21b60208201526001600160a01b0383166115ef5760405162461bcd60e51b81526004016105a69190611fce565b5050600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b5460408051808201909152600681526530313030303560d01b60208201526000916001600160a01b03161561165d5760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b038316600090815260096020908152604091829020548251808401909352600683526530313030303360d01b9183019190915260ff166116b85760405162461bcd60e51b81526004016105a69190611fce565b50336000908152600660208181526040928390205483518085019094529183526530313030303160d01b908301528311156117065760405162461bcd60e51b81526004016105a69190611fce565b5033600090815260066020526040902054611722908390612047565b33600090815260066020526040808220929092556001600160a01b0385168152205461174f90839061202f565b6001600160a01b0384166000818152600660205260409081902092909255905133906000805160206120d783398151915290610570908690611f92565b60008082116040518060400160405280600681526020016518189b98181960d11b815250906117ce5760405162461bcd60e51b81526004016105a69190611fce565b50506001600160a01b039190911660009081526001602052604090205481161490565b336000908152600c60209081526040808320548151808301909252600682526518189818181b60d11b928201929092529060ff166118425760405162461bcd60e51b81526004016105a69190611fce565b5081600554611851919061202f565b6005556001600160a01b03831660009081526006602052604090205461187890839061202f565b6001600160a01b038085166000908152600660209081526040808320949094556007815283822060085490931682529190915220546118b890839061202f565b6001600160a01b03848116600081815260076020908152604080832060088054871685529252808320959095555490921680835291839020549251919290916000805160206120f78339815191529161191091611f92565b60405180910390a3826001600160a01b031660006001600160a01b03166000805160206120d78339815191528460405161194a9190611f92565b60405180910390a3506362dcbf0360e11b92915050565b600a546001600160a01b031681565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b60006119ac33888888888888610f53565b6000818152600d6020908152604091829020548251808401909352600683526506062606060760d31b918301919091529192509060ff1615611a015760405162461bcd60e51b81526004016105a69190611fce565b506000908152600e60205260409020805460ff19166001179055505050505050565b60408051808201825260068082526518189b98181960d11b6020928301523360009081526001808452908490205484518086019095529184526530313730303160d01b9284019290925290919082168214611a915760405162461bcd60e51b81526004016105a69190611fce565b506001600160a01b03831660008181526001602052604080822080548619169081905590519092917fd1d59d2d212a435434e7a4a4676427610dfe2b6268b01e541d280d65bf3d6b9091a3505050565b80356001600160a01b038116811461049257600080fd5b80356003811061049257600080fd5b600060808284031215611b18578081fd5b6040516080810181811067ffffffffffffffff82111715611b4757634e487b7160e01b83526041600452602483fd5b80604052508091508235815260208301356020820152604083013560ff81168114611b7157600080fd5b6040820152611b8260608401611af8565b60608201525092915050565b600060208284031215611b9f578081fd5b61136982611ae1565b60008060408385031215611bba578081fd5b611bc383611ae1565b9150611bd160208401611ae1565b90509250929050565b600080600060608486031215611bee578081fd5b611bf784611ae1565b9250611c0560208501611ae1565b9150604084013590509250925092565b600080600080600080600060e0888a031215611c2f578283fd5b611c3888611ae1565b9650611c4660208901611ae1565b955060408801359450611c5b60608901611ae1565b9699959850939660808101359560a0820135955060c0909101359350915050565b600080600080600080600080610160898b031215611c98578081fd5b611ca189611ae1565b9750611caf60208a01611ae1565b965060408901359550611cc460608a01611ae1565b94506080890135935060a0890135925060c08901359150611ce88a60e08b01611b07565b90509295985092959890939650565b60008060408385031215611d09578182fd5b611d1283611ae1565b91506020830135611d22816120af565b809150509250929050565b600080600060c08486031215611d41578283fd5b611d4a84611ae1565b925060208401359150611d608560408601611b07565b90509250925092565b60008060408385031215611d7b578182fd5b611d8483611ae1565b946020939093013593505050565b60008060008060008060c08789031215611daa578182fd5b611db387611ae1565b955060208701359450611dc860408801611ae1565b9350606087013592506080870135915060a087013590509295509295509295565b600060208284031215611dfa578081fd5b8151611369816120af565b600060208284031215611e16578081fd5b5035919050565b600060208284031215611e2e578081fd5b8135611369816120c0565b600060208284031215611e4a578081fd5b8151611369816120c0565b60008060408385031215611e67578182fd5b82359150611bd160208401611ae1565b6bffffffffffffffffffffffff196060998a1b8116825297891b8816601482015295881b87166028870152603c8601949094529190951b909316605c8301526070820193909352609081019190915260b081019190915260d00190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b7f19457468657265756d205369676e6564204d6573736167653a0a2000000000008152601b810191909152603b0190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6001600160e01b031991909116815260200190565b6000602080835283518082850152825b81811015611ffa57858101830151858201604001528201611fde565b8181111561200b5783604083870101525b50601f01601f1916929092016040019392505050565b60ff91909116815260200190565b6000821982111561204257612042612099565b500190565b60008282101561205957612059612099565b500390565b60028104600182168061207257607f821691505b6020821081141561209357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80151581146120bd57600080fd5b50565b6001600160e01b0319811681146120bd57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220b6a47bc6c2041242ca8971183597a5bb8da668bfe1417d7b8afe2128d4e651cd64736f6c63430008000033"
},
"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": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "uint8",
"name": "_decimals",
"type": "uint8"
},
{
"internalType": "address",
"name": "_barteredToken",
"type": "address"
},
{
"internalType": "address",
"name": "_tokenTransferProxy",
"type": "address"
}
],
"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