UNPKG

@frakt-protocol/frakt-sdk

Version:

Frakt SDK for interacting with frakt.xyz protocols

1,159 lines (1,158 loc) 32.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IDL = void 0; exports.IDL = { version: '0.1.0', name: 'nft_lending_v2', instructions: [ { name: 'proposeLoan', accounts: [ { name: 'loan', isMut: true, isSigner: false, }, { name: 'user', isMut: true, isSigner: true, }, { name: 'nftUserTokenAccount', isMut: true, isSigner: false, }, { name: 'nftMint', isMut: true, isSigner: false, }, { name: 'communityPoolsAuthority', isMut: true, isSigner: false, }, { name: 'tokenProgram', isMut: false, isSigner: false, }, { name: 'metadataProgram', isMut: false, isSigner: false, }, { name: 'editionInfo', isMut: false, isSigner: false, }, { name: 'systemProgram', isMut: false, isSigner: false, }, { name: 'rent', isMut: false, isSigner: false, }, ], args: [ { name: 'bumpPoolsAuth', type: 'u8', }, { name: 'isPriceBased', type: 'bool', }, { name: 'originalPriceFromUser', type: 'u64', }, ], }, { name: 'approveLoanByAdmin', accounts: [ { name: 'loan', isMut: true, isSigner: false, }, { name: 'user', isMut: true, isSigner: false, }, { name: 'liquidityPool', isMut: true, isSigner: false, }, { name: 'liqOwner', isMut: true, isSigner: false, }, { name: 'collectionInfo', isMut: false, isSigner: false, }, { name: 'admin', isMut: true, isSigner: true, }, { name: 'systemProgram', isMut: false, isSigner: false, }, ], args: [ { name: 'nftPrice', type: 'u64', }, { name: 'discount', type: 'u64', }, ], }, { name: 'depositLiquidity', accounts: [ { name: 'liquidityPool', isMut: true, isSigner: false, }, { name: 'liqOwner', isMut: true, isSigner: false, }, { name: 'deposit', isMut: true, isSigner: false, }, { name: 'user', isMut: true, isSigner: true, }, { name: 'systemProgram', isMut: false, isSigner: false, }, { name: 'rent', isMut: false, isSigner: false, }, ], args: [ { name: 'amount', type: 'u64', }, ], }, { name: 'initializeCollectionInfo', accounts: [ { name: 'collectionInfo', isMut: true, isSigner: true, }, { name: 'admin', isMut: true, isSigner: true, }, { name: 'creatorAddress', isMut: false, isSigner: false, }, { name: 'liquidityPool', isMut: true, isSigner: false, }, { name: 'pricingLookupAddress', isMut: false, isSigner: false, }, { name: 'royaltyAddress', isMut: false, isSigner: false, }, { name: 'rent', isMut: false, isSigner: false, }, { name: 'systemProgram', isMut: false, isSigner: false, }, ], args: [ { name: 'params', type: { defined: 'CollectionInfoParams', }, }, ], }, { name: 'updateCollectionInfo', accounts: [ { name: 'collectionInfo', isMut: true, isSigner: false, }, { name: 'admin', isMut: true, isSigner: true, }, { name: 'creatorAddress', isMut: false, isSigner: false, }, { name: 'liquidityPool', isMut: true, isSigner: false, }, { name: 'pricingLookupAddress', isMut: false, isSigner: false, }, { name: 'royaltyAddress', isMut: false, isSigner: false, }, ], args: [ { name: 'params', type: { defined: 'CollectionInfoParams', }, }, ], }, { name: 'initializeLiquidityPool', accounts: [ { name: 'liquidityPool', isMut: true, isSigner: true, }, { name: 'liqOwner', isMut: true, isSigner: false, }, { name: 'admin', isMut: true, isSigner: true, }, { name: 'rent', isMut: false, isSigner: false, }, { name: 'systemProgram', isMut: false, isSigner: false, }, ], args: [ { name: 'bumpPoolsAuth', type: 'u8', }, { name: 'params', type: { defined: 'LiqPoolInputParams', }, }, ], }, { name: 'updateLiquidityPool', accounts: [ { name: 'liquidityPool', isMut: true, isSigner: false, }, { name: 'admin', isMut: true, isSigner: true, }, { name: 'rent', isMut: false, isSigner: false, }, { name: 'systemProgram', isMut: false, isSigner: false, }, ], args: [ { name: 'params', type: { defined: 'LiqPoolInputParams', }, }, ], }, { name: 'liquidateLoanByAdmin', accounts: [ { name: 'loan', isMut: true, isSigner: false, }, { name: 'user', isMut: true, isSigner: false, }, { name: 'liquidator', isMut: true, isSigner: true, }, { name: 'nftMint', isMut: false, isSigner: false, }, { name: 'nftLiquidatorTokenAccount', isMut: true, isSigner: false, }, { name: 'nftUserTokenAccount', isMut: true, isSigner: false, }, { name: 'communityPoolsAuthority', isMut: true, isSigner: false, }, { name: 'tokenProgram', isMut: false, isSigner: false, }, { name: 'metadataProgram', isMut: false, isSigner: false, }, { name: 'editionInfo', isMut: false, isSigner: false, }, { name: 'rent', isMut: false, isSigner: false, }, { name: 'systemProgram', isMut: false, isSigner: false, }, { name: 'associatedTokenProgram', isMut: false, isSigner: false, }, ], args: [ { name: 'bumpPoolsAuth', type: 'u8', }, ], }, { name: 'paybackLoan', accounts: [ { name: 'loan', isMut: true, isSigner: false, }, { name: 'liquidityPool', isMut: true, isSigner: false, }, { name: 'collectionInfo', isMut: false, isSigner: false, }, { name: 'admin', isMut: true, isSigner: false, }, { name: 'user', isMut: true, isSigner: true, }, { name: 'nftMint', isMut: false, isSigner: false, }, { name: 'nftUserTokenAccount', isMut: true, isSigner: false, }, { name: 'royaltyAddress', isMut: true, isSigner: false, }, { name: 'liqOwner', isMut: true, isSigner: false, }, { name: 'communityPoolsAuthority', isMut: true, isSigner: false, }, { name: 'metadataProgram', isMut: false, isSigner: false, }, { name: 'editionInfo', isMut: false, isSigner: false, }, { name: 'tokenProgram', isMut: false, isSigner: false, }, { name: 'systemProgram', isMut: false, isSigner: false, }, ], args: [ { name: 'bumpPoolsAuth', type: 'u8', }, ], }, { name: 'rejectLoanByAdmin', accounts: [ { name: 'loan', isMut: true, isSigner: false, }, { name: 'admin', isMut: true, isSigner: true, }, { name: 'nftMint', isMut: false, isSigner: false, }, { name: 'nftUserTokenAccount', isMut: true, isSigner: false, }, { name: 'user', isMut: true, isSigner: false, }, { name: 'communityPoolsAuthority', isMut: true, isSigner: false, }, { name: 'metadataProgram', isMut: false, isSigner: false, }, { name: 'editionInfo', isMut: false, isSigner: false, }, { name: 'tokenProgram', isMut: false, isSigner: false, }, { name: 'systemProgram', isMut: false, isSigner: false, }, ], args: [ { name: 'bumpPoolsAuth', type: 'u8', }, ], }, { name: 'unstakeLiquidity', accounts: [ { name: 'liquidityPool', isMut: true, isSigner: false, }, { name: 'deposit', isMut: true, isSigner: false, }, { name: 'user', isMut: true, isSigner: true, }, { name: 'liqOwner', isMut: true, isSigner: false, }, { name: 'systemProgram', isMut: false, isSigner: false, }, ], args: [ { name: 'depositBump', type: 'u8', }, { name: 'amount', type: 'u64', }, ], }, { name: 'harvestLiquidity', accounts: [ { name: 'liquidityPool', isMut: true, isSigner: false, }, { name: 'liqOwner', isMut: true, isSigner: false, }, { name: 'deposit', isMut: true, isSigner: false, }, { name: 'user', isMut: true, isSigner: true, }, { name: 'systemProgram', isMut: false, isSigner: false, }, ], args: [ { name: 'depositBump', type: 'u8', }, ], }, { name: 'closeLoan', accounts: [ { name: 'loan', isMut: true, isSigner: false, }, { name: 'admin', isMut: true, isSigner: true, }, { name: 'communityPoolsAuthority', isMut: true, isSigner: false, }, ], args: [ { name: 'bumpPoolsAuth', type: 'u8', }, ], }, { name: 'updateDepositAmount', accounts: [ { name: 'deposit', isMut: true, isSigner: false, }, { name: 'admin', isMut: true, isSigner: true, }, ], args: [ { name: 'newDepositAmount', type: 'u64', }, { name: 'stakedAtCumulative', type: 'u64', }, ], }, ], accounts: [ { name: 'collectionInfo', type: { kind: 'struct', fields: [ { name: 'creator', type: 'publicKey', }, { name: 'liquidityPool', type: 'publicKey', }, { name: 'pricingLookupAddress', type: 'publicKey', }, { name: 'royaltyAddress', type: 'publicKey', }, { name: 'royaltyFeeTime', type: 'u64', }, { name: 'royaltyFeePrice', type: 'u64', }, { name: 'loanToValue', type: 'u64', }, { name: 'collaterizationRate', type: 'u64', }, { name: 'availableLoanTypes', type: { defined: 'AvailableLoanTypes', }, }, { name: 'expirationTime', type: 'u64', }, ], }, }, { name: 'deposit', type: { kind: 'struct', fields: [ { name: 'liquidityPool', type: 'publicKey', }, { name: 'user', type: 'publicKey', }, { name: 'amount', type: 'u64', }, { name: 'stakedAt', type: 'u64', }, { name: 'stakedAtCumulative', type: 'u64', }, ], }, }, { name: 'liquidityPool', type: { kind: 'struct', fields: [ { name: 'id', type: 'u64', }, { name: 'rewardInterestRateTime', type: 'u64', }, { name: 'feeInterestRateTime', type: 'u64', }, { name: 'rewardInterestRatePrice', type: 'u64', }, { name: 'feeInterestRatePrice', type: 'u64', }, { name: 'liquidityAmount', type: 'u64', }, { name: 'liqOwner', type: 'publicKey', }, { name: 'liqSeed', type: 'u8', }, { name: 'amountOfStaked', type: 'u64', }, { name: 'userRewardsAmount', type: 'u64', }, { name: 'apr', type: 'u64', }, { name: 'cumulative', type: 'u64', }, { name: 'lastTime', type: 'u64', }, { name: 'oldCumulative', type: 'u64', }, { name: 'period', type: 'u64', }, ], }, }, { name: 'loan', type: { kind: 'struct', fields: [ { name: 'user', type: 'publicKey', }, { name: 'nftMint', type: 'publicKey', }, { name: 'nftUserTokenAccount', type: 'publicKey', }, { name: 'liquidityPool', type: 'publicKey', }, { name: 'collectionInfo', type: 'publicKey', }, { name: 'startedAt', type: 'u64', }, { name: 'expiredAt', type: { option: 'u64', }, }, { name: 'finishedAt', type: 'u64', }, { name: 'originalPrice', type: 'u64', }, { name: 'amountToGet', type: 'u64', }, { name: 'rewardAmount', type: 'u64', }, { name: 'feeAmount', type: 'u64', }, { name: 'royaltyAmount', type: 'u64', }, { name: 'rewardInterestRate', type: { option: 'u64', }, }, { name: 'feeInterestRate', type: { option: 'u64', }, }, { name: 'royaltyInterestRate', type: { option: 'u64', }, }, { name: 'loanStatus', type: { defined: 'LoanStatus', }, }, { name: 'loanType', type: { defined: 'LoanType', }, }, ], }, }, ], types: [ { name: 'CollectionInfoParams', type: { kind: 'struct', fields: [ { name: 'loanToValue', type: 'u64', }, { name: 'collaterizationRate', type: 'u64', }, { name: 'royaltyFeeTime', type: 'u64', }, { name: 'royaltyFeePrice', type: 'u64', }, { name: 'expirationTime', type: 'u64', }, { name: 'isPriceBased', type: 'bool', }, ], }, }, { name: 'LiqPoolInputParams', type: { kind: 'struct', fields: [ { name: 'rewardInterestRateTime', type: 'u64', }, { name: 'feeInterestRateTime', type: 'u64', }, { name: 'id', type: 'u64', }, { name: 'rewardInterestRatePrice', type: 'u64', }, { name: 'feeInterestRatePrice', type: 'u64', }, { name: 'period', type: 'u64', }, ], }, }, { name: 'AvailableLoanTypes', type: { kind: 'enum', variants: [ { name: 'OnlyTimeBased', }, { name: 'TimeBasedAndPriceBased', }, ], }, }, { name: 'LoanStatus', type: { kind: 'enum', variants: [ { name: 'Proposed', }, { name: 'Rejected', }, { name: 'Activated', }, { name: 'PaidBack', }, { name: 'Liquidated', }, ], }, }, { name: 'LoanType', type: { kind: 'enum', variants: [ { name: 'TimeBased', }, { name: 'PriceBased', }, ], }, }, ], events: [ { name: 'LoanApproved', fields: [ { name: 'loan', type: 'string', index: false, }, { name: 'period', type: 'u64', index: false, }, { name: 'loanValue', type: 'u64', index: false, }, { name: 'loanToValue', type: 'u64', index: false, }, { name: 'interest', type: 'u64', index: false, }, { name: 'nftMint', type: 'string', index: false, }, ], }, { name: 'LoanUpdate', fields: [ { name: 'loan', type: 'string', index: false, }, { name: 'status', type: { defined: 'LoanStatus', }, index: false, }, ], }, ], errors: [ { code: 6000, name: 'InvalidInstruction', msg: 'InvalidInstruction', }, { code: 6001, name: 'MoreThanHave', msg: 'MoreThanHave', }, { code: 6002, name: 'LoanIsNotProposed', msg: 'LoanIsNotProposed', }, { code: 6003, name: 'CollectionInfoDoNotConnectWithNftMint', msg: 'CollectionInfoDoNotConnectWithNftMint', }, { code: 6004, name: 'IncorrectNftMint', msg: 'IncorrectNftMint', }, { code: 6005, name: 'IncorrectTokenAccount', msg: 'IncorrectTokenAccount', }, { code: 6006, name: 'LoanIsNotActivated', msg: 'LoanIsNotActivated', }, { code: 6007, name: 'TimeIsNotExpired', msg: 'TimeIsNotExpired', }, { code: 6008, name: 'CollectionInfoDoesntMatchLiquidityPool', msg: 'CollectionInfoDoesntMatchLiquidityPool', }, { code: 6009, name: 'CannotClose', msg: 'CannotClose', }, { code: 6010, name: 'WrongTypeOfAvailableLoan', msg: 'WrongTypeOfAvailableLoan', }, { code: 6011, name: 'InvalidLoan', msg: 'InvalidLoan', }, ], };