staking

class algofipy.staking.v2.staking.Staking(staking_client, rewards_manager_app_id, staking_config)

Bases: object

get_claim_txns(user, params=None)

Returns a TransactionGroup object representing a claim rewards group transaction against the algofi protocol. Sender claims accrued rewards from all rewards program.

Parameters:
  • user (StakingUser) – account for the sender

  • params – algod params

Returns:

TransactionGroup object representing a claim rewards group transaction.

Return type:

TransactionGroup

get_stake_txns(user, b_asset_amount, params=None)

Returns a TransactionGroup object representing a stake group transaction against the algofi protocol. Sender adds bank asset amount to staking contract by sending them to the account address of the staking application.

Parameters:
  • user (StakingUser) – staking account for the sender

  • b_asset_amount (int) – amount of bank asset to add to collateral

  • params – algod params

Returns:

TransactionGroup object representing an opt in group transaction of size 3

Return type:

TransactionGroup

get_total_staked()

Returns the total staked amount.

Returns:

Staked amount in base unit terms

Return type:

int

get_unstake_txns(user, b_asset_amount, params=None)

Returns a TransactionGroup object representing a unstake group transaction against the algofi protocol. Sender reclaims bank asset by unstaking.

Parameters:
  • user (StakingUser) – staking account for the sender

  • b_asset_amount (int) – amount of bank asset to add to collateral

  • params – algod params

Returns:

TransactionGroup object representing an opt in group transaction of size 2

Return type:

TransactionGroup

get_user_close_out_txns(user, params=None)

Returns a TransactionGroup object representing a staking close out transaction against the algofi protocol.

Parameters:

user (StakingUser) – staking account for the sender

Returns:

TransactionGroup object representing an opt in group transaction of size 1

Return type:

TransactionGroup

get_user_opt_in_txns(user, params=None)

Returns a TransactionGroup object representing a staking opt in transaction against the algofi protocol.

Parameters:

user (StakingUser) – staking account for the sender

Returns:

TransactionGroup object representing an opt in group transaction of size 1

Return type:

TransactionGroup

load_state(block=None)

Loads staking state from the blockchain

Parameters:

block (int, optional) – block at which to query staking state

Return type:

None