UNPKG

@axelar-network/interchain-token-service

Version:

Interchain token service for EVM chains to faciliate interchain token transfers and contract calls

174 lines (173 loc) 19.7 kB
{ "_format": "hh-sol-artifact-1", "contractName": "TokenHandler", "sourceName": "contracts/TokenHandler.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" } ], "name": "NotToken", "type": "error" }, { "inputs": [], "name": "ReentrantCall", "type": "error" }, { "inputs": [], "name": "TokenTransferFailed", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenManagerType", "type": "uint256" } ], "name": "UnsupportedTokenManagerType", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "giveToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenManagerType", "type": "uint256" }, { "internalType": "contract ITokenManager", "name": "tokenManager", "type": "address" } ], "name": "postTokenManagerDeploy", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "internalType": "bool", "name": "tokenOnly", "type": "bool" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "takeToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferTokenFrom", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6080604052348015600f57600080fd5b50610fa78061001f6000396000f3fe60806040526004361061003f5760003560e01c806320f75e0814610044578063dbd15f2f14610086578063ea5254831461009b578063fb1ea8cf146100bc575b600080fd5b34801561005057600080fd5b5061006461005f366004610c1a565b6100dc565b604080519283526001600160a01b039091166020830152015b60405180910390f35b610099610094366004610c62565b6101fc565b005b6100ae6100a9366004610ca0565b610330565b60405190815260200161007d565b3480156100c857600080fd5b506100646100d7366004610cc8565b6104e7565b60008060006100ea87610643565b9050600080826001600160a01b031663d4ae3c426040518163ffffffff1660e01b81526004016040805180830381865afa15801561012c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101509190610d00565b90925090508115806101625750600282145b8061016d5750600482145b806101785750600182145b15610196576101898189898961075e565b85945092506101f3915050565b600382036101b9576101aa81898989610779565b955085945092506101f3915050565b6040517ff24fcfa1000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b94509492505050565b816102dd57806001600160a01b0316639d76ea586040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102639190610d26565b6040517fcf86a95a0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152919091169063cf86a95a90602401600060405180830381600087803b1580156102c157600080fd5b505af11580156102d5573d6000803e3d6000fd5b505050505050565b60028214806102ec5750600382145b1561032c57806001600160a01b031663274158386040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156102c157600080fd5b5050565b60008061033c86610643565b9050600080826001600160a01b031663d4ae3c426040518163ffffffff1660e01b81526004016040805180830381865afa15801561037e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a29190610d00565b915091508680156103bc5750336001600160a01b03821614155b15610404576040517f409304db0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03821660248201526044016101ea565b8115806104115750600482145b156104275761042283828888610939565b610465565b6001820361043a576104228187876109c3565b6002820361044e576104228187858861075e565b600382036101b95761046281878588610779565b94505b6040517fdce29136000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b0384169063dce2913690602401600060405180830381600087803b1580156104c057600080fd5b505af11580156104d4573d6000803e3d6000fd5b505050508493505050505b949350505050565b60008060006104f586610643565b9050600080826001600160a01b031663d4ae3c426040518163ffffffff1660e01b81526004016040805180830381865afa158015610537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055b9190610d00565b6040517f10d8d8e30000000000000000000000000000000000000000000000000000000081526004810189905291935091506001600160a01b038416906310d8d8e390602401600060405180830381600087803b1580156105bb57600080fd5b505af11580156105cf573d6000803e3d6000fd5b50600092506105dc915050565b8214806105e95750600482145b806105f45750600182145b1561060a5761060583828989610a4a565b610635565b6002820361061e576106058184898961075e565b600382036101b95761063281848989610779565b95505b949794965093945050505050565b6000803083604051806101c001604052806101828152602001610df0610182913980516020918201206040516106c6949392017fff00000000000000000000000000000000000000000000000000000000000000815260609390931b6bffffffffffffffffffffffff191660018401526015830191909152603582015260550190565b60408051601f1981840301815282825280516020918201207fd6940000000000000000000000000000000000000000000000000000000000008285015260601b6bffffffffffffffffffffffff191660228401527f0100000000000000000000000000000000000000000000000000000000000000603684015281516017818503018152603790930190915281519101209392505050565b6107736001600160a01b038516848484610aa0565b50505050565b60006107a67f1a771c70cada93a906f955a7dec24a83d7954ba2f75256be4febcf62b395d5325460021490565b156107dd576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61080660027f1a771c70cada93a906f955a7dec24a83d7954ba2f75256be4febcf62b395d53255565b6040516370a0823160e01b81526001600160a01b038481166004830152600091908716906370a0823190602401602060405180830381865afa158015610850573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108749190610d4a565b90506108828686868661075e565b6040516370a0823160e01b81526001600160a01b03858116600483015260009183918916906370a0823190602401602060405180830381865afa1580156108cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f19190610d4a565b6108fb9190610d63565b905083811061090a578361090c565b805b925050506104df60017f1a771c70cada93a906f955a7dec24a83d7954ba2f75256be4febcf62b395d53255565b6040517f3416794d0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152838116602483015260448201839052851690633416794d906064015b600060405180830381600087803b1580156109a557600080fd5b505af11580156109b9573d6000803e3d6000fd5b5050505050505050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f79cc679000000000000000000000000000000000000000000000000000000000179052610a4591851690610b24565b505050565b6040517f6bec32da0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152838116602483015260448201839052851690636bec32da9060640161098b565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526107739085905b600080836001600160a01b031683604051610b3f9190610da3565b6000604051808303816000865af19150503d8060008114610b7c576040519150601f19603f3d011682016040523d82523d6000602084013e610b81565b606091505b50915091506000828015610bad575081511580610bad575081806020019051810190610bad9190610dd2565b9050801580610bc457506001600160a01b0385163b155b15610bfb576040517f045c4b0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b6001600160a01b0381168114610c1757600080fd5b50565b60008060008060808587031215610c3057600080fd5b843593506020850135610c4281610c02565b92506040850135610c5281610c02565b9396929550929360600135925050565b60008060408385031215610c7557600080fd5b823591506020830135610c8781610c02565b809150509250929050565b8015158114610c1757600080fd5b60008060008060808587031215610cb657600080fd5b843593506020850135610c4281610c92565b600080600060608486031215610cdd57600080fd5b833592506020840135610cef81610c02565b929592945050506040919091013590565b60008060408385031215610d1357600080fd5b82516020840151909250610c8781610c02565b600060208284031215610d3857600080fd5b8151610d4381610c02565b9392505050565b600060208284031215610d5c57600080fd5b5051919050565b81810381811115610d9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b6000825160005b81811015610dc45760208186018101518583015201610daa565b506000920191825250919050565b600060208284031215610de457600080fd5b8151610d4381610c9256fe608060405234801561001057600080fd5b50610162806100206000396000f3fe60806040526004361061001d5760003560e01c806277436014610022575b600080fd5b61003561003036600461007b565b610037565b005b8051602082016000f061004957600080fd5b50565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561008d57600080fd5b813567ffffffffffffffff808211156100a557600080fd5b818401915084601f8301126100b957600080fd5b8135818111156100cb576100cb61004c565b604051601f8201601f19908116603f011681019083821181831017156100f3576100f361004c565b8160405282815287602084870101111561010c57600080fd5b82602086016020830137600092810160200192909252509594505050505056fea264697066735822122094780ce55d28f1d568f4e0ab1b9dc230b96e952b73d2e06456fbff2289fa27f464736f6c63430008150033a2646970667358221220343c402409a6a1884ee51e9c6d4f7d470d7d1cb7be6f89695f08df3e5e3a970364736f6c634300081b0033", "deployedBytecode": "0x60806040526004361061003f5760003560e01c806320f75e0814610044578063dbd15f2f14610086578063ea5254831461009b578063fb1ea8cf146100bc575b600080fd5b34801561005057600080fd5b5061006461005f366004610c1a565b6100dc565b604080519283526001600160a01b039091166020830152015b60405180910390f35b610099610094366004610c62565b6101fc565b005b6100ae6100a9366004610ca0565b610330565b60405190815260200161007d565b3480156100c857600080fd5b506100646100d7366004610cc8565b6104e7565b60008060006100ea87610643565b9050600080826001600160a01b031663d4ae3c426040518163ffffffff1660e01b81526004016040805180830381865afa15801561012c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101509190610d00565b90925090508115806101625750600282145b8061016d5750600482145b806101785750600182145b15610196576101898189898961075e565b85945092506101f3915050565b600382036101b9576101aa81898989610779565b955085945092506101f3915050565b6040517ff24fcfa1000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b94509492505050565b816102dd57806001600160a01b0316639d76ea586040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102639190610d26565b6040517fcf86a95a0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152919091169063cf86a95a90602401600060405180830381600087803b1580156102c157600080fd5b505af11580156102d5573d6000803e3d6000fd5b505050505050565b60028214806102ec5750600382145b1561032c57806001600160a01b031663274158386040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156102c157600080fd5b5050565b60008061033c86610643565b9050600080826001600160a01b031663d4ae3c426040518163ffffffff1660e01b81526004016040805180830381865afa15801561037e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a29190610d00565b915091508680156103bc5750336001600160a01b03821614155b15610404576040517f409304db0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03821660248201526044016101ea565b8115806104115750600482145b156104275761042283828888610939565b610465565b6001820361043a576104228187876109c3565b6002820361044e576104228187858861075e565b600382036101b95761046281878588610779565b94505b6040517fdce29136000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b0384169063dce2913690602401600060405180830381600087803b1580156104c057600080fd5b505af11580156104d4573d6000803e3d6000fd5b505050508493505050505b949350505050565b60008060006104f586610643565b9050600080826001600160a01b031663d4ae3c426040518163ffffffff1660e01b81526004016040805180830381865afa158015610537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055b9190610d00565b6040517f10d8d8e30000000000000000000000000000000000000000000000000000000081526004810189905291935091506001600160a01b038416906310d8d8e390602401600060405180830381600087803b1580156105bb57600080fd5b505af11580156105cf573d6000803e3d6000fd5b50600092506105dc915050565b8214806105e95750600482145b806105f45750600182145b1561060a5761060583828989610a4a565b610635565b6002820361061e576106058184898961075e565b600382036101b95761063281848989610779565b95505b949794965093945050505050565b6000803083604051806101c001604052806101828152602001610df0610182913980516020918201206040516106c6949392017fff00000000000000000000000000000000000000000000000000000000000000815260609390931b6bffffffffffffffffffffffff191660018401526015830191909152603582015260550190565b60408051601f1981840301815282825280516020918201207fd6940000000000000000000000000000000000000000000000000000000000008285015260601b6bffffffffffffffffffffffff191660228401527f0100000000000000000000000000000000000000000000000000000000000000603684015281516017818503018152603790930190915281519101209392505050565b6107736001600160a01b038516848484610aa0565b50505050565b60006107a67f1a771c70cada93a906f955a7dec24a83d7954ba2f75256be4febcf62b395d5325460021490565b156107dd576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61080660027f1a771c70cada93a906f955a7dec24a83d7954ba2f75256be4febcf62b395d53255565b6040516370a0823160e01b81526001600160a01b038481166004830152600091908716906370a0823190602401602060405180830381865afa158015610850573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108749190610d4a565b90506108828686868661075e565b6040516370a0823160e01b81526001600160a01b03858116600483015260009183918916906370a0823190602401602060405180830381865afa1580156108cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f19190610d4a565b6108fb9190610d63565b905083811061090a578361090c565b805b925050506104df60017f1a771c70cada93a906f955a7dec24a83d7954ba2f75256be4febcf62b395d53255565b6040517f3416794d0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152838116602483015260448201839052851690633416794d906064015b600060405180830381600087803b1580156109a557600080fd5b505af11580156109b9573d6000803e3d6000fd5b5050505050505050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f79cc679000000000000000000000000000000000000000000000000000000000179052610a4591851690610b24565b505050565b6040517f6bec32da0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152838116602483015260448201839052851690636bec32da9060640161098b565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526107739085905b600080836001600160a01b031683604051610b3f9190610da3565b6000604051808303816000865af19150503d8060008114610b7c576040519150601f19603f3d011682016040523d82523d6000602084013e610b81565b606091505b50915091506000828015610bad575081511580610bad575081806020019051810190610bad9190610dd2565b9050801580610bc457506001600160a01b0385163b155b15610bfb576040517f045c4b0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b6001600160a01b0381168114610c1757600080fd5b50565b60008060008060808587031215610c3057600080fd5b843593506020850135610c4281610c02565b92506040850135610c5281610c02565b9396929550929360600135925050565b60008060408385031215610c7557600080fd5b823591506020830135610c8781610c02565b809150509250929050565b8015158114610c1757600080fd5b60008060008060808587031215610cb657600080fd5b843593506020850135610c4281610c92565b600080600060608486031215610cdd57600080fd5b833592506020840135610cef81610c02565b929592945050506040919091013590565b60008060408385031215610d1357600080fd5b82516020840151909250610c8781610c02565b600060208284031215610d3857600080fd5b8151610d4381610c02565b9392505050565b600060208284031215610d5c57600080fd5b5051919050565b81810381811115610d9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b6000825160005b81811015610dc45760208186018101518583015201610daa565b506000920191825250919050565b600060208284031215610de457600080fd5b8151610d4381610c9256fe608060405234801561001057600080fd5b50610162806100206000396000f3fe60806040526004361061001d5760003560e01c806277436014610022575b600080fd5b61003561003036600461007b565b610037565b005b8051602082016000f061004957600080fd5b50565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561008d57600080fd5b813567ffffffffffffffff808211156100a557600080fd5b818401915084601f8301126100b957600080fd5b8135818111156100cb576100cb61004c565b604051601f8201601f19908116603f011681019083821181831017156100f3576100f361004c565b8160405282815287602084870101111561010c57600080fd5b82602086016020830137600092810160200192909252509594505050505056fea264697066735822122094780ce55d28f1d568f4e0ab1b9dc230b96e952b73d2e06456fbff2289fa27f464736f6c63430008150033a2646970667358221220343c402409a6a1884ee51e9c6d4f7d470d7d1cb7be6f89695f08df3e5e3a970364736f6c634300081b0033", "linkReferences": {}, "deployedLinkReferences": {} }