Transferer
The Transferer
contract has the ability to move your tokens to our noncustodial Vault
. It cannot transfer your tokens anywhere else.
Below is a function-by-function explanation of the code.
Roles
There are three roles (one dynamic, two immutable and set during construction) in this contract:
vaultAddress
is the address of the associated Noncustodial VaulttransferEOAs
are addresses that can call our Transfer Functions. These addresses are controlled by our automated detection algorithmtransferEOASetter
is an address owned by Harpie that can set_transferEOAs
Transfer Functions
These functions transfer user assets into the Vault
when we detect a malicious transaction. They're hardcoded to transfer tokens to the vaultAddress
role, and cannot submit user tokens anywhere else. They are only callable by the transferEOA
role.
The
transfer
functions transfer a single user's assets (ERC20/ERC721) to the Vault.The
batchTransfer
functions are able to transfer multiple users' assets. We use these in case of large-scale attacks.
Permission Functions
These functions are only callable by the role transferEOASetter
.
addTransferEEOA
andremoveTransferEOA
add and removetransferEOAs
, the wallets that are able to call the Transfer FunctionsremoveAbilityToSetNewTransferEOAs
is a permanent operation that prevents the addition of any newtransferEOAs
. After calling this flag, Harpie is no longer able to add new wallets to thetransferEOA
role, but will still able to remove them.
Last updated