Instruction
InitLendingMarket
Description: Initializes a new lending market.
Tag: 0
Accounts
0. `[signer]` Init lending market authority 1. `[writable]` Lending market account - uninitialized. 2. `[]` Rent sysvar. 3. `[]` Token program id. 4. `[]` Pyth oracle program id. 5. `[]` Larix oracle program id. 6. `[]` Larix oracle id.
Parameters
/// Owner authority which can add new reserves owner: Pubkey, /// Currency market prices are quoted in /// e.g. "USD" null padded (`*b"USD\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ 0\0\0\0\0\0\0\0\0"`) or a SPL token mint pubkey quote_currency: [u8; 32],
SetLendingMarketOwner
Description: Sets the new owner of a lending market
Tag: 1
Accounts
0. `[writable]` Lending market account. 1. `[signer]` Current owner.
Parameters
/// The new owner new_owner: Pubkey,
InitReserve
Description: Initializes a new lending market reserve
Tag: 2
Accounts
0. `[writable]` Reserve account - uninitialized. 1. `[]` Reserve liquidity SPL Token mint. 2. `[]` Reserve liquidity supply SPL Token account. 3. `[]` Reserve liquidity fee receiver. 4. `[]` Pyth product account when is_lp is false Any account when is_lp is true 5. `[]` Reserve liquidity pyth oracle account when is_lp is false; BridgePool account of bridge program when is_lp is true 6. `[]` Reserve liquidity larix oracle account when is_lp is false LpPrice account of bridge program when is_lp is true 7. `[]` Reserve collateral SPL Token mint. 8. `[]` Reserve collateral token supply. 9 `[]` Lending market account. 10 `[signer]` Lending market owner. 11 `[]` Un_coll_supply_account 12 `[]` Clock sysvar. 13 `[]` Rent sysvar. 14 `[]` Token program id.
Parameters
/// Reserve configuration values config: ReserveConfig, total_mining_speed: u64, kink_util_rate: u64, use_pyth_oracle:bool, is_lp:bool,
RefreshReserve
Description: Accrue interest and update market price of liquidity on a reserve.
Tag: 3
Accounts:
0. `[writable]` Reserve account. 1. `[]` Reserve liquidity oracle account. Must be the Pyth price account specified at InitReserve. 2. `[]` Larix oracle
DepositReserveLiquidity
Description: Deposit liquidity into a reserve in exchange for collateral. Collateral represents a share
Tag: 4
Accounts
0. `[writable]` Source liquidity token account. $authority can transfer $liquidity_amount. 1. `[writable]` Destination collateral token account. 2. `[writable]` Reserve account. 3. `[writable]` Reserve collateral SPL Token mint. 4. `[writable]` Reserve liquidity supply SPL Token account. 5. `[]` Lending market account. 6. `[]` Derived lending market authority. 7. `[signer]` User transfer authority ($authority). 8. `[]` Token program id.
Parameters
/// Amount of liquidity to deposit in exchange for collateral tokens liquidity_amount: u64,
RedeemReserveCollateral
Description: Redeem collateral from a reserve in exchange for liquidity.
Tag: 5
Accounts
0. `[writable]` Source collateral token account. $authority can transfer $collateral_amount. 1. `[writable]` Destination liquidity token account. 2. `[writable]` Reserve account. 3. `[writable]` Reserve collateral SPL Token mint. 4. `[writable]` Reserve liquidity supply SPL Token account. 5. `[]` Lending market account. 6. `[]` Derived lending market authority. 7. `[signer]` User transfer authority ($authority). 8. `[]` Token program id.
Parameters
/// Amount of collateral tokens to redeem in exchange for liquidity collateral_amount: u64,
InitObligation
Description: Initializes a new lending market obligation
Tag: 6
Accounts
0. `[writable]` Obligation account - uninitialized. 1. `[]` Lending market account. 2. `[signer]` Obligation owner. 3. `[]` Token program id.
RefreshObligation
Description: Refresh an obligation's accrued interest and collateral and liquidity prices. Requires refreshed reserves, as all obligation collateral deposit reserves in order, followed by all liquidity borrow reserves in order.
Tag: 7
Accounts
0. `[writable]` Obligation account. 1. `[]` Collateral deposit reserve accounts - refreshed, all, in order. 2. `[]` Liquidity borrow reserve accounts - refreshed, all, in order.
DepositObligationCollateral
Description: Deposit collateral to an obligation. Requires a refreshed reserve.
Tag: 8
Accounts
0. `[writable]` Source collateral token account. Minted by deposit reserve collateral mint. $authority can transfer $collateral_amount. 1. `[writable]` Destination deposit reserve collateral supply SPL Token account. 2. `[]` Deposit reserve account - refreshed. 3. `[writable]` Obligation account. 4. `[]` Lending market account. 5. `[]` Derived lending market authority. 6. `[signer]` Obligation owner. 7. `[signer]` User transfer authority ($authority). 8. `[]` Token program id.
Parameters
/// Amount of collateral tokens to deposit collateral_amount: u64,
WithdrawObligationCollateral
Description: Withdraw collateral from an obligation. Requires a refreshed obligation and reserve.
Tag: 9
Accounts
0. `[writable]` Source withdraw reserve collateral supply SPL Token account. 1. `[writable]` Destination collateral token account. Minted by withdraw reserve collateral mint. 2. `[]` Withdraw reserve account - refreshed. 3. `[writable]` Obligation account - refreshed. 4. `[]` Lending market account. 5. `[]` Derived lending market authority. 6. `[signer]` Obligation owner. 7. `[]` Token program id.
parameters
/// Amount of collateral tokens to withdraw - u64::MAX for up to 100% of deposited amount collateral_amount: u64,
BorrowObligationLiquidity
Description: Borrow liquidity from a reserve by depositing collateral tokens; Requires a refreshed obligation and reserve.
Tag: 10
Accounts
::Useless The current account will not be used. It is used to make up the account number, in order to keep the size of the current instruction is equals to liquidate obligation instruction, to avoid the situation that the current transaction is successful but the liquidate cannot be performed. 0. `[writable]` Source borrow reserve liquidity supply SPL Token account. 1. `[writable]` Destination liquidity token account. Minted by borrow reserve liquidity mint. 2. `[writable]` Borrow reserve account - refreshed. 3. `[writable]` Obligation account - refreshed. 4. `[]` Lending market account. 5. `[]` Derived lending market authority. 6. `[signer]` Obligation owner. 7. `[]` Token program id. 8. `[]` Larix oracle program account- Useless 9. `[]` Mine mint account - Useless 10.`[]` Mine supply account - Useless
Parameters
/// Amount of liquidity to borrow - u64::MAX for 100% of borrowing power liquidity_amount: u64,
RepayObligationLiquidit
Description: Repay borrowed liquidity to a reserve; Requires a refreshed obligation and reserve.
Tag: 11
Accounts
0. `[writable]` Source liquidity token account. Minted by repay reserve liquidity mint. $authority can transfer $liquidity_amount. 1. `[writable]` Destination repay reserve liquidity supply SPL Token account. 2. `[writable]` Repay reserve account - refreshed. 3. `[writable]` Obligation account - refreshed. 4. `[]` Lending market account. 5. `[signer]` User transfer authority ($authority). 6. `[]` Token program id.
Parameters
/// Amount of liquidity to repay - u64::MAX for 100% of borrowed amount liquidity_amount: u64,
LiquidateObligation
Description: Repay borrowed liquidity to a reserve to receive collateral at a discount from an unhealthy obligation; Requires a refreshed obligation and reserves.
Tag: 12
Accounts
0. `[writable]` Source liquidity token account. Minted by repay reserve liquidity mint. $authority can transfer $liquidity_amount. 1. `[writable]` Destination collateral token account. Minted by withdraw reserve collateral mint. 2. `[writable]` Repay reserve account - refreshed. 3. `[writable]` Repay reserve liquidity supply SPL Token account. 4. `[]` Withdraw reserve account - refreshed. 5. `[writable]` Withdraw reserve collateral supply SPL Token account. 6. `[writable]` Obligation account - refreshed. 7. `[]` Lending market account. 8. `[]` Derived lending market authority. 9. `[signer]` User transfer authority ($authority). 10 `[]` Clock sysvar. 11 `[]` Token program id.
Parameters
/// Amount of liquidity to repay - u64::MAX for up to 100% of borrowed amount liquidity_amount: u64,
FlashLoan
Description: Make a flash loan
Tag: 13
Accounts
0. `[writable]` Source liquidity token account. Minted by reserve liquidity mint. Must match the reserve liquidity supply. 1. `[writable]` Destination liquidity token account. Minted by reserve liquidity mint. 2. `[writable]` Reserve account. 3. `[writable]` Flash loan fee receiver account. Must match the reserve liquidity fee receiver. 4. `[writable]` Host fee receiver. 5. `[]` Lending market account. 6. `[]` Derived lending market authority. 7. `[]` Token program id. 8. `[]` Flash loan receiver program id. Must implement an instruction that has tag of 0 and a signature of `(amount: u64)` This instruction must return the amount to the source liquidity account. 9. `[signer]` Flash loan authority 10. `[any]` Additional accounts expected by the receiving program's `ReceiveFlashLoan` instruction. The flash loan receiver program that is to be invoked should contain an instruction with tag `0` and accept the total amount (including fee) that needs to be returned back after its execution has completed. Flash loan receiver should have an instruction with the following signature: 0. `[writable]` Source liquidity (matching the destination from above). 1. `[writable]` Destination liquidity (matching the source from above). 2. `[]` Token program id 3. `[any]` Additional accounts provided to the lending program's `FlashLoan` instruction above ReceiveFlashLoan { // Amount that must be repaid by the receiver program amount: u64 }
Parameters
/// The amount that is to be borrowed - u64::MAX for up to 100% of available liquidity amount: u64, call_back_data: Vec<u8>
SetConfig
Description: Set Configures
Tag: 14
Parameters
config_type:ConfigType
InitMining
Description: Initializes mining int he obligation account.
Tag: 16
Accounts
0. `[]` Mining account 1. `[signer]` Mining owner 2. `[]` Lending market account
DepositMining
Description: Deposits the mining benefits to the obligation account.
Tag: 18
Account
0. `[Writable]` Source account 1. `[Writable]` UnColl deposit supply SPL Token account. 2. `[Writable]` Mining account 3. `[]` Bonus account 4. `[]` Lending market account. 5. `[]` Derived lending market authority. 6. `[]` Mining owner. 7. `[signer]` User transfer authority ($authority). 8. `[]` Token program id.
Parameters
/// The amount of mining benefits amount:u64
WithdrawMining
Description: Withdraws mining benefits.
Tag: 19
Account
0. `[writable]` Source account 1. `[writable]` UnColl deposit supply SPL Token account. 2. `[writable]` Mining account 3. `[writable]` Reserve account 4. `[]` Lending market account. 5. `[]` Derived lending market authority. 6. `[]` Mining owner. 7. `[]` Token program id.
Parameters
/// The amount of mining benefits amount:u64
ClaimMiningMine
Description: Claims the owner of the mining benefits.
Tag: 20
Account
0. `[writable]` Mining account 1. `[]` Mine supply 2. `[]` Destination account 3. `[Signer]` Mining owner 4. `[]` Lending market info 5. `[]` Lending market authority 6. `[]` Token program id 7. `[]` ... Reserves
ClaimObligationMine
Description: Claims the obligation.
Tag: 21
Account
0. `[writable]` Obligation account
1. `[]` Mine supply
2. `[]` Destination account
3. `[Signer]` Mining owner
4. `[]` Lending market info
5. `[]` Lending market authority
6. `[]` Token program id
7. `[]`
... Deposit reserves
8. `[]`
... Borrow reserves
ClaimOwnerFee
Description: Claim owner's fee.
Tag: 22
Account
0. `[]` Source account (liquidity supply account)
1. `[]` Destination account receive owner fee
2. `[]` Lending market account
3. `[singer]` Lending market owner
ReceivePendingOwner
Description: Receive pending owner.
Tag: 23
Account
0. `[Write]` Lending Market
1. `[Signer]` Pending owner
RefreshReserves
Description: Refresh the current reserves
Tag: 24
Account
0. `[writable]` Reserve account.
1. `[]` Oracle account larix oracle or pyth price account .
LiquidateObligation2
Description: Repay borrowed liquidity to a reserve to receive collateral at a discount from an unhealthy obligation. Requires a refreshed obligation and reserves.
Tag: 25
Account
0. `[writable]` Source liquidity token account. Minted by repay reserve liquidity mint. $authority can transfer $liquidity_amount. 1. `[writable]` Destination collateral token account. Minted by withdraw reserve collateral mint. 2. `[writable]` Repay reserve account - refreshed. 3. `[writable]` Repay reserve liquidity supply SPL Token account. 4. `[]` Withdraw reserve account - refreshed. 5. `[writable]` Withdraw reserve collateral supply SPL Token account. 6. `[writable]` Obligation account - refreshed. 7. `[]` Lending market account. 8. `[]` Derived lending market authority. 9. `[signer]` User transfer authority ($authority). 10 `[]` Token program id.
Parameters
/// Amount of liquidity to repay - u64::MAX for up to 100% of borrowed amount liquidity_amount: u64,
Last updated
Was this helpful?