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 wrapped UST is claimed from Anchor via finishRedeemStable.
FailureReported
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