GainsDepositManager
Documentation for eth_defi.erc_4626.vault_protocol.gains.deposit_redeem.GainsDepositManager Python class.
- class GainsDepositManager
Bases:
eth_defi.erc_4626.deposit_redeem.ERC4626DepositManagerAdd Gains-specific redemption logic.
Attributes summary
web3Methods summary
__init__(vault)analyse_deposit(claim_tx_hash, deposit_ticket)Analyse the transaction where we claim shares
analyse_redemption(claim_tx_hash, ...)Analyse the transaction where we claim our capital back.
can_create_deposit_request(owner)Vault is always open for deposits.
Gains allows request redemptioon only two first dayas of three days epoch.
can_finish_deposit(deposit_ticket)Synchronous deposits can be finished immediately.
can_finish_redeem(redemption_ticket)Check if the redemption request can be redeemed now.
create_deposit_request(owner[, to, amount, ...])create_redemption_request(owner[, to, ...])Build a redeem transction.
estimate_deposit(owner, amount[, ...])How many shares we get for a deposit.
estimate_redeem(owner, shares[, ...])How many denomination tokens we get for a redeem.
Get the redemption delay for this vault.
finish_deposit(deposit_ticket)Can we finish the deposit process in async vault.
finish_redemption(redemption_ticket)get_max_deposit(owner)How much we can deposit
get_redemption_delay_over(address)Get the redemption timer left for an address.
Does this vault support synchronous deposits?
Does this vault support synchronous deposits?
is_deposit_in_progress(owner)Check if the owner has an active deposit request.
is_redemption_in_progress(owner)Check if the owner has an active redemption request.
- __init__(vault)
- Parameters
vault (eth_defi.gains.vault.GainsVault) –
- can_create_deposit_request(owner)
Vault is always open for deposits.
- Parameters
owner (eth_typing.evm.HexAddress) –
- Return type
- create_redemption_request(owner, to=None, shares=None, raw_shares=None, check_max_deposit=True, check_enough_token=True)
Build a redeem transction.
Note
Withdrawal requests can only be executed in the first 2 days of each epoch.
Notes on Gains / Ostium withdrawals.
- Parameters
owner (eth_typing.evm.HexAddress) – Deposit owner.
shares (decimal.Decimal) –
Share amount in decimal.
Will be converted to raw_shares using share_token decimals.
raw_shares (int) – Raw amount in share token
to (eth_typing.evm.HexAddress) –
- Return type
eth_defi.erc_4626.vault_protocol.gains.deposit_redeem.GainsRedemptionRequest
- can_create_redemption_request(owner)
Gains allows request redemptioon only two first dayas of three days epoch.
- Returns
True if can create a redemption request now
- Parameters
owner (eth_typing.evm.HexAddress) –
- Return type
- can_finish_redeem(redemption_ticket)
Check if the redemption request can be redeemed now.
Phase 2 of redemption, after settlement
- Parameters
redemption_request_ticket – Redemption request ticket from create_redemption_request()
redemption_ticket (eth_defi.erc_4626.vault_protocol.gains.deposit_redeem.GainsRedemptionTicket) –
- Returns
True if can be redeemed now
- has_synchronous_redemption()
Does this vault support synchronous deposits?
E.g. ERC-4626 vaults
- Return type
- estimate_redemption_delay()
Get the redemption delay for this vault.
What is overall redemption delay: not related to the current moment
How long it takes before a redemption request is allowed
This is not specific for any address, but the general vault rule
E.g. you get 0xa592703b is an IPOR Fusion error code AccountIsLocked, if you try to instantly redeem from IPOR vaults
- Returns
Redemption delay as a
datetime.timedelta- Raises
NotImplementedError – If not implemented for this vault protocoll.
- Return type
- is_redemption_in_progress(owner)
Check if the owner has an active redemption request.
- Parameters
owner (eth_typing.evm.HexAddress) – Owner of the shares
- Returns
True if there is an active redemption request
- Return type
- analyse_deposit(claim_tx_hash, deposit_ticket)
Analyse the transaction where we claim shares
Return information of the actual executed price for which we got the shares for
- Parameters
claim_tx_hash (hexbytes.main.HexBytes | str) –
deposit_ticket (eth_defi.vault.deposit_redeem.DepositTicket | None) –
- Return type
eth_defi.vault.deposit_redeem.DepositRedeemEventAnalysis | eth_defi.vault.deposit_redeem.DepositRedeemEventFailure
- analyse_redemption(claim_tx_hash, redemption_ticket)
Analyse the transaction where we claim our capital back.
Return information of the actual executed price for which we got the shares for
- Parameters
claim_tx_hash (hexbytes.main.HexBytes | str) –
redemption_ticket (eth_defi.vault.deposit_redeem.RedemptionTicket | None) –
- Return type
eth_defi.vault.deposit_redeem.DepositRedeemEventAnalysis | eth_defi.vault.deposit_redeem.DepositRedeemEventFailure
- can_finish_deposit(deposit_ticket)
Synchronous deposits can be finished immediately.
- Parameters
deposit_ticket (eth_defi.erc_4626.deposit_redeem.ERC4626DepositTicket) –
- estimate_deposit(owner, amount, block_identifier='latest')
How many shares we get for a deposit.
- Parameters
owner (eth_typing.evm.HexAddress) –
amount (decimal.Decimal) –
block_identifier (Union[Literal['latest', 'earliest', 'pending', 'safe', 'finalized'], eth_typing.evm.BlockNumber, eth_typing.evm.Hash32, eth_typing.encoding.HexStr, int]) –
- Return type
- estimate_redeem(owner, shares, block_identifier='latest')
How many denomination tokens we get for a redeem.
- Parameters
owner (eth_typing.evm.HexAddress) –
shares (decimal.Decimal) –
block_identifier (Union[Literal['latest', 'earliest', 'pending', 'safe', 'finalized'], eth_typing.evm.BlockNumber, eth_typing.evm.Hash32, eth_typing.encoding.HexStr, int]) –
- Return type
- finish_deposit(deposit_ticket)
Can we finish the deposit process in async vault.
We can claim our shares from the vault now
- Parameters
deposit_ticket (eth_defi.vault.deposit_redeem.DepositTicket) –
- Return type
web3.contract.contract.ContractFunction
- get_max_deposit(owner)
How much we can deposit
- Parameters
owner (eth_typing.evm.HexAddress) –
- Return type
decimal.Decimal | None
- get_redemption_delay_over(address)
Get the redemption timer left for an address.
How long it takes before a redemption request is allowed
This is not specific for any address, but the general vault rule
E.g. you get 0xa592703b is an IPOR Fusion error code AccountIsLocked, if you try to instantly redeem from IPOR vaults
- Returns
UTC timestamp when the account can redeem.
Naive datetime.
- Raises
NotImplementedError – If not implemented for this vault protocoll.
- Parameters
address (Union[eth_typing.evm.HexAddress, str]) –
- Return type
- has_synchronous_deposit()
Does this vault support synchronous deposits?
E.g. ERC-4626 vaults
- Return type
- is_deposit_in_progress(owner)
Check if the owner has an active deposit request.
- Parameters
owner (eth_typing.evm.HexAddress) – Owner of the shares
- Returns
True if there is an active redemption request
- Return type