market¶
- class algofipy.lending.v2.market.Market(lending_client, market_config)¶
Bases:
object- b_asset_to_asset_amount(amount)¶
Converts b asset amount to underlying amount
- Parameters:
amount (int) – b asset amount
- Returns:
underlying asset amount
- Return type:
int
Converts borrow shares to underlying borrowed amount.
- Parameters:
amount (int) – borrow shares amount
- Returns:
underlying borrowed amount
- Return type:
int
- get_add_b_asset_collateral_txns(user, b_asset_amount, params=None)¶
Returns a
TransactionGroupobject representing an add collateral group transaction against the algofi protocol. Sender adds bank asset amount to collateral by sending them to the account address of the market application that generates the bank assets.- Parameters:
user (
LendingUser) – account for the senderb_asset_amount (int) – amount of bank asset to add to collateral
params – algod params
- Returns:
TransactionGroupobject representing an add collateral group transaction of size 2- Return type:
TransactionGroup
- get_add_underlying_collateral_txns(user, underlying_amount, params=None)¶
Returns a
TransactionGroupobject representing an add collateral group transaction against the algofi protocol. Sender adds underlying asset amount to collateral by sending it to the account address of the market application that updates user active collateral.- Parameters:
user (
LendingUser) – account for the senderunderlying_amount (int) – amount of underlying asset to add to collateral
params – algod params
- Returns:
TransactionGroupobject representing an add collateral group transaction of size 2- Return type:
TransactionGroup
- get_aprs(total_supplied, total_borrowed)¶
Return the supply and borrow APR for the market.
- Parameters:
total_supplied (int) – total amount underlying assets supplied
total_borrowed (int) – total amount underlying assets borrowed
- Returns:
(supply_apr, borrow_apr)
- Return type:
(float, float)
- get_b_asset_opt_in_txn(user, params=None)¶
Returns a
AssetTransferTxnobject representing a transfer of zero units of the b asset.- Parameters:
user (
LendingUser) – account for the senderparams – algod params
- Returns:
AssetTransferTxnof underlying asset with 0 amount from user to self- Return type:
AssetTransferTxn
- get_b_asset_to_underlying_exchange_rate(block=None)¶
Returns b_asset_to_underlying_exchange_rate for this market
- Parameters:
block (int, optional) – block at which to get historical data
- Returns:
b_asset_to_underlying_exchange_rate
- Return type:
int
- get_borrow_txns(user, underlying_amount, params=None)¶
Returns a
TransactionGroupobject representing a borrow group transaction against the algofi protocol. Sender borrows underlying asset against their collateral in the protocol.- Parameters:
user (
LendingUser) – account for the senderunderlying_amount (int) – amount to borrow
params – algod params
- Returns:
TransactionGroupobject representing a borrow group transaction of size (preamble_length + 1)- Return type:
TransactionGroup
- get_burn_txns(user, b_asset_amount, params=None)¶
Returns a
TransactionGroupobject representing a burn group transaction against the algofi protocol. Sender reclaims underlying collateral asset by burning bank asset.- Parameters:
user (
LendingUser) – account for the senderb_asset_amount (int) – amount of underlying asset to remove
params – algod params
- Returns:
TransactionGroupobject representing a burn group transaction of size 2- Return type:
TransactionGroup
- get_claim_rewards_txns(user, program_index, params=None)¶
Returns a
TransactionGroupobject representing a claim rewards group transaction against the algofi protocol. Sender claims accrued rewards from a specified rewards program.- Parameters:
user (
LendingUser) – account for the senderprogram_index (int) – specific program for which the rewards are being claimed
params – algod params
- Returns:
TransactionGroupobject representing a claim rewards group transaction of size 1- Return type:
TransactionGroup
- get_liquidate_txns(user, target_user, repay_amount, seize_collateral_market, params=None)¶
Returns a
TransactionGroupobject representing a liquidate group transaction against the algofi protocol. Sender repays borrowed underlying asset + interest on behalf of the liquidatee and seizes their collateral in a specified market.- Parameters:
user (
LendingUser) – account for the sendertarget_user (
LendingUser) – account for the liquidateerepay_amount (int) – amount to repay
params – algod params
- Param:
seize_collateral_market: market to seize collateral in
- Returns:
TransactionGroupobject representing a liquidate group transaction of size (preamble_length + 3)- Return type:
TransactionGroup
- get_mint_txns(user, underlying_amount, params=None)¶
Returns a
TransactionGroupobject representing a mint bank asset group transaction against the algofi protocol. Sender mints bank asset by sending underlying asset to the account address of the market application which sends back the bank asset.- Parameters:
user (
LendingUser) – account for the senderunderlying_amount (int) – amount of underlying asset to use in minting
params – algod params
- Returns:
TransactionGroupobject representing a mint group transaction of size 2- Return type:
TransactionGroup
- get_remove_b_asset_collateral_txns(user, b_asset_amount, params=None)¶
Returns a
TransactionGroupobject representing a remove collateral group transaction against the algofi protocol. Sender reclaims collateral bank asset by reducing their active collateral.- Parameters:
user (
LendingUser) – account for the senderb_asset_amount (int) – amount of underlying asset to remove
params – algod params
- Returns:
TransactionGroupobject representing a remove collateral group transaction- Return type:
TransactionGroup
- get_remove_underlying_collateral_txns(user, underlying_amount, params=None)¶
Returns a
TransactionGroupobject representing a remove collateral group transaction against the algofi protocol. Sender reclaims underlying collateral asset by reducing their active collateral.- Parameters:
user (
LendingUser) – account for the senderunderlying_amount (int) – amount of underlying asset to remove
params – algod params
- Returns:
TransactionGroupobject representing a remove collateral group transaction of size (preamble_length + 1)- Return type:
TransactionGroup
- get_repay_borrow_txns(user, underlying_amount, params=None)¶
Returns a
TransactionGroupobject representing a repay borrow group transaction against the algofi protocol. Sender repays borrowed underlying asset + interest to the protocol.- Parameters:
user (
LendingUser) – account for the senderunderlying_amount (int) – amount to repay
params – algod params
- Returns:
TransactionGroupobject representing a repay group transaction of size 2- Return type:
TransactionGroup
- get_underlying_asset_opt_in_txn(user, params=None)¶
Returns a
AssetTransferTxnobject representing a transfer of zero units of the market underlying asset.- Parameters:
user (
LendingUser) – account for the senderparams – algod params
- Returns:
AssetTransferTxnof underlying asset with 0 amount from user to self- Return type:
AssetTransferTxn
- get_underlying_supplied()¶
Returns the total amount of underlying asset that has been supplied to the market, including the amount that has been borrowed
- Returns:
Supplied amount in base unit terms
- Return type:
int
- load_state(block=None)¶
Loads market state from the blockchain
- Parameters:
block (int, optional) – block at which to query market state
- Return type:
None
- local_min_balance = 471000¶
- underlying_to_b_asset(amount)¶
Convert underlying asset amount to b asset amount.
- Parameters:
amount (int) – underlying asset amount
- Returns:
b asset amount
- Return type:
int
- underlying_to_usd(amount)¶
Converts underlying to usd
- Parameters:
amount (int) – underlying asset amount
- Returns:
dollarized amount
- Return type:
int