Contract Interface
A details IDL & Contract interface for contract call .
Contract IDL
{
"version": "0.1.0",
"name": "pump_lend",
"instructions": [
{
"name": "initialize",
"docs": [
"* ==========================================================================\n * SYSTEM CONFIG\n * =========================================================================="
],
"accounts": [
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "pumpFunProgram",
"type": "publicKey"
},
{
"name": "baseVirtualTokenReserves",
"type": "u64"
},
{
"name": "baseVirtualSolReserves",
"type": "u64"
},
{
"name": "borrowRatePerSecond",
"type": "u64"
},
{
"name": "vaultAddress",
"type": "publicKey"
}
]
},
{
"name": "updateAuthority",
"accounts": [
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "newAuthority",
"type": "publicKey"
}
]
},
{
"name": "updatePumpFunProgram",
"accounts": [
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "newPumpFunProgram",
"type": "publicKey"
}
]
},
{
"name": "updateBaseVirtualReserves",
"accounts": [
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "newBaseVirtualTokenReserves",
"type": "u64"
},
{
"name": "newBaseVirtualSolReserves",
"type": "u64"
}
]
},
{
"name": "updateBorrowRatePerSecond",
"accounts": [
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "newBorrowRatePerSecond",
"type": "u64"
}
]
},
{
"name": "updateVaultAddress",
"accounts": [
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "newVaultAddress",
"type": "publicKey"
}
]
},
{
"name": "stake",
"docs": [
"* ==========================================================================\n * STAKING\n * =========================================================================="
],
"accounts": [
{
"name": "staker",
"isMut": true,
"isSigner": true
},
{
"name": "referrer",
"isMut": false,
"isSigner": false
},
{
"name": "poolStakingData",
"isMut": true,
"isSigner": false
},
{
"name": "userStakingData",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAuthority",
"isMut": true,
"isSigner": false
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "withdraw",
"accounts": [
{
"name": "staker",
"isMut": true,
"isSigner": true
},
{
"name": "referrer",
"isMut": true,
"isSigner": false
},
{
"name": "poolStakingData",
"isMut": true,
"isSigner": false
},
{
"name": "userStakingData",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAuthority",
"isMut": true,
"isSigner": false
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "shares",
"type": "u64"
}
]
},
{
"name": "borrow",
"accounts": [
{
"name": "borrower",
"isMut": true,
"isSigner": true
},
{
"name": "poolStakingData",
"isMut": true,
"isSigner": false
},
{
"name": "userBorrowData",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAuthority",
"isMut": true,
"isSigner": false
},
{
"name": "userTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMint",
"isMut": false,
"isSigner": false,
"docs": [
"The mint of the token"
]
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false,
"docs": [
"The token program"
]
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "pumpProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "collateralAmount",
"type": "u64"
}
]
},
{
"name": "borrowLoopPump",
"accounts": [
{
"name": "borrower",
"isMut": true,
"isSigner": true
},
{
"name": "poolStakingData",
"isMut": true,
"isSigner": false
},
{
"name": "userBorrowData",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAuthority",
"isMut": true,
"isSigner": false
},
{
"name": "userTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMint",
"isMut": false,
"isSigner": false,
"docs": [
"The mint of the token"
]
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false,
"docs": [
"The token program"
]
},
{
"name": "bondingCurveAccount",
"isMut": false,
"isSigner": false
},
{
"name": "pumpProgram",
"isMut": false,
"isSigner": false
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "collateralAmount",
"type": "u64"
},
{
"name": "minAmountsOut",
"type": "u64"
}
]
},
{
"name": "borrowLoopRaydium",
"accounts": [
{
"name": "borrower",
"isMut": true,
"isSigner": true
},
{
"name": "poolStakingData",
"isMut": true,
"isSigner": false
},
{
"name": "userBorrowData",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAuthority",
"isMut": true,
"isSigner": false
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMint",
"isMut": false,
"isSigner": false,
"docs": [
"The mint of the token"
]
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false,
"docs": [
"The token program"
]
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "wsolTokenMint",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "collateralAmount",
"type": "u64"
},
{
"name": "minAmountsOut",
"type": "u64"
}
]
},
{
"name": "repay",
"accounts": [
{
"name": "borrower",
"isMut": true,
"isSigner": true
},
{
"name": "referrer",
"isMut": true,
"isSigner": false
},
{
"name": "poolStakingData",
"isMut": true,
"isSigner": false
},
{
"name": "userBorrowData",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAuthority",
"isMut": true,
"isSigner": false
},
{
"name": "userTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMint",
"isMut": false,
"isSigner": false,
"docs": [
"The mint of the token"
]
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false,
"docs": [
"The token program"
]
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "increaseCollateral",
"accounts": [
{
"name": "borrower",
"isMut": true,
"isSigner": true
},
{
"name": "vault",
"isMut": true,
"isSigner": false
},
{
"name": "poolStakingData",
"isMut": true,
"isSigner": false
},
{
"name": "userBorrowData",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAuthority",
"isMut": true,
"isSigner": false
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMint",
"isMut": false,
"isSigner": false,
"docs": [
"The mint of the token"
]
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "collateralAmount",
"type": "u64"
}
]
},
{
"name": "liquidatePump",
"docs": [
"// * ==========================================================================\n // * LIQUIDATE\n // * =========================================================================="
],
"accounts": [
{
"name": "liquidator",
"isMut": true,
"isSigner": true
},
{
"name": "borrower",
"isMut": true,
"isSigner": false
},
{
"name": "poolStakingData",
"isMut": true,
"isSigner": false
},
{
"name": "userBorrowData",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAuthority",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMint",
"isMut": false,
"isSigner": false,
"docs": [
"The mint of the token"
]
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false,
"docs": [
"The token program"
]
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "pumpProgram",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "liquidateRaydium",
"accounts": [
{
"name": "liquidator",
"isMut": true,
"isSigner": true
},
{
"name": "borrower",
"isMut": true,
"isSigner": false
},
{
"name": "poolStakingData",
"isMut": true,
"isSigner": false
},
{
"name": "userBorrowData",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAuthority",
"isMut": true,
"isSigner": false
},
{
"name": "poolTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolWsolAccount",
"isMut": true,
"isSigner": false
},
{
"name": "systemConfig",
"isMut": true,
"isSigner": false
},
{
"name": "tokenMint",
"isMut": false,
"isSigner": false,
"docs": [
"The mint of the token"
]
},
{
"name": "wsolTokenMint",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false,
"docs": [
"The token program"
]
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
}
],
"args": []
}
],
"accounts": [
{
"name": "UserBorrowData",
"type": {
"kind": "struct",
"fields": [
{
"name": "collateralAmount",
"type": "u64"
},
{
"name": "depositSolAmount",
"type": "u64"
},
{
"name": "borrowedAmount",
"type": "u64"
},
{
"name": "referrer",
"type": "publicKey"
},
{
"name": "lastUpdated",
"type": "i64"
}
]
}
},
{
"name": "PoolStakingData",
"type": {
"kind": "struct",
"fields": [
{
"name": "totalStaked",
"type": "u64"
},
{
"name": "totalShares",
"type": "u64"
},
{
"name": "totalBorrowed",
"type": "u64"
},
{
"name": "pendingVaultProfit",
"type": "u64"
}
]
}
},
{
"name": "UserStakingData",
"type": {
"kind": "struct",
"fields": [
{
"name": "shares",
"type": "u64"
},
{
"name": "referrer",
"type": "publicKey"
}
]
}
},
{
"name": "SystemConfigData",
"type": {
"kind": "struct",
"fields": [
{
"name": "initialized",
"docs": [
"Whether the struct is initialized"
],
"type": "bool"
},
{
"name": "authority",
"docs": [
"The authority of the system"
],
"type": "publicKey"
},
{
"name": "poolTokenAuthority",
"docs": [
"The pool token authority"
],
"type": "publicKey"
},
{
"name": "vault",
"type": "publicKey"
},
{
"name": "pumpFunProgram",
"docs": [
"The pump function program address"
],
"type": "publicKey"
},
{
"name": "baseVirtualTokenReserves",
"docs": [
"The base virtual token reserves"
],
"type": "u64"
},
{
"name": "baseVirtualSolReserves",
"docs": [
"The base virtual SOL reserves"
],
"type": "u64"
},
{
"name": "poolTokenAuthorityBumpSeed",
"docs": [
"The pool token authority bump seed"
],
"type": "u8"
},
{
"name": "borrowRatePerSecond",
"docs": [
"The borrow rate per second"
],
"type": "u64"
}
]
}
}
],
"types": [
{
"name": "BondingCurveStatus",
"type": {
"kind": "enum",
"variants": [
{
"name": "NotExist"
},
{
"name": "Active"
},
{
"name": "Closed"
}
]
}
},
{
"name": "BorrowStatus",
"type": {
"kind": "enum",
"variants": [
{
"name": "NoBorrow"
},
{
"name": "Active"
},
{
"name": "Liquidation"
}
]
}
}
],
"errors": [
{
"code": 6000,
"name": "AlreadyInitialized",
"msg": "already initialized"
},
{
"code": 6001,
"name": "AuthorityMismatch",
"msg": "authority mismatch"
},
{
"code": 6002,
"name": "InsufficientShares",
"msg": "insufficient shares"
},
{
"code": 6003,
"name": "InsufficientLiquidity",
"msg": "insufficient liquidity"
},
{
"code": 6004,
"name": "BorrowLimitReached",
"msg": "borrow limit reached"
},
{
"code": 6005,
"name": "InvalidPumpToken",
"msg": "invalid pump token"
},
{
"code": 6006,
"name": "MathOverflow",
"msg": "math overflow"
},
{
"code": 6007,
"name": "BondingCurveNotActive",
"msg": "bonding curve not active"
},
{
"code": 6008,
"name": "BondingCurveNotClosed",
"msg": "bonding curve not closed"
},
{
"code": 6009,
"name": "BondingCurveNotExist",
"msg": "bonding curve not exist"
},
{
"code": 6010,
"name": "InvalidAmount",
"msg": "invalid amount"
},
{
"code": 6011,
"name": "BorrowLiquidation",
"msg": "borrow liquidation"
},
{
"code": 6012,
"name": "InvalidPoolTokenAuthority",
"msg": "invalid pool token authority"
},
{
"code": 6013,
"name": "InvalidreferrerPublicKey",
"msg": "invalid referrer publickey"
},
{
"code": 6014,
"name": "InvalidVaultPublicKey",
"msg": "invalid vault publickey"
},
{
"code": 6015,
"name": "InvalidProgramPublicKey",
"msg": "invalid program publickey"
}
]
}
Last updated