EthAnchor Account contracts are user-specifically generated Ethereum smart contracts for interacting with Anchor Protocol from the Ethereum blockchain.
EthAnchor Account contracts only allow a single operation at a time, tracked by the ActionFlag state.
Events
InitDeposit
Emitted when wrapped UST is requested for deposit to Anchor via initDepositStable.
Emitted when aUST redemption fails due to a lack of stablecoin liquidity in the money market.
EmergencyWithdrawActivated
Emitted when emergencyWithdraw is activated for withdrawing ERC20 tokens from the contract.
Functions
initDepositStable
Accepts new wrapped UST deposits.
Prerequisite: must have called approve() for an allowance of at least amount for the wrapped UST contract, ActionFlag is set to falseAccepts: amount - how much UST to deposit
Updates: ActionFlag to trueEmits: InitDeposit
finishDepositStable
Claims resulting wrapped aUST after a successful deposit.
Prerequisite: aUST balance of account-specific endpoint contract must be greater than 0, ActionFlag is set to trueUpdates: sets ActionFlag to false, transfers all aUST balances from contract address to tx.originEmits: FinishDeposit
initRedeemStable
Accepts wrapped aUST for redemption back to wrapped UST.
Prerequisite: must have called approve() for an allowance of at least amount for the wrapped aUST contract, ActionFlag is set to falseAccepts: amount - how much aUST to redeem back to UST
Updates: ActionFlag to trueIMPORTANT: aUST redemptions may fail if UST liquidity is low in the Terra side Anchor money market → be sure to check account contract balances & initRedeemStable()success parameters.
Emits: InitRedemption
finishRedeemStable
Claims resulting wrapped UST after withdrawal.
Prerequisite: UST balance of account-specific endpoint contract must be greater than 0, ActionFlag is set to trueUpdates: sets ActionFlag to false, transfers all UST balances from contract address to tx.originEmits: FinishRedemption
reportFailure
Reports any failures in-between init operations to allow the EthAnchor operator to return any funds, and reset ActionFlag back to false. Only callable by contract owner.
Prerequisite: UST balance of account-specific endpoint contract must be 0, ActionFlag is set to trueUpdates: sets ActionFlag to false
emergencyWithdraw
Withdraws all balances of any ERC20 token from the contract. Only callable by contract owner.
Prerequisite: ERC20 token balances of token contract _tokenAddress at contract address must be greater than 0
Updates: transfers all ERC20 token balances of token contract _tokenAddress back to msg.sender