HopImpl
Deploy on AlchemyContract Information
Explore the source code, ABI, and bytecode for the HopImpl smart contract.
More Info
[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"integratorId","type":"uint256"}],"name":"HopBridgeSend","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":true,"internalType":"address","name":"registryAddress","type":"address"}],"name":"UpdateRegistryAddress","type":"event"},{"inputs":[],"name":"NATIVE_TOKEN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_receiverAddress","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_toChainId","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"outboundTransferTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"userAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRegistry","type":"address"}],"name":"updateRegistryAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}]
[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"integratorId","type":"uint256"}],"name":"HopBridgeSend","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":true,"internalType":"address","name":"registryAddress","type":"address"}],"name":"UpdateRegistryAddress","type":"event"},{"inputs":[],"name":"NATIVE_TOKEN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_receiverAddress","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_toChainId","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"outboundTransferTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"userAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRegistry","type":"address"}],"name":"updateRegistryAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}]
608060405234801561001057600080fd5b5060405161104738038061104783398101604081905261002f916100b2565b8061003933610062565b600180546001600160a01b0319166001600160a01b0392909216919091178155600255506100e0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100c3578081fd5b81516001600160a01b03811681146100d9578182fd5b9392505050565b610f58806100ef6000396000f3fe6080604052600436106100965760003560e01c80638da5cb5b11610069578063df2ebdbb1161004e578063df2ebdbb1461015f578063e42e0ea914610187578063f2fde38b146101a757600080fd5b80638da5cb5b14610121578063c57a88251461013f57600080fd5b8063022490c81461009b5780636ccae054146100b0578063715018a6146100d05780637b103999146100e5575b600080fd5b6100ae6100a9366004610dde565b6101c7565b005b3480156100bc57600080fd5b506100ae6100cb366004610cd5565b610517565b3480156100dc57600080fd5b506100ae61058a565b3480156100f157600080fd5b50600154610105906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b34801561012d57600080fd5b506000546001600160a01b0316610105565b34801561014b57600080fd5b506100ae61015a366004610c8e565b6105f0565b34801561016b57600080fd5b5061010573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561019357600080fd5b506100ae6101a2366004610caa565b6106a1565b3480156101b357600080fd5b506100ae6101c2366004610c8e565b610731565b60015460408051808201909152600e81527f494e56414c49445f53454e4445520000000000000000000000000000000000006020820152906001600160a01b031633146102305760405162461bcd60e51b81526004016102279190610eb3565b60405180910390fd5b506002805414156102835760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610227565b60028055600061029582840184610d35565b60a0810151604051919250907fac775f5ed372a54aad9d77103ce0a40ec1ad6c121b6fe361723806fcf157dae990600090a26001600160a01b03851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156103e85760408051808201909152601981527f56414c55455f4e4f545f455155414c5f544f5f414d4f554e540000000000000060208201523489146103405760405162461bcd60e51b81526004016102279190610eb3565b508051604080830151608084015160208501516060860151935163deace8f560e01b8152600481018a90526001600160a01b038c81166024830152604482018f905260648201949094526084810192909252821660a482015260c48101929092529091169063deace8f5908a9060e4016000604051808303818588803b1580156103c957600080fd5b505af11580156103dd573d6000803e3d6000fd5b505050505050610509565b60408051808201909152601481527f56414c55455f53484f554c445f42455f5a45524f0000000000000000000000006020820152341561043b5760405162461bcd60e51b81526004016102279190610eb3565b506104516001600160a01b03861688308b610813565b8051610468906001600160a01b038716908a6108b1565b8051604080830151608084015160208501516060860151935163deace8f560e01b8152600481018a90526001600160a01b038c81166024830152604482018f905260648201949094526084810192909252821660a482015260c48101929092529091169063deace8f59060e401600060405180830381600087803b1580156104ef57600080fd5b505af1158015610503573d6000803e3d6000fd5b50505050505b505060016002555050505050565b6000546001600160a01b031633146105715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610227565b6105856001600160a01b0384168383610972565b505050565b6000546001600160a01b031633146105e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610227565b6105ee60006109a2565b565b6000546001600160a01b0316331461064a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610227565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517fab1d989cb101ab9394f5e690844e769db62bd90dea8786bcd2cb53b1fe7d0e1090600090a250565b6000546001600160a01b031633146106fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610227565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610585573d6000803e3d6000fd5b6000546001600160a01b0316331461078b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610227565b6001600160a01b0381166108075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610227565b610810816109a2565b50565b6040516001600160a01b03808516602483015283166044820152606481018290526108ab9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526109ff565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109359190610dc6565b61093f9190610ee6565b6040516001600160a01b0385166024820152604481018290529091506108ab90859063095ea7b360e01b90606401610847565b6040516001600160a01b03831660248201526044810182905261058590849063a9059cbb60e01b90606401610847565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610a54826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ae49092919063ffffffff16565b8051909150156105855780806020019051810190610a729190610d15565b6105855760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610227565b6060610af38484600085610afd565b90505b9392505050565b606082471015610b755760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610227565b6001600160a01b0385163b610bcc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610227565b600080866001600160a01b03168587604051610be89190610e97565b60006040518083038185875af1925050503d8060008114610c25576040519150601f19603f3d011682016040523d82523d6000602084013e610c2a565b606091505b5091509150610c3a828286610c45565b979650505050505050565b60608315610c54575081610af6565b825115610c645782518084602001fd5b8160405162461bcd60e51b81526004016102279190610eb3565b8035610c8981610f36565b919050565b600060208284031215610c9f578081fd5b8135610af681610f36565b60008060408385031215610cbc578081fd5b8235610cc781610f36565b946020939093013593505050565b600080600060608486031215610ce9578081fd5b8335610cf481610f36565b92506020840135610d0481610f36565b929592945050506040919091013590565b600060208284031215610d26578081fd5b81518015158114610af6578182fd5b600060c08284031215610d46578081fd5b60405160c0810181811067ffffffffffffffff82111715610d7557634e487b7160e01b83526041600452602483fd5b604052610d8183610c7e565b8152610d8f60208401610c7e565b602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201528091505092915050565b600060208284031215610dd7578081fd5b5051919050565b600080600080600080600060c0888a031215610df8578283fd5b873596506020880135610e0a81610f36565b95506040880135610e1a81610f36565b94506060880135610e2a81610f36565b93506080880135925060a088013567ffffffffffffffff80821115610e4d578384fd5b818a0191508a601f830112610e60578384fd5b813581811115610e6e578485fd5b8b6020828501011115610e7f578485fd5b60208301945080935050505092959891949750929550565b60008251610ea9818460208701610f0a565b9190910192915050565b6020815260008251806020840152610ed2816040850160208701610f0a565b601f01601f19169190910160400192915050565b60008219821115610f0557634e487b7160e01b81526011600452602481fd5b500190565b60005b83811015610f25578181015183820152602001610f0d565b838111156108ab5750506000910152565b6001600160a01b038116811461081057600080fdfea164736f6c6343000804000a000000000000000000000000c30141b657f4216252dc59af2e7cdb9d8792e1b0
608060405234801561001057600080fd5b5060405161104738038061104783398101604081905261002f916100b2565b8061003933610062565b600180546001600160a01b0319166001600160a01b0392909216919091178155600255506100e0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100c3578081fd5b81516001600160a01b03811681146100d9578182fd5b9392505050565b610f58806100ef6000396000f3fe6080604052600436106100965760003560e01c80638da5cb5b11610069578063df2ebdbb1161004e578063df2ebdbb1461015f578063e42e0ea914610187578063f2fde38b146101a757600080fd5b80638da5cb5b14610121578063c57a88251461013f57600080fd5b8063022490c81461009b5780636ccae054146100b0578063715018a6146100d05780637b103999146100e5575b600080fd5b6100ae6100a9366004610dde565b6101c7565b005b3480156100bc57600080fd5b506100ae6100cb366004610cd5565b610517565b3480156100dc57600080fd5b506100ae61058a565b3480156100f157600080fd5b50600154610105906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b34801561012d57600080fd5b506000546001600160a01b0316610105565b34801561014b57600080fd5b506100ae61015a366004610c8e565b6105f0565b34801561016b57600080fd5b5061010573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561019357600080fd5b506100ae6101a2366004610caa565b6106a1565b3480156101b357600080fd5b506100ae6101c2366004610c8e565b610731565b60015460408051808201909152600e81527f494e56414c49445f53454e4445520000000000000000000000000000000000006020820152906001600160a01b031633146102305760405162461bcd60e51b81526004016102279190610eb3565b60405180910390fd5b506002805414156102835760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610227565b60028055600061029582840184610d35565b60a0810151604051919250907fac775f5ed372a54aad9d77103ce0a40ec1ad6c121b6fe361723806fcf157dae990600090a26001600160a01b03851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156103e85760408051808201909152601981527f56414c55455f4e4f545f455155414c5f544f5f414d4f554e540000000000000060208201523489146103405760405162461bcd60e51b81526004016102279190610eb3565b508051604080830151608084015160208501516060860151935163deace8f560e01b8152600481018a90526001600160a01b038c81166024830152604482018f905260648201949094526084810192909252821660a482015260c48101929092529091169063deace8f5908a9060e4016000604051808303818588803b1580156103c957600080fd5b505af11580156103dd573d6000803e3d6000fd5b505050505050610509565b60408051808201909152601481527f56414c55455f53484f554c445f42455f5a45524f0000000000000000000000006020820152341561043b5760405162461bcd60e51b81526004016102279190610eb3565b506104516001600160a01b03861688308b610813565b8051610468906001600160a01b038716908a6108b1565b8051604080830151608084015160208501516060860151935163deace8f560e01b8152600481018a90526001600160a01b038c81166024830152604482018f905260648201949094526084810192909252821660a482015260c48101929092529091169063deace8f59060e401600060405180830381600087803b1580156104ef57600080fd5b505af1158015610503573d6000803e3d6000fd5b50505050505b505060016002555050505050565b6000546001600160a01b031633146105715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610227565b6105856001600160a01b0384168383610972565b505050565b6000546001600160a01b031633146105e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610227565b6105ee60006109a2565b565b6000546001600160a01b0316331461064a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610227565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040517fab1d989cb101ab9394f5e690844e769db62bd90dea8786bcd2cb53b1fe7d0e1090600090a250565b6000546001600160a01b031633146106fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610227565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610585573d6000803e3d6000fd5b6000546001600160a01b0316331461078b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610227565b6001600160a01b0381166108075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610227565b610810816109a2565b50565b6040516001600160a01b03808516602483015283166044820152606481018290526108ab9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526109ff565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109359190610dc6565b61093f9190610ee6565b6040516001600160a01b0385166024820152604481018290529091506108ab90859063095ea7b360e01b90606401610847565b6040516001600160a01b03831660248201526044810182905261058590849063a9059cbb60e01b90606401610847565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610a54826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ae49092919063ffffffff16565b8051909150156105855780806020019051810190610a729190610d15565b6105855760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610227565b6060610af38484600085610afd565b90505b9392505050565b606082471015610b755760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610227565b6001600160a01b0385163b610bcc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610227565b600080866001600160a01b03168587604051610be89190610e97565b60006040518083038185875af1925050503d8060008114610c25576040519150601f19603f3d011682016040523d82523d6000602084013e610c2a565b606091505b5091509150610c3a828286610c45565b979650505050505050565b60608315610c54575081610af6565b825115610c645782518084602001fd5b8160405162461bcd60e51b81526004016102279190610eb3565b8035610c8981610f36565b919050565b600060208284031215610c9f578081fd5b8135610af681610f36565b60008060408385031215610cbc578081fd5b8235610cc781610f36565b946020939093013593505050565b600080600060608486031215610ce9578081fd5b8335610cf481610f36565b92506020840135610d0481610f36565b929592945050506040919091013590565b600060208284031215610d26578081fd5b81518015158114610af6578182fd5b600060c08284031215610d46578081fd5b60405160c0810181811067ffffffffffffffff82111715610d7557634e487b7160e01b83526041600452602483fd5b604052610d8183610c7e565b8152610d8f60208401610c7e565b602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201528091505092915050565b600060208284031215610dd7578081fd5b5051919050565b600080600080600080600060c0888a031215610df8578283fd5b873596506020880135610e0a81610f36565b95506040880135610e1a81610f36565b94506060880135610e2a81610f36565b93506080880135925060a088013567ffffffffffffffff80821115610e4d578384fd5b818a0191508a601f830112610e60578384fd5b813581811115610e6e578485fd5b8b6020828501011115610e7f578485fd5b60208301945080935050505092959891949750929550565b60008251610ea9818460208701610f0a565b9190910192915050565b6020815260008251806020840152610ed2816040850160208701610f0a565b601f01601f19169190910160400192915050565b60008219821115610f0557634e487b7160e01b81526011600452602481fd5b500190565b60005b83811015610f25578181015183820152602001610f0d565b838111156108ab5750506000910152565b6001600160a01b038116811461081057600080fdfea164736f6c6343000804000a000000000000000000000000c30141b657f4216252dc59af2e7cdb9d8792e1b0