banx-token-lending-sdk
Version:
Banx Token Lending sdk
1 lines • 73 kB
JavaScript
"use strict";var e=require("@coral-xyz/anchor"),n=require("bs58");const t={address:"Banxj7HgkaM1Uwy5kYAAXypMubWMRtJ7Wyf6kqHaFgCq",metadata:{name:"banxTokenLending",version:"0.1.3",spec:"0.1.0",description:"Created with Anchor"},instructions:[{name:"borrowPerpetualLoan",discriminator:[66,13,79,110,9,99,18,194],accounts:[{name:"bondOffer",writable:!0},{name:"lenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"bondOffer"},{kind:"account",path:"lendingTokenMint"}]}},{name:"bondLoan",writable:!0,pda:{seeds:[{kind:"const",value:[108,111,97,110]},{kind:"account",path:"user"},{kind:"arg",path:"seed"}]}},{name:"user",writable:!0,signer:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"market",writable:!0},{name:"marketCollateralVaultTokenAccount",writable:!0,signer:!0},{name:"userCollateralTokenAccount",writable:!0},{name:"userLendingTokenAccount",writable:!0},{name:"lenderVaultLendingTokenAccount",writable:!0},{name:"collateralMint",writable:!0},{name:"lendingTokenMint",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"protocolFeeReceiver",writable:!0,address:"revJ8QJgQ3xCcZ6CMykjsmGMYdg8Pj9WnqgJZBHBwSK"},{name:"protocolFeeReceiverLendingTokenAccount",writable:!0},{name:"oracle",writable:!0},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],args:[{name:"seed",type:"u64"},{name:"amountToGetFromOffer",type:"u64"},{name:"collateralToSend",type:"u64"}]},{name:"borrowerRefinance",discriminator:[245,133,59,90,202,63,202,202],accounts:[{name:"newBondOffer",writable:!0},{name:"oldBondOffer",writable:!0},{name:"oldBondLoan",writable:!0},{name:"newBondLoan",writable:!0,pda:{seeds:[{kind:"const",value:[108,111,97,110]},{kind:"account",path:"oldBondLoan"}]}},{name:"newLenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"newBondOffer"},{kind:"account",path:"lendingTokenMint"}]}},{name:"oldLenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"oldBondOffer"},{kind:"account",path:"lendingTokenMint"}]}},{name:"user",writable:!0,signer:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"market",writable:!0},{name:"userLendingTokenAccount",writable:!0},{name:"oldLenderVaultLendingTokenAccount",writable:!0},{name:"newLenderVaultLendingTokenAccount",writable:!0},{name:"lendingTokenMint",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"protocolFeeReceiver",writable:!0,address:"revJ8QJgQ3xCcZ6CMykjsmGMYdg8Pj9WnqgJZBHBwSK"},{name:"protocolFeeReceiverLendingTokenAccount",writable:!0},{name:"oracle",writable:!0},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],args:[{name:"solToRefinance",type:"u64"}]},{name:"createBondOffer",discriminator:[3,25,221,101,91,193,47,69],accounts:[{name:"bondOffer",writable:!0,pda:{seeds:[{kind:"const",value:[98,111,110,100,95,111,102,102,101,114]},{kind:"account",path:"user"},{kind:"arg",path:"seed"}]}},{name:"newLenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"user"},{kind:"account",path:"market"}]}},{name:"user",writable:!0,signer:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"market",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"}],args:[{name:"seed",type:"u64"},{name:"offerSize",type:"u128"},{name:"loanLiquidationLtv",type:"u32"},{name:"lenderApr",type:"u32"}]},{name:"createListing",discriminator:[18,168,45,24,191,31,117,54],accounts:[{name:"bondOffer",writable:!0,pda:{seeds:[{kind:"const",value:[98,111,110,100,95,111,102,102,101,114]},{kind:"account",path:"user"},{kind:"arg",path:"seed"}]}},{name:"bondLoan",writable:!0,pda:{seeds:[{kind:"const",value:[108,111,97,110]},{kind:"account",path:"user"},{kind:"arg",path:"seed"}]}},{name:"user",writable:!0,signer:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"market",writable:!0},{name:"marketCollateralVaultTokenAccount",writable:!0,signer:!0},{name:"userCollateralTokenAccount",writable:!0},{name:"collateralMint",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],args:[{name:"seed",type:"u64"},{name:"amountToBorrow",type:"u64"},{name:"amountToSendCollateral",type:"u64"},{name:"loanLiquidationLtv",type:"u32"},{name:"lenderApr",type:"u32"}]},{name:"initializeOrUpdateMarket",discriminator:[52,145,73,185,91,251,214,188],accounts:[{name:"market",writable:!0,pda:{seeds:[{kind:"const",value:[98,97,110,120,95,109,97,114,107,101,116]},{kind:"arg",path:"marketParams.lendingTokenMint"},{kind:"account",path:"collateralMint"}]}},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"collateralMint",writable:!0},{name:"user",writable:!0,signer:!0},{name:"collateralVaultTokenAccount",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"}],args:[{name:"marketParams",type:{defined:{name:"initializeOrUpdateMarketParams"}}}]},{name:"lendToBorrowerListing",discriminator:[52,85,47,164,17,155,224,57],accounts:[{name:"bondOffer",writable:!0},{name:"oldBondLoan",writable:!0},{name:"newBondLoan",writable:!0,pda:{seeds:[{kind:"const",value:[108,111,97,110]},{kind:"account",path:"oldBondLoan"}]}},{name:"newLenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"user"},{kind:"account",path:"lendingTokenMint"}]}},{name:"borrower",writable:!0},{name:"user",writable:!0,signer:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"market",writable:!0},{name:"userLendingTokenAccount",writable:!0},{name:"borrowerLendingTokenAccount",writable:!0},{name:"lendingTokenMint",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"protocolFeeReceiver",writable:!0,address:"revJ8QJgQ3xCcZ6CMykjsmGMYdg8Pj9WnqgJZBHBwSK"},{name:"protocolFeeReceiverLendingTokenAccount"},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],args:[]},{name:"lenderInstantRefinance",discriminator:[40,37,57,109,57,78,88,41],accounts:[{name:"newBondOffer",writable:!0},{name:"oldBondOffer",writable:!0},{name:"oldBondLoan",writable:!0},{name:"newBondLoan",writable:!0,pda:{seeds:[{kind:"const",value:[108,111,97,110]},{kind:"account",path:"oldBondLoan"}]}},{name:"newLenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"newBondOffer"},{kind:"account",path:"lendingTokenMint"}]}},{name:"oldLenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"oldBondOffer"},{kind:"account",path:"lendingTokenMint"}]}},{name:"user",writable:!0,signer:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"market",writable:!0},{name:"userLendingTokenAccount",writable:!0},{name:"oldLenderVaultLendingTokenAccount",writable:!0},{name:"newLenderVaultLendingTokenAccount",writable:!0},{name:"lendingTokenMint",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"protocolFeeReceiver",writable:!0,address:"revJ8QJgQ3xCcZ6CMykjsmGMYdg8Pj9WnqgJZBHBwSK"},{name:"protocolFeeReceiverLendingTokenAccount",writable:!0},{name:"oracle",writable:!0},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],args:[]},{name:"liquidatePerpetualLoan",discriminator:[122,98,116,58,216,45,255,235],accounts:[{name:"bondOffer",writable:!0},{name:"bondLoan",writable:!0},{name:"market",writable:!0,pda:{seeds:[{kind:"const",value:[98,97,110,120,95,109,97,114,107,101,116]},{kind:"account",path:"lendingTokenMint"},{kind:"account",path:"collateralMint"}]}},{name:"user",writable:!0,signer:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"collateralMint",writable:!0},{name:"lenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"bondOffer"},{kind:"account",path:"lendingTokenMint"}]}},{name:"lendingTokenMint",writable:!0},{name:"marketLendingVaultTokenAccount",writable:!0},{name:"oracle",writable:!0},{name:"marketCollateralVaultTokenAccount",writable:!0},{name:"lenderVaultLendingTokenAccount",writable:!0},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"jupiterProgram",address:"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"protocolFeeReceiverLendingTokenAccount"},{name:"protocolFeeReceiver",writable:!0,address:"revJ8QJgQ3xCcZ6CMykjsmGMYdg8Pj9WnqgJZBHBwSK"},{name:"borrowerCollateralTokenAccount"},{name:"borrower",writable:!0}],args:[{name:"data",type:"bytes"}]},{name:"refinancePerpetualLoan",discriminator:[158,239,154,119,143,198,43,213],accounts:[{name:"newBondOffer",writable:!0,pda:{seeds:[{kind:"const",value:[98,111,110,100,95,111,102,102,101,114]},{kind:"account",path:"user"},{kind:"arg",path:"seed"}]}},{name:"oldBondOffer",writable:!0},{name:"oldBondLoan",writable:!0},{name:"newBondLoan",writable:!0,pda:{seeds:[{kind:"const",value:[108,111,97,110]},{kind:"account",path:"oldBondLoan"}]}},{name:"newLenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"user"},{kind:"account",path:"lendingTokenMint"}]}},{name:"oldLenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"oldBondOffer"},{kind:"account",path:"lendingTokenMint"}]}},{name:"user",writable:!0,signer:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"market",writable:!0},{name:"userLendingTokenAccount",writable:!0},{name:"oldLenderVaultLendingTokenAccount",writable:!0},{name:"lendingTokenMint",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"protocolFeeReceiver",writable:!0,address:"revJ8QJgQ3xCcZ6CMykjsmGMYdg8Pj9WnqgJZBHBwSK"},{name:"protocolFeeReceiverLendingTokenAccount",writable:!0},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],args:[]},{name:"refinancePerpetualLoanFromOffer",discriminator:[101,94,158,163,216,57,52,130],accounts:[{name:"newBondOffer",writable:!0},{name:"oldBondOffer",writable:!0},{name:"oldBondLoan",writable:!0},{name:"newBondLoan",writable:!0,pda:{seeds:[{kind:"const",value:[108,111,97,110]},{kind:"account",path:"oldBondLoan"}]}},{name:"newLenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"user"},{kind:"account",path:"lendingTokenMint"}]}},{name:"oldLenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"oldBondOffer"},{kind:"account",path:"lendingTokenMint"}]}},{name:"user",writable:!0,signer:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"market",writable:!0},{name:"userLendingTokenAccount",writable:!0},{name:"oldLenderVaultLendingTokenAccount",writable:!0},{name:"lendingTokenMint",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"protocolFeeReceiver",writable:!0,address:"revJ8QJgQ3xCcZ6CMykjsmGMYdg8Pj9WnqgJZBHBwSK"},{name:"protocolFeeReceiverLendingTokenAccount",writable:!0},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{name:"oracle",writable:!0}],args:[]},{name:"removeBondOffer",discriminator:[4,87,235,36,77,82,172,46],accounts:[{name:"bondOffer",writable:!0},{name:"user",writable:!0,signer:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"}],args:[]},{name:"removeListing",discriminator:[74,5,236,7,2,104,139,114],accounts:[{name:"bondOffer",writable:!0},{name:"bondLoan",writable:!0},{name:"user",writable:!0,signer:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"market",writable:!0,pda:{seeds:[{kind:"const",value:[98,97,110,120,95,109,97,114,107,101,116]},{kind:"account",path:"market"},{kind:"account",path:"market"}]}},{name:"marketCollateralVaultTokenAccount",writable:!0},{name:"userCollateralTokenAccount",writable:!0},{name:"collateralMint",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],args:[]},{name:"repayPartialPerpetualLoan",discriminator:[138,68,239,156,169,145,218,97],accounts:[{name:"bondOffer",writable:!0},{name:"bondLoan",writable:!0},{name:"newBondLoan",writable:!0,pda:{seeds:[{kind:"const",value:[108,111,97,110]},{kind:"account",path:"bondLoan"}]}},{name:"market",writable:!0},{name:"lenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"bondOffer"},{kind:"account",path:"lendingTokenMint"}]}},{name:"userLendingTokenAccount",writable:!0},{name:"lenderVaultLendingTokenAccount",writable:!0},{name:"protocolFeeReceiver",writable:!0,address:"revJ8QJgQ3xCcZ6CMykjsmGMYdg8Pj9WnqgJZBHBwSK"},{name:"lendingTokenMint",writable:!0},{name:"user",writable:!0,signer:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"oracle",writable:!0},{name:"protocolFeeReceiverLendingTokenAccount",writable:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],args:[{name:"amountToRepay",type:"u64"}]},{name:"repayPerpetualLoan",discriminator:[40,56,164,63,64,14,111,95],accounts:[{name:"bondOffer",writable:!0},{name:"bondLoan",writable:!0},{name:"market",writable:!0,pda:{seeds:[{kind:"const",value:[98,97,110,120,95,109,97,114,107,101,116]},{kind:"account",path:"lendingTokenMint"},{kind:"account",path:"collateralMint"}]}},{name:"lenderVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"bondOffer"},{kind:"account",path:"lendingTokenMint"}]}},{name:"marketCollateralVaultTokenAccount",writable:!0},{name:"userCollateralTokenAccount",writable:!0},{name:"userLendingTokenAccount",writable:!0},{name:"lenderVaultLendingTokenAccount",writable:!0},{name:"protocolFeeReceiver",writable:!0,address:"revJ8QJgQ3xCcZ6CMykjsmGMYdg8Pj9WnqgJZBHBwSK"},{name:"collateralMint",writable:!0},{name:"lendingTokenMint",writable:!0},{name:"user",writable:!0,signer:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"oracle",writable:!0},{name:"protocolFeeReceiverLendingTokenAccount",writable:!0},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],args:[]},{name:"returnAccountRentByAdmin",discriminator:[162,154,119,190,193,198,2,171],accounts:[{name:"user",writable:!0,signer:!0,address:"HAmVVqzQHz4Bk46Rncochq6QkmNjykM4SeXjtmVXusBi"},{name:"userVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"rentOwner"},{kind:"const",value:[150,251,113,246,39,7,116,33,84,55,86,60,238,100,138,141,250,66,70,173,74,254,60,246,152,214,188,246,40,130,150,25]}]}},{name:"rentOwner",writable:!0},{name:"accountToDelete",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"}],args:[]},{name:"revertTerminatePerpetualLoan",discriminator:[41,184,161,47,161,211,103,52],accounts:[{name:"bondOffer",writable:!0},{name:"bondLoan",writable:!0},{name:"market",writable:!0},{name:"user",writable:!0,signer:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"}],args:[]},{name:"terminatePerpetualLoan",discriminator:[50,99,124,192,16,106,78,113],accounts:[{name:"bondOffer",writable:!0},{name:"bondLoan",writable:!0},{name:"market",writable:!0},{name:"user",writable:!0,signer:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"oracle",writable:!0}],args:[{name:"sellLoan",type:"bool"}]},{name:"updateBondOffer",discriminator:[163,8,59,41,141,241,247,80],accounts:[{name:"bondOffer",writable:!0},{name:"user",writable:!0,signer:!0},{name:"market",writable:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"}],args:[{name:"offerSize",type:"u64"},{name:"loanLiquidationLtv",type:"u32"},{name:"lenderApr",type:"u32"}]},{name:"updateRentVault",discriminator:[130,27,191,117,35,2,79,139],accounts:[{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"user",writable:!0,signer:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"}],args:[{name:"amountToAdd",type:"u64"}]},{name:"updateUserVault",discriminator:[67,191,35,49,146,148,83,238],accounts:[{name:"userVault",writable:!0,pda:{seeds:[{kind:"const",value:[117,115,101,114,95,118,97,117,108,116]},{kind:"account",path:"user"},{kind:"account",path:"lendingTokenMint"}]}},{name:"rentVault",writable:!0,pda:{seeds:[{kind:"const",value:[114,101,110,116,95,118,97,117,108,116,95,112,114,101,102,105,120]}]}},{name:"user",writable:!0,signer:!0},{name:"systemProgram",address:"11111111111111111111111111111111"},{name:"rent",address:"SysvarRent111111111111111111111111111111111"},{name:"userSplTokenAccountUninitialized",writable:!0},{name:"vaultSplTokenAccountUninitialized",writable:!0},{name:"lendingTokenMint",writable:!0},{name:"tokenProgram",address:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{name:"associatedTokenProgram",address:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],args:[{name:"amount",type:"u128"},{name:"add",type:"bool"}]}],accounts:[{name:"banxMarket",discriminator:[208,67,34,245,192,71,218,77]},{name:"bondLoan",discriminator:[29,12,202,120,154,196,83,225]},{name:"bondOffer",discriminator:[35,250,97,241,107,159,185,150]},{name:"userVault",discriminator:[23,76,96,159,210,10,5,22]}],errors:[{code:6e3,name:"userDoesntHaveAuthority",msg:"UserDoesntHaveAuthority"},{code:6001,name:"invalidInstructionData",msg:"InvalidInstructionData"},{code:6002,name:"wrongSenderTokenAccount",msg:"Wtong sender token account"},{code:6003,name:"marketNotActive",msg:"MarketNotActive"},{code:6004,name:"bondLoanNotActive",msg:"BondLoanNotActive"},{code:6005,name:"offerNotActive",msg:"OfferNotActive"},{code:6006,name:"invalidRentVaultAccount",msg:"InvalidRentVaultAccount"},{code:6007,name:"invalidCollateralMint",msg:"InvalidCollateralMint"},{code:6008,name:"invalidLendingTokenMint",msg:"InvalidLendingTokenMint"},{code:6009,name:"offerLtvExceedLimit",msg:"OfferLtvExceedLimit"},{code:6010,name:"offerLiqLtvExcedLimit",msg:"OfferLiqLtvExceedLimit"},{code:6011,name:"wrongOracleId",msg:"WrongOracleId"},{code:6012,name:"incorrectOfferForLoan",msg:"Incorrect offer for loan"},{code:6013,name:"oldOracle",msg:"Oracle too old"},{code:6014,name:"incorrectLoanStatus",msg:"IncorrectLoanStatus"},{code:6015,name:"terminationFreezeNotReached",msg:"Termination freeze not reached"},{code:6016,name:"incorrectTerminationStatus",msg:"Incorrect termination status"},{code:6017,name:"cantAutoTerminateLoan",msg:"Can't auto terminate loan"},{code:6018,name:"cantLiquidateLoanBefore30Days",msg:"Can't liquidate loan before 30 day termination"},{code:6019,name:"invalidCollateralTokenAccount",msg:"Invalid collateral token account"},{code:6020,name:"invalidRedeemResult",msg:"InvalidRedeemResult"},{code:6021,name:"collateralTransferAccountsNotFound",msg:"CollateralTransferAccountsNotFound"},{code:6022,name:"offerDoesntMatchMarket",msg:"OfferDoesntMatchMarket"},{code:6023,name:"repayCompensationAccountsNotFound",msg:"RepayCompensationAccountsNotFound"}],types:[{name:"banxMarket",serialization:"bytemuck",repr:{kind:"c"},type:{kind:"struct",fields:[{name:"marketAuthority",type:"pubkey"},{name:"collateralTokenMint",type:"pubkey"},{name:"lendingTokenMint",type:"pubkey"},{name:"oraclePriceFeed",type:{array:["u8",32]}},{name:"upfrontFeeBp",type:"u32"},{name:"interestFeeBp",type:"u32"},{name:"oracleDuration",type:"u64"},{name:"marketState",type:"u8"},{name:"collateralDigits",type:"u8"},{name:"oracleFeedType",type:"u8"},{name:"lendingTokenDigits",type:"u8"},{name:"marginOfSafety",type:"u32"},{name:"lookupTable",type:"pubkey"},{name:"placeholder1",type:"pubkey"},{name:"placeholder2",type:"pubkey"},{name:"padding",type:{array:["u8",8]}}]}},{name:"bondLoan",serialization:"bytemuck",repr:{kind:"c"},type:{kind:"struct",fields:[{name:"bondOffer",type:"pubkey"},{name:"lender",type:"pubkey"},{name:"borrower",type:"pubkey"},{name:"collateralTokenAccount",type:"pubkey"},{name:"compoundedProtocolInterest",type:"u64"},{name:"loanAmount",type:"u64"},{name:"feeAmount",type:"u64"},{name:"soldAt",type:"u64"},{name:"redeemedAt",type:"u64"},{name:"currentRemainingLent",type:"u64"},{name:"interestSnapshot",type:"u64"},{name:"partialRepaySnapshot",type:"u64"},{name:"auctionStartedAt",type:"u64"},{name:"lenderOriginalLent",type:"u64"},{name:"lenderFullRepaidAmount",type:"u64"},{name:"borrowerOriginalLent",type:"u64"},{name:"borrowerFullRepaidAmount",type:"u64"},{name:"repaymentCallAmount",type:"u64"},{name:"collateralAmount",type:"u64"},{name:"protocolApr",type:"u32"},{name:"lenderApr",type:"u32"},{name:"terminationFreeze",type:"u32"},{name:"terminationDuration",type:"u32"},{name:"liquidationLtv",type:"u32"},{name:"leverageAmountBp",type:"u32"},{name:"bondLoanState",type:"u8"},{name:"bondLoanType",type:"u8"},{name:"liquidationType",type:"u8"},{name:"redeemResult",type:"u8"},{name:"redeemResultNext",type:"u8"},{name:"placeholder2",type:"pubkey"},{name:"padding",type:{array:["u8",3]}}]}},{name:"bondOffer",serialization:"bytemuck",repr:{kind:"c"},type:{kind:"struct",fields:[{name:"interestClaimedAmount",type:"u64"},{name:"offerCapacity",type:"u64"},{name:"amountInLoans",type:"u64"},{name:"activeLoansAmount",type:"u64"},{name:"lastTransactedAt",type:"u64"},{name:"liquidationLtvBp",type:"u32"},{name:"loanAprBp",type:"u32"},{name:"offerState",type:"u8"},{name:"assetReceiver",type:"pubkey"},{name:"market",type:"pubkey"},{name:"placeholder",type:"pubkey"},{name:"padding",type:{array:["u8",7]}}]}},{name:"initializeOrUpdateMarketParams",type:{kind:"struct",fields:[{name:"upfrontFee",type:"u32"},{name:"interestFee",type:"u32"},{name:"marginOfSafety",type:"u32"},{name:"marketState",type:"u8"},{name:"lendingTokenMint",type:"pubkey"},{name:"oraclePriceFeed",type:{array:["u8",32]}},{name:"collateralDigits",type:"u8"},{name:"oracleFeedType",type:"u8"},{name:"lendingTokenDigits",type:"u8"},{name:"lookupTable",type:"pubkey"},{name:"marketAuthority",type:"pubkey"},{name:"oracleDuration",type:"u64"}]}},{name:"userVault",serialization:"bytemuck",repr:{kind:"c"},type:{kind:"struct",fields:[{name:"user",type:"pubkey"},{name:"lendingTokenMint",type:"pubkey"},{name:"reservesAmount",type:"u128"},{name:"liquidityInLoansAmount",type:"u128"},{name:"interestRewardsAmount",type:"u128"},{name:"rentRewards",type:"u64"},{name:"fundsInCurrentEpoch",type:"u64"},{name:"fundsInNextEpoch",type:"u64"},{name:"lastCalculatedSlot",type:"u64"},{name:"lastCalculatedTimestamp",type:"u64"},{name:"rewardsToHarvest",type:"u64"},{name:"rewardsHarvested",type:"u64"},{name:"lastTransactedAt",type:"u64"},{name:"stakingType",type:"u8"},{name:"userVaultState",type:"u8"},{name:"padding",type:{array:["u8",14]}}]}}]};function r(e){return{publicKey:e.publicKey,...e.account}}class a{constructor(e){this.payer=e}static local(){const n=new e.web3.Keypair;return new a(n)}get publicKey(){return this.payer.publicKey}async signTransaction(e){return e}async signAllTransactions(e){return e}}const o=new a(e.web3.Keypair.generate());function i(n){return new e.Program(t,new e.AnchorProvider(n,o))}const s=new e.web3.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),c=new e.web3.PublicKey("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"),l=new e.web3.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"),d=new e.web3.PublicKey("So11111111111111111111111111111111111111112"),u=new e.web3.PublicKey("9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP"),m=new e.web3.PublicKey("BANXyWgPpa519e2MtQF1ecRbKYKKDMXPF1dyBxUq9NQG"),b=new TextEncoder,f=1e4,p=new e.BN(f),k=31536e3,g=1e9;function y(e,t=8){const r=e.toArray("le",t),a=new Uint8Array(r);return n.encode(a)}function w(n){return y(new e.BN(n),1)}function A(n,t=g){return n.mul(new e.BN(t))}function P(n,t=g){return n.div(new e.BN(t))}function T(n,t=g){return n.mul(new e.BN(t)).div(p)}function B(n,t,r=g){return n.mul(t).div(new e.BN(r))}function L(n,t,r=g){return n.mul(new e.BN(r)).div(t)}function S(n){if(n.lt(new e.BN(0)))throw new Error("Sqrt only works on non-negative inputs");if(n.lt(new e.BN(2)))return n;const t=S(n.shrn(2)).shln(1),r=t.add(new e.BN(1));return r.mul(r).gt(n)?t:r}function M(e,n){const[t,r]=n;return{memcmp:{offset:t,bytes:r(e)}}}function O(e,n){if(Object.keys(e||{}).length>4)throw new Error("RPC filters amount limit reached. Max: 4");return Object.entries(e||{}).map((([e,t])=>{const r=n?.[e]||null;if(!r)throw new Error(`Filter ${e} doesn't match any offsetAndConvertor value`);return M(t,r)}))}function h({walletAddress:n,tokenMint:t,tokenProgramId:r=s}){return e.web3.PublicKey.findProgramAddressSync([n.toBuffer(),r.toBuffer(),t.toBuffer()],l)[0]}function v(e,n){if(n<=0)throw new Error("Chunk size must be greater than 0");const t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}var R=Object.freeze({__proto__:null,ANCHOR_WALLET_PLACEHOLDER:o,ASSOCIATED_TOKEN_PROGRAM_ID:l,BANX_SOL_MINT:m,BASE_POINTS:f,BASE_POINTS_BN:p,ENCODER:b,NATIVE_MINT:d,NATIVE_MINT_2022:u,SECONDS_IN_YEAR:k,TOKEN_2022_PROGRAM_ID:c,TOKEN_PROGRAM_ID:s,WAD:g,bnToBase58LE:y,bpToWad:T,chunk:v,createGetAllProgramAccountFilter:M,createGetAllProgramAccountFilters:O,findATA:h,fromWad:P,getBanxAnchorProgram:i,mergePublicKeyAndAccountData:r,sqrtBN:S,toWad:A,u128ToBase58:function(e){return y(e,16)},u64ToBase58:function(e){return y(e,8)},u8ToBase58:w,wadDiv:L,wadMul:B});function x(e){return{...e,publicKey:e.publicKey.toBase58(),marketAuthority:e.marketAuthority.toBase58(),collateralTokenMint:e.collateralTokenMint.toBase58(),lendingTokenMint:e.lendingTokenMint.toBase58(),oracleDuration:e.oracleDuration.toString(),lookupTable:e.lookupTable.toBase58(),placeholder1:e.placeholder1.toBase58(),placeholder2:e.placeholder2.toBase58()}}function K(n){return{...n,publicKey:new e.web3.PublicKey(n.publicKey),marketAuthority:new e.web3.PublicKey(n.marketAuthority),collateralTokenMint:new e.web3.PublicKey(n.collateralTokenMint),lendingTokenMint:new e.web3.PublicKey(n.lendingTokenMint),oracleDuration:new e.BN(n.oracleDuration),lookupTable:new e.web3.PublicKey(n.lookupTable),placeholder1:new e.web3.PublicKey(n.placeholder1),placeholder2:new e.web3.PublicKey(n.placeholder2)}}async function V(e,n,t){const r=i(e),a=v(t,100).map((e=>r.account[n].fetchMultiple(e)));return(await Promise.all(a)).flat().map(((e,n)=>e?{publicKey:t[n],...e}:null)).filter((e=>null!==e))}async function N(e,n){const t=i(e),r=await t.account.banxMarket.fetch(n);return r?{publicKey:n,...r}:null}async function I(e,n){return V(e,"banxMarket",n)}const C={collateralTokenMint:[40,e=>e.toBase58()],lendingTokenMint:[72,e=>e.toBase58()],marketState:[152,w],oracleFeedType:[153,w]};async function F(e,n){const t=O(n||{},C),a=i(e);return(await a.account.banxMarket.all(t)).map(r)}const E="rent_vault_prefix",_="loan",W="user_vault",q="bond_offer",U="banx_market",J=new e.web3.PublicKey("revJ8QJgQ3xCcZ6CMykjsmGMYdg8Pj9WnqgJZBHBwSK"),D=new e.web3.PublicKey("pythWSnswVUd12oZpeFP8e9CVaEqJg25g1Vtc2biRsT"),G=new e.web3.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"),z=new e.web3.PublicKey("4fdMvFuyNboQ5Kr93X16f1tFcTeEkvfNwNAeSrzY3afb"),Q=new e.web3.PublicKey("BANXyWgPpa519e2MtQF1ecRbKYKKDMXPF1dyBxUq9NQG"),Z=new e.web3.PublicKey("SPMBzsVUuoHA4Jm6KunbsotaahvVikZs1JyTW6iJvbn"),Y=new e.web3.PublicKey("3ufHs1EDLsCPTsBYG5ydsctCmCP2qHn5nVqqLRSpcj4A"),H=new e.web3.PublicKey("niN3rZEhnbp2abRMsVJ15W4G9F2dKXNyaUfCTYcQbsW"),j=new e.web3.PublicKey("J1rLDnAzXMhdpGifEYKbQhVt5JoGmJZPaYFDgd5VKXAH");async function X({accounts:n,connection:t,args:r}){const a=i(t),o=[],c=h({walletAddress:n.userPubkey,tokenMint:r.collateralTokenMint}),[d]=e.web3.PublicKey.findProgramAddressSync([b.encode(U),r.lendingTokenMint.toBuffer(),r.collateralTokenMint.toBuffer()],a.programId),[u]=e.web3.PublicKey.findProgramAddressSync([b.encode(E)],a.programId),m=await a.methods.initializeOrUpdateMarket({upfrontFee:r.upfrontFeeBp,interestFee:r.interestFeeBp,marginOfSafety:r.marginOfSafety,marketState:r.marginOfSafety,lendingTokenMint:r.lendingTokenMint,oraclePriceFeed:r.oraclePriceFeed,collateralDigits:r.collateralDigits,oracleFeedType:r.oracleFeedType,lendingTokenDigits:r.lendingTokenDigits,lookupTable:r.lookupTable,marketAuthority:r.marketAuthority,oracleDuration:r.oracleDuration}).accountsStrict({collateralMint:r.collateralTokenMint,collateralVaultTokenAccount:c,rentVault:u,market:d,user:n.userPubkey,systemProgram:e.web3.SystemProgram.programId,tokenProgram:s,associatedTokenProgram:l,rent:e.web3.SYSVAR_RENT_PUBKEY}).instruction();return o.push(m),{mutatedAccounts:{banxMarket:d},instructions:o,signers:[]}}async function $({args:e,accounts:n,connection:t,walletPublicKey:r}){return X({args:{...n.banxMarket.struct,...e},connection:t,accounts:{userPubkey:r}})}class ee{constructor(e){this.struct=e}static fromSerialized(e){return new ee(K(e))}serialize(){return x(this.struct)}static async fetch(e,n){const t=await N(e,n);return t?new ee(t):null}static async fetchMultiple(e,n){return(await I(e,n)).map((e=>new ee(e)))}static async fetchAll(e,n){return(await F(e,n)).map((e=>new ee(e)))}getState(){return this.struct.marketState}getOraclePriceFeedType(){return this.struct.oracleFeedType}async getUpdateIxns(e,n){const{walletPublicKey:t,...r}=e;return $({accounts:{banxMarket:this},walletPublicKey:t,connection:n,args:r})}}var ne,te;function re(n,t){if(n===exports.OraclePriceFeedType.None)return e.web3.PublicKey.default;if(n===exports.OraclePriceFeedType.Switchboard)return new e.web3.PublicKey(t);if(n===exports.OraclePriceFeedType.Pyth){const n=new Uint8Array(2),r=new Uint8Array(t),[a]=e.web3.PublicKey.findProgramAddressSync([n,r],D);return a}throw new Error("OracleFeedType not supported")}function ae(e){return{...e,publicKey:e.publicKey.toBase58(),bondOffer:e.bondOffer.toBase58(),lender:e.lender.toBase58(),borrower:e.borrower.toBase58(),collateralTokenAccount:e.collateralTokenAccount.toBase58(),compoundedProtocolInterest:e.compoundedProtocolInterest.toString(),loanAmount:e.loanAmount.toString(),feeAmount:e.feeAmount.toString(),soldAt:e.soldAt.toString(),redeemedAt:e.redeemedAt.toString(),currentRemainingLent:e.currentRemainingLent.toString(),interestSnapshot:e.interestSnapshot.toString(),partialRepaySnapshot:e.partialRepaySnapshot.toString(),terminationStartedAt:e.auctionStartedAt.toString(),lenderOriginalLent:e.lenderOriginalLent.toString(),lenderFullRepaidAmount:e.lenderFullRepaidAmount.toString(),borrowerOriginalLent:e.borrowerOriginalLent.toString(),borrowerFullRepaidAmount:e.borrowerFullRepaidAmount.toString(),repaymentCallAmount:e.repaymentCallAmount.toString(),collateralAmount:e.collateralAmount.toString(),placeholder2:e.placeholder2.toBase58()}}function oe(n){return{...n,publicKey:new e.web3.PublicKey(n.publicKey),bondOffer:new e.web3.PublicKey(n.bondOffer),lender:new e.web3.PublicKey(n.lender),borrower:new e.web3.PublicKey(n.borrower),collateralTokenAccount:new e.web3.PublicKey(n.collateralTokenAccount),compoundedProtocolInterest:new e.BN(n.compoundedProtocolInterest),loanAmount:new e.BN(n.loanAmount),feeAmount:new e.BN(n.feeAmount),soldAt:new e.BN(n.soldAt),redeemedAt:new e.BN(n.redeemedAt),currentRemainingLent:new e.BN(n.currentRemainingLent),interestSnapshot:new e.BN(n.interestSnapshot),partialRepaySnapshot:new e.BN(n.partialRepaySnapshot),auctionStartedAt:new e.BN(n.terminationStartedAt),lenderOriginalLent:new e.BN(n.lenderOriginalLent),lenderFullRepaidAmount:new e.BN(n.lenderFullRepaidAmount),borrowerOriginalLent:new e.BN(n.borrowerOriginalLent),borrowerFullRepaidAmount:new e.BN(n.borrowerFullRepaidAmount),repaymentCallAmount:new e.BN(n.repaymentCallAmount),collateralAmount:new e.BN(n.collateralAmount),placeholder2:new e.web3.PublicKey(n.placeholder2)}}async function ie(e,n){const t=i(e),r=await t.account.bondLoan.fetch(n);return r?{publicKey:n,...r}:null}async function se(e,n){return V(e,"bondLoan",n)}exports.BanxMarketState=void 0,(ne=exports.BanxMarketState||(exports.BanxMarketState={}))[ne.None=0]="None",ne[ne.Initializing=1]="Initializing",ne[ne.Available=2]="Available",ne[ne.Closed=3]="Closed",exports.OraclePriceFeedType=void 0,(te=exports.OraclePriceFeedType||(exports.OraclePriceFeedType={}))[te.None=0]="None",te[te.Pyth=1]="Pyth",te[te.Switchboard=2]="Switchboard";const ce={bondOffer:[8,e=>e.toBase58()],lender:[40,e=>e.toBase58()],borrower:[72,e=>e.toBase58()],bondLoanState:[280,w],liquidationType:[281,w],redeemResult:[282,w],redeemResultNext:[284,w]};async function le(e,n){const t=O(n||{},ce),a=i(e);return(await a.account.bondLoan.all(t)).map(r)}function de({loanValue:n,startTimeUnix:t,endTimeUnix:r,aprBp:a}){const o=A(n),i=A(new e.BN(r-t)),s=A(new e.BN(k)),c=T(new e.BN(a));return P(B(o,B(L(i,s),c)))}const ue=(n,t,r,a)=>{const o=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:e.web3.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:e.web3.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}];return[new e.web3.TransactionInstruction({keys:o,programId:l,data:Buffer.from([1])})]};function me(n,t){const r=h({walletAddress:n,tokenMint:Q}),[a]=e.web3.PublicKey.findProgramAddressSync([z.toBuffer(),Buffer.from("withdraw")],Z);return t.push(...ue(r,n,n,Q)),[{pubkey:z,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:Y,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:H,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:Q,isSigner:!1,isWritable:!0},{pubkey:e.web3.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:Z,isSigner:!1,isWritable:!1}]}function be(n){const t=h({walletAddress:n,tokenMint:Q}),r=h({walletAddress:j,tokenMint:Q});return[{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:Q,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:j,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:e.web3.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:e.web3.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}]}async function fe({accounts:n,connection:t}){const r=i(t),a=[],[o]=e.web3.PublicKey.findProgramAddressSync([b.encode(E)],r.programId),[c]=e.web3.PublicKey.findProgramAddressSync([b.encode(W),n.lender.toBuffer(),n.lendingTokenMint.toBuffer()],r.programId),d=h({walletAddress:n.userPubkey,tokenMint:n.lendingTokenMint}),u=h({walletAddress:c,tokenMint:n.lendingTokenMint}),m=h({walletAddress:J,tokenMint:n.lendingTokenMint}),f=h({walletAddress:n.userPubkey,tokenMint:n.collateralMint}),p=n.lendingTokenMint.toBase58()===Q.toBase58()?me(n.userPubkey,a):[],k=await r.methods.repayPerpetualLoan().accountsStrict({rentVault:o,user:n.userPubkey,systemProgram:e.web3.SystemProgram.programId,rent:e.web3.SYSVAR_RENT_PUBKEY,bondOffer:n.bondOffer,market:n.market,bondLoan:n.bondLoan,lendingTokenMint:n.lendingTokenMint,lenderVault:c,userCollateralTokenAccount:f,collateralMint:n.collateralMint,protocolFeeReceiver:J,protocolFeeReceiverLendingTokenAccount:m,oracle:n.oracle,tokenProgram:s,associatedTokenProgram:l,marketCollateralVaultTokenAccount:n.marketCollateralVaultTokenAccount,userLendingTokenAccount:d,lenderVaultLendingTokenAccount:u}).remainingAccounts(p).instruction();return a.push(k),{mutatedAccounts:{bondOffer:n.bondOffer,bondLoan:n.bondLoan},instructions:a,signers:[]}}async function pe({connection:e,walletPublicKey:n,accounts:t}){const{bondOffer:r,banxMarket:a,bondLoan:o}=t,i=re(a.getOraclePriceFeedType(),a.struct.oraclePriceFeed);return fe({connection:e,accounts:{bondLoan:o.struct.publicKey,bondOffer:r.struct.publicKey,userPubkey:n,market:a.struct.publicKey,collateralMint:a.struct.collateralTokenMint,lendingTokenMint:a.struct.lendingTokenMint,oracle:i,marketCollateralVaultTokenAccount:o.struct.collateralTokenAccount,lender:r.struct.assetReceiver}})}async function ke({args:n,accounts:t,connection:r}){const a=i(r),o=[],[c]=e.web3.PublicKey.findProgramAddressSync([b.encode(E)],a.programId),[d]=e.web3.PublicKey.findProgramAddressSync([b.encode(_),t.bondLoan.toBuffer()],a.programId),[u]=e.web3.PublicKey.findProgramAddressSync([b.encode(W),t.lender.toBuffer(),t.lendingTokenMint.toBuffer()],a.programId),m=h({walletAddress:t.userPubkey,tokenMint:t.lendingTokenMint}),f=h({walletAddress:u,tokenMint:t.lendingTokenMint}),p=h({walletAddress:J,tokenMint:t.lendingTokenMint}),k=t.lendingTokenMint.toBase58()===Q.toBase58()?me(t.userPubkey,o):[],g=await a.methods.repayPartialPerpetualLoan(n.amountToRepay).accountsStrict({rentVault:c,user:t.userPubkey,systemProgram:e.web3.SystemProgram.programId,rent:e.web3.SYSVAR_RENT_PUBKEY,bondOffer:t.bondOffer,market:t.market,bondLoan:t.bondLoan,lendingTokenMint:t.lendingTokenMint,lenderVault:u,protocolFeeReceiver:J,protocolFeeReceiverLendingTokenAccount:p,oracle:t.oracle,tokenProgram:s,associatedTokenProgram:l,userLendingTokenAccount:m,lenderVaultLendingTokenAccount:f,newBondLoan:d}).remainingAccounts(k).instruction();return o.push(g),{mutatedAccounts:{bondOffer:t.bondOffer,prevBondLoan:t.bondLoan,newBondLoan:d},instructions:o,signers:[]}}async function ge({args:e,connection:n,walletPublicKey:t,accounts:r}){const{bondOffer:a,banxMarket:o,bondLoan:i}=r,s=re(o.getOraclePriceFeedType(),o.struct.oraclePriceFeed);return ke({args:e,connection:n,accounts:{bondLoan:i.struct.publicKey,bondOffer:a.struct.publicKey,userPubkey:t,market:o.struct.publicKey,collateralMint:o.struct.collateralTokenMint,lendingTokenMint:o.struct.lendingTokenMint,oracle:s,lender:a.struct.assetReceiver}})}async function ye({args:n,accounts:t,connection:r}){const a=i(r),o=[];return o.push(await a.methods.terminatePerpetualLoan(n.sellLoan).accountsStrict({user:t.userPubkey,systemProgram:e.web3.SystemProgram.programId,rent:e.web3.SYSVAR_RENT_PUBKEY,market:t.market,bondLoan:t.bondLoan,bondOffer:t.bondOffer,oracle:t.oracle}).instruction()),{mutatedAccounts:{bondLoan:t.bondLoan,bondOffer:t.bondOffer},instructions:o,signers:[]}}async function we({connection:e,walletPublicKey:n,accounts:t}){const{bondLoan:r,banxMarket:a}=t,o=re(a.getOraclePriceFeedType(),a.struct.oraclePriceFeed);return ye({connection:e,args:{sellLoan:!1},accounts:{bondLoan:r.struct.publicKey,bondOffer:r.struct.bondOffer,lender:r.struct.lender,lendingTokenMint:a.struct.lendingTokenMint,market:a.struct.publicKey,oracle:o,userPubkey:n}})}async function Ae({accounts:n,connection:t}){const r=i(t),a=[];return a.push(await r.methods.revertTerminatePerpetualLoan().accountsStrict({user:n.userPubkey,systemProgram:e.web3.SystemProgram.programId,rent:e.web3.SYSVAR_RENT_PUBKEY,market:n.market,bondLoan:n.bondLoan,bondOffer:n.bondOffer}).instruction()),{mutatedAccounts:{bondLoan:n.bondLoan,bondOffer:n.bondOffer},instructions:a,signers:[]}}async function Pe({connection:e,walletPublicKey:n,accounts:t}){const{bondLoan:r,banxMarket:a}=t;return Ae({connection:e,accounts:{bondLoan:r.struct.publicKey,bondOffer:r.struct.bondOffer,userPubkey:n,lender:r.struct.lender,market:a.struct.publicKey}})}async function Te({accounts:n,connection:t,args:r}){const a=i(t),o=[],[c]=e.web3.PublicKey.findProgramAddressSync([b.encode(E)],a.programId),[d]=e.web3.PublicKey.findProgramAddressSync([b.encode(W),n.newLender.toBuffer(),n.lendingTokenMint.toBuffer()],a.programId),[u]=e.web3.PublicKey.findProgramAddressSync([b.encode(W),n.oldLender.toBuffer(),n.lendingTokenMint.toBuffer()],a.programId),[m]=e.web3.PublicKey.findProgramAddressSync([b.encode(_),n.oldBondLoan.toBuffer()],a.programId),f=h({walletAddress:n.userPubkey,tokenMint:n.lendingTokenMint}),p=h({walletAddress:u,tokenMint:n.lendingTokenMint}),k=h({walletAddress:d,tokenMint:n.lendingTokenMint}),g=h({walletAddress:J,tokenMint:n.lendingTokenMint}),y=n.lendingTokenMint.toBase58()===Q.toBase58()?r.positiveRefinance?be(n.userPubkey):me(n.userPubkey,o):[],w=await a.methods.borrowerRefinance(r.amountToRefinance).accountsStrict({rentVault:c,user:n.userPubkey,systemProgram:e.web3.SystemProgram.programId,rent:e.web3.SYSVAR_RENT_PUBKEY,market:n.market,lendingTokenMint:n.lendingTokenMint,protocolFeeReceiver:J,protocolFeeReceiverLendingTokenAccount:g,tokenProgram:s,associatedTokenProgram:l,userLendingTokenAccount:f,newBondOffer:n.newBondOffer,oldBondOffer:n.oldBondOffer,oldBondLoan:n.oldBondLoan,newBondLoan:m,newLenderVault:d,oldLenderVault:u,oldLenderVaultLendingTokenAccount:p,newLenderVaultLendingTokenAccount:k,oracle:n.oracle}).remainingAccounts(y).instruction();return o.push(w),{mutatedAccounts:{newBondLoan:m,oldBondLoan:n.oldBondLoan,newBondOffer:n.newBondOffer,oldBondOffer:n.oldBondOffer,newLenderVault:d,oldLenderVault:u},instructions:o,signers:[]}}async function Be({args:e,connection:n,walletPublicKey:t,accounts:r}){const{bondLoan:a,bondOffer:o,banxMarket:i}=r,s=re(i.getOraclePriceFeedType(),i.struct.oraclePriceFeed);return Te({args:e,connection:n,accounts:{lendingTokenMint:i.struct.lendingTokenMint,market:i.struct.publicKey,oracle:s,oldBondOffer:a.struct.bondOffer,oldBondLoan:a.struct.publicKey,oldLender:a.struct.lender,newBondOffer:o.struct.publicKey,newLender:o.struct.assetReceiver,userPubkey:t}})}async function Le({accounts:n,connection:t}){const r=i(t),a=[],[o]=e.web3.PublicKey.findProgramAddressSync([b.encode(E)],r.programId),[c]=e.web3.PublicKey.findProgramAddressSync([b.encode(W),n.newLender.toBuffer(),n.lendingTokenMint.toBuffer()],r.programId),[d]=e.web3.PublicKey.findProgramAddressSync([b.encode(W),n.oldLender.toBuffer(),n.lendingTokenMint.toBuffer()],r.programId),[u]=e.web3.PublicKey.findProgramAddressSync([b.encode(_),n.oldBondLoan.toBuffer()],r.programId),m=h({walletAddress:n.userPubkey,tokenMint:n.lendingTokenMint}),f=h({walletAddress:d,tokenMint:n.lendingTokenMint}),p=h({walletAddress:c,tokenMint:n.lendingTokenMint}),k=h({walletAddress:J,tokenMint:n.lendingTokenMint});n.lendingTokenMint.toBase58()!==Q.toBase58()||be(n.userPubkey);const g=await r.methods.lenderInstantRefinance().accountsStrict({rentVault:o,user:n.userPubkey,systemProgram:e.web3.SystemProgram.programId,rent:e.web3.SYSVAR_RENT_PUBKEY,market:n.market,lendingTokenMint:n.lendingTokenMint,protocolFeeReceiver:J,protocolFeeReceiverLendingTokenAccount:k,tokenProgram:s,associatedTokenProgram:l,userLendingTokenAccount:m,newBondOffer:n.newBondOffer,oldBondOffer:n.oldBondOffer,oldBondLoan:n.oldBondLoan,newBondLoan:u,newLenderVault:c,oldLenderVault:d,oldLenderVaultLendingTokenAccount:f,newLenderVaultLendingTokenAccount:p,oracle:n.oracle}).instruction();return a.push(g),{mutatedAccounts:{newBondLoan:u,oldBondLoan:n.oldBondLoan,newBondOffer:n.newBondOffer,oldBondOffer:n.oldBondOffer,newLenderVault:c,oldLenderVault:d},instructions:a,signers:[]}}async function Se({connection:e,walletPublicKey:n,accounts:t}){const{bondLoan:r,bondOffer:a,banxMarket:o}=t,i=re(o.getOraclePriceFeedType(),o.struct.oraclePriceFeed);return Le({connection:e,accounts:{lendingTokenMint:o.struct.lendingTokenMint,market:o.struct.publicKey,oracle:i,oldBondOffer:r.struct.bondOffer,oldBondLoan:r.struct.publicKey,oldLender:r.struct.lender,newBondOffer:a.struct.publicKey,newLender:a.struct.assetReceiver,userPubkey:n}})}async function Me({accounts:n,connection:t}){const r=i(t),a=[],[o]=e.web3.PublicKey.findProgramAddressSync([b.encode(E)],r.programId),[c]=e.web3.PublicKey.findProgramAddressSync([b.encode(W),n.newLender.toBuffer(),n.lendingTokenMint.toBuffer()],r.programId),[d]=e.web3.PublicKey.findProgramAddressSync([b.encode(W),n.oldLender.toBuffer(),n.lendingTokenMint.toBuffer()],r.programId),[u]=e.web3.PublicKey.findProgramAddressSync([b.encode(_),n.oldBondLoan.toBuffer()],r.programId),m=h({walletAddress:n.userPubkey,tokenMint:n.lendingTokenMint}),f=h({walletAddress:d,tokenMint:n.lendingTokenMint}),p=h({walletAddress:J,tokenMint:n.lendingTokenMint}),k=n.lendingTokenMint.toBase58()===Q.toBase58()?me(n.userPubkey,a):[],g=await r.methods.refinancePerpetualLoanFromOffer().accountsStrict({rentVault:o,user:n.userPubkey,systemProgram:e.web3.SystemProgram.programId,rent:e.web3.SYSVAR_RENT_PUBKEY,market:n.market,lendingTokenMint:n.lendingTokenMint,protocolFeeReceiver:J,protocolFeeReceiverLendingTokenAccount:p,tokenProgram:s,associatedTokenProgram:l,userLendingTokenAccount:m,newBondOffer:n.newBondOffer,oldBondOffer:n.oldBondOffer,oldBondLoan:n.oldBondLoan,newBondLoan:u,newLenderVault:c,oldLenderVault:d,oldLenderVaultLendingTokenAccount:f,oracle:n.oracle}).remainingAccounts(k).instruction();return a.push(g),{mutatedAccounts:{newBondLoan:u,oldBondLoan:n.oldBondLoan,newBondOffer:n.newBondOffer,oldBondOffer:n.oldBondOffer,newLenderVault:c,oldLenderVault:d},instructions:a,signers:[]}}async function Oe({connection:e,walletPublicKey:n,accounts:t}){const{bondLoan:r,bondOffer:a,banxMarket:o}=t,i=re(o.getOraclePriceFeedType(),o.struct.oraclePriceFeed);return Me({connection:e,accounts:{lendingTokenMint:o.struct.lendingTokenMint,market:o.struct.publicKey,oracle:i,oldBondOffer:r.struct.bondOffer,oldBondLoan:r.struct.publicKey,oldLender:r.struct.lender,newBondOffer:a.struct.publicKey,newLender:a.struct.assetReceiver,userPubkey:n}})}async function he({accounts:n,connection:t}){const r=i(t),a=[],o=new e.BN(Math.floor(1e6*Math.random())),[c]=e.web3.PublicKey.findProgramAddressSync([b.encode(E)],r.programId),[d]=e.web3.PublicKey.findProgramAddressSync([b.encode(W),n.newLender.toBuffer(),n.lendingTokenMint.toBuffer()],r.programId),[u]=e.web3.PublicKey.findProgramAddressSync([b.encode(W),n.oldLender.toBuffer(),n.lendingTokenMint.toBuffer()],r.programId),[m]=e.web3.PublicKey.findProgramAddressSync([b.encode(_),n.oldBondLoan.toBuffer()],r.programId),[f]=e.web3.PublicKey.findProgramAddressSync([b.encode(q),n.userPubkey.toBuffer(),b.encode(o.toString())],r.programId),p=h({walletAddress:n.userPubkey,tokenMint:n.lendingTokenMint}),k=h({walletAddress:u,tokenMint:n.lendingTokenMint}),g=h({walletAddress:J,tokenMint:n.lendingTokenMint}),y=n.lendingTokenMint.toBase58()===Q.toBase58()?me(n.userPubkey,a):[],w=await r.methods.refinancePerpetualLoan()