UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 206 kB
var rr=Object.defineProperty,ar=Object.defineProperties;var sr=Object.getOwnPropertyDescriptors;var yn=Object.getOwnPropertySymbols;var Co=Object.prototype.hasOwnProperty,Ro=Object.prototype.propertyIsEnumerable;var Ko=(y,e,t)=>e in y?rr(y,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):y[e]=t,F=(y,e)=>{for(var t in e||(e={}))Co.call(e,t)&&Ko(y,t,e[t]);if(yn)for(var t of yn(e))Ro.call(e,t)&&Ko(y,t,e[t]);return y},q=(y,e)=>ar(y,sr(e));var tt=(y,e)=>{var t={};for(var n in y)Co.call(y,n)&&e.indexOf(n)<0&&(t[n]=y[n]);if(y!=null&&yn)for(var n of yn(y))e.indexOf(n)<0&&Ro.call(y,n)&&(t[n]=y[n]);return t};import{PublicKey as No}from"@solana/web3.js";import{get as Lo,set as ur}from"lodash";var Gn=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Oo={},cr={};function ee(y){let e=Lo(Oo,y);if(!e){let t=Lo(cr,y);e=new Gn({name:y,logLevel:t}),ur(Oo,y,e)}return e}import{MINT_SIZE as lr,TOKEN_PROGRAM_ID as mr,getTransferFeeConfig as dr,unpackMint as pr}from"@solana/spl-token";var zn=ee("Raydium_accountInfo_util");async function ve(y,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=F({batchRequest:!1},t),r=Xn(e,i),a=new Array(r.length).fill([]);if(n){let s=r.map(d=>{let g=y._buildArgs([d.map(m=>m.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:g}}),c=Xn(s,10);a=(await(await Promise.all(c.map(async d=>await y._rpcBatchRequest(d)))).flat()).map(d=>(d.error&&zn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${d.error.message}`),d.result.value.map(g=>{if(g){let{data:m,executable:p,lamports:f,owner:b,rentEpoch:w}=g;return m.length!==2&&m[1]!=="base64"&&zn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:p,lamports:f,owner:new No(b),rentEpoch:w}}return null})))}else try{a=await Promise.all(r.map(s=>y.getMultipleAccountsInfo(s,o)))}catch(s){s instanceof Error&&zn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${s.message}`)}return a.flat()}async function Ee(y,e,t){let n=await ve(y,e.map(o=>o.pubkey),t);return e.map((o,i)=>q(F({},o),{accountInfo:n[i]}))}async function Yt({connection:y,mints:e,config:t}){var i,r,a;if(e.length===0)return{};let n=await Ee(y,e.map(s=>({pubkey:at(s)})),t),o={};for(let s of n){if(!s.accountInfo||s.accountInfo.data.length<lr){console.log("invalid mint account",s.pubkey.toBase58());continue}let c=pr(s.pubkey,s.accountInfo,(i=s.accountInfo)==null?void 0:i.owner);o[s.pubkey.toString()]=q(F({},c),{programId:((r=s.accountInfo)==null?void 0:r.owner)||mr,feeConfig:(a=dr(c))!=null?a:void 0})}return o[No.default.toBase58()]=o[Y.toBase58()],o}import Ct from"bn.js";import yC from"decimal.js";import kr from"big.js";import Pn from"bn.js";import fr from"toformat";var yr=fr,Qt=yr;import gn from"big.js";import gr from"bn.js";import Pr from"decimal.js-light";import Zt from"bn.js";var Mo=9007199254740991;function Be(y){let e=ee("Raydium_parseBigNumberish");if(y instanceof Zt)return y;if(typeof y=="string"){if(y.match(/^-?[0-9]+$/))return new Zt(y);e.logWithError(`invalid BigNumberish string: ${y}`)}return typeof y=="number"?(y%1&&e.logWithError(`BigNumberish number underflow: ${y}`),(y>=Mo||y<=-Mo)&&e.logWithError(`BigNumberish number overflow: ${y}`),new Zt(String(y))):typeof y=="bigint"?new Zt(y.toString()):(e.error(`invalid BigNumberish value: ${y}`),new Zt(0))}var bn=ee("module/fraction"),Yn=Qt(gn),Ht=Qt(Pr),Ar={[0]:Ht.ROUND_DOWN,[1]:Ht.ROUND_HALF_UP,[2]:Ht.ROUND_UP},wr={[0]:gn.roundDown,[1]:gn.roundHalfUp,[2]:gn.roundUp},ie=class{constructor(e,t=new gr(1)){this.numerator=Be(e),this.denominator=Be(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new ie(this.denominator,this.numerator)}add(e){let t=e instanceof ie?e:new ie(Be(e));return this.denominator.eq(t.denominator)?new ie(this.numerator.add(t.numerator),this.denominator):new ie(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof ie?e:new ie(Be(e));return this.denominator.eq(t.denominator)?new ie(this.numerator.sub(t.numerator),this.denominator):new ie(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof ie?e:new ie(Be(e));return new ie(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof ie?e:new ie(Be(e));return new ie(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||bn.logWithError(`${e} is not an integer.`),e<=0&&bn.logWithError(`${e} is not positive.`),Ht.set({precision:e+1,rounding:Ar[n]});let o=new Ht(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||bn.logWithError(`${e} is not an integer.`),e<0&&bn.logWithError(`${e} is negative.`),Yn.DP=e,Yn.RM=wr[n]||1,new Yn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Tr=ee("Raydium_amount"),Fo=Qt(kr);function hr(y,e){let t="0",n="0";if(y.includes(".")){let o=y.split(".");o.length===2?([t,n]=o,n=n.padEnd(e,"0")):Tr.logWithError(`invalid number string, num: ${y}`)}else t=y;return[t,n.slice(0,e)||n]}var Se=class extends ie{constructor(t,n,o=!0,i){let r=new Pn(0),a=Qn.pow(new Pn(t.decimals));if(o)r=Be(n);else{let s=new Pn(0),c=new Pn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[u,d]=hr(n.toString(),t.decimals);s=Be(u),c=Be(d)}s=s.mul(a),r=s.add(c)}super(r,a);this.logger=ee(i||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new Se(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new Se(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,o=0){return super.toSignificant(t,n,o)}toFixed(t=this.token.decimals,n,o=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,o)}toExact(t={groupSeparator:""}){return Fo.DP=this.token.decimals,new Fo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Ir}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vo}from"@solana/spl-token";var An={chainId:101,address:Ir.default.toBase58(),programId:vo.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},st={chainId:101,address:"So11111111111111111111111111111111111111112",programId:vo.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Hn}from"@solana/web3.js";import{PublicKey as pe,SystemProgram as Vo,SYSVAR_RENT_PUBKEY as Br}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Sr}from"@solana/spl-token";function Rt({pubkey:y,isSigner:e=!1,isWritable:t=!0}){return{pubkey:y,isWritable:t,isSigner:e}}var xr=[Rt({pubkey:Sr,isWritable:!1}),Rt({pubkey:Vo.programId,isWritable:!1}),Rt({pubkey:Br,isWritable:!1})];function Zn({publicKey:y,transformSol:e}){let t=_o(y.toString());if(t instanceof pe)return e&&t.equals(Tt)?Y:t;if(e&&t.toString()===Tt.toBase58())return Y;if(typeof t=="string"){if(t===pe.default.toBase58())return pe.default;try{return new pe(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function _o(y){try{return new pe(y)}catch{return y}}var gt=new pe("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new pe("SysvarRent111111111111111111111111111111111"),Fu=new pe("SysvarC1ock11111111111111111111111111111111"),Pt=new pe("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Kr=new pe("Sysvar1nstructions1111111111111111111111111"),Cr=Vo.programId,vu=new pe("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Vu=new pe("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),_u=new pe("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Eu=new pe("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Du=new pe("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Wu=new pe("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),qu=new pe("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Uu=new pe("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Gu=new pe("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),zu=new pe("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Xu=new pe("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Y=new pe("So11111111111111111111111111111111111111112"),Tt=pe.default;function at(y){return Zn({publicKey:y,transformSol:!0})}var jn=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===Tt.toBase58()||e instanceof Hn&&Tt.equals(e)){this.decimals=st.decimals,this.symbol=st.symbol,this.name=st.name,this.mint=new Hn(st.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=i?Hn.default:Zn({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Ce=jn;Ce.WSOL=new jn(q(F({},st),{mint:st.address}));var $n=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},wn=$n;wn.SOL=new $n(An);import Rr from"bn.js";var Eo=new ie(new Rr(100)),ut=class extends ie{toSignificant(e=5,t,n){return this.mul(Eo).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(Eo).toFixed(e,t,n)}};var Lr=ee("Raydium_price"),Ye=class extends ie{constructor(t){let{baseToken:n,quoteToken:o,numerator:i,denominator:r}=t;super(i,r);this.baseToken=n,this.quoteToken=o,this.scalar=new ie(Jn(n.decimals),Jn(o.decimals))}get raw(){return new ie(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Ye({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Lr.logWithError("mul token not equals");let n=super.mul(t);return new Ye({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,o){return this.adjusted.toSignificant(t,n,o)}toFixed(t=this.quoteToken.decimals,n,o){return this.adjusted.toFixed(t,n,o)}};import{merge as gK}from"lodash";import bc from"axios";var Do={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Or=q(F({},Do),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var Ec=ee("Raydium_Api");import{PublicKey as id,SystemProgram as rd}from"@solana/web3.js";import{AccountLayout as ld,createAssociatedTokenAccountIdempotentInstruction as md,TOKEN_PROGRAM_ID as dd,TOKEN_2022_PROGRAM_ID as pd}from"@solana/spl-token";import{PublicKey as Ft,sendAndConfirmTransaction as ro,SystemProgram as _r,Transaction as Jt,TransactionMessage as en,VersionedTransaction as tn}from"@solana/web3.js";import Er from"axios";import{PublicKey as eo,AddressLookupTableAccount as Nt}from"@solana/web3.js";async function to({connection:y,address:e,cluster:t="mainnet"}){let n=await ve(y,[...new Set(e.map(i=>i.toString()))].map(i=>new eo(i))),o={};for(let i=0;i<e.length;i++){let r=n[i],a=e[i];if(!r)continue;let s=new Nt({key:a,state:Nt.deserialize(r.data)});o[a.toString()]=s,t==="devnet"?Ot[a.toString()]=s:Lt[a.toString()]=s}return o}var Lt={},no=async y=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Lt[e])return Lt;let t=new eo(e),n=await y.getAccountInfo(t);return n&&(Lt[e]=new Nt({key:t,state:Nt.deserialize(n.data)})),Lt},Ot={},oo=async y=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ot[e])return Ot;let t=new eo(e),n=await y.getAccountInfo(t);return n&&(Ot[e]=new Nt({key:t,state:Nt.deserialize(n.data)})),Ot};var $={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as Wo,Keypair as Uo,PublicKey as Nr,Transaction as Go,TransactionMessage as Mr,VersionedTransaction as zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fr}from"@solana/spl-token";var qo=ee("Raydium_txUtil"),Xo=1644;function kn(y){let e=[],t=[];return y.microLamports&&(e.push(Wo.setComputeUnitPrice({microLamports:y.microLamports})),t.push($.SetComputeUnitPrice)),y.units&&(e.push(Wo.setComputeUnitLimit({units:y.units})),t.push($.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Mt(y,e){var n,o;let t=e!=null?e:"confirmed";return(o=await((n=y.getLatestBlockhash)==null?void 0:n.call(y,{commitment:t})))==null?void 0:o.blockhash}async function Tn(y,e){return y.getSignatureStatuses([e]),new Promise((t,n)=>{let o=setTimeout(n,6e4);y.onSignature(e,i=>{if(clearTimeout(o),!i.err){t("");return}n(Object.assign(i.err,{txId:e}))},"confirmed")})}function io(y,e){y.length<1&&qo.logWithError(`no instructions provided: ${y.toString()}`),e.length<1&&qo.logWithError(`no signers provided:, ${e.toString()}`);let t=new Go;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...y);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Xo}catch{return!1}}function ae(y,e){let[t,n]=Nr.findProgramAddressSync(y,e);return{publicKey:t,nonce:n}}function jt({instructions:y,payer:e,signers:t}){return io(y,[e,...t])}function $t({instructions:y,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Uo.generate().publicKey.toString()}){let i=new Mr({payerKey:e,recentBlockhash:n,instructions:y}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new zo(i).serialize()).toString("base64").length<Xo}catch{return!1}}var vr=y=>Buffer.isBuffer(y)?y:y instanceof Uint8Array?Buffer.from(y.buffer,y.byteOffset,y.byteLength):Buffer.from(y),Vr=y=>{let e=y.serialize({requireAllSignatures:!1,verifySignatures:!1});y instanceof zo&&(e=vr(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function ht(y){let e=[];return y.forEach(t=>{t instanceof Go&&(t.recentBlockhash||(t.recentBlockhash=Fr.toBase58()),t.feePayer||(t.feePayer=Uo.generate().publicKey)),e.push(Vr(t))}),console.log("simulate tx string:",e),e}var hn=2e3,In=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var n;let e=(await Er.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(n=e==null?void 0:e[15])!=null?n:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:n}=kn(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(_r.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Ft(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push($.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:o=[],endInstructionTypes:i=[],lookupTableAddress:r=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...o),this.endInstructionTypes.push(...i),this.lookupTableAddress.push(...r.filter(a=>a!==Ft.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(q(F({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new Jt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var u;let{recentBlockHash:i,skipPreflight:r=!0,sendAndConfirm:a,notSendToRpc:s}=o||{},c=i!=null?i:await Mt(this.connection,this.blockhashCommitment);if(t.recentBlockhash=c,this.signers.length&&t.sign(...this.signers),ht([t]),(u=this.owner)!=null&&u.isKeyPair)return{txId:a?await ro(this.connection,t,this.signers.find(g=>g.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:r}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:r}),signedTx:t};if(this.signAllTransactions){let d=await this.signAllTransactions([t]);if(this.signers.length)for(let g of d)try{g.sign(...this.signers)}catch{}return{txId:s?"":await this.connection.sendRawTransaction(d[0].serialize(),{skipPreflight:r}),signedTx:d[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var c;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:o}=this.build(n),i=t.filter(u=>u.transaction.instructions.length>0),r=[o,...i.map(u=>u.transaction)],a=[this.signers,...i.map(u=>u.signers)],s=[...this.instructionTypes,...i.map(u=>u.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(u=>{u.some(d=>d.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:r,signers:a,instructionTypes:s,execute:async u=>{var w;let{sequentially:d,onTxUpdate:g,skipTxCount:m=0,recentBlockHash:p,skipPreflight:f=!0}=u||{},b=p!=null?p:await Mt(this.connection,this.blockhashCommitment);if((w=this.owner)!=null&&w.isKeyPair){if(d){let A=[],T=0;for(let I of r){if(++T,T<=m)continue;let P=await ro(this.connection,I,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f});A.push(P)}return{txIds:A,signedTxs:r}}return{txIds:await await Promise.all(r.map(async A=>(A.recentBlockhash=b,await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:f})))),signedTxs:r}}if(this.signAllTransactions){let A=r.map((I,P)=>(I.recentBlockhash=b,a[P].length&&I.sign(...a[P]),I));ht(A);let T=await this.signAllTransactions(A);if(d){let I=0,P=[],k=async()=>{if(!T[I])return;let B=await this.connection.sendRawTransaction(T[I].serialize(),{skipPreflight:f});P.push({txId:B,status:"sent",signedTx:T[I]}),g==null||g([...P]),I++;let S=!1,x=null,L=null,U=_=>{x!==null&&clearInterval(x),L!==null&&this.connection.removeSignatureListener(L);let v=P.findIndex(V=>V.txId===B);if(v>-1){if(P[v].status==="error"||P[v].status==="success")return;P[v].status=_.err?"error":"success"}g==null||g([...P]),_.err||k()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var _;if(S){clearInterval(x);return}try{let v=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(S=!0,clearInterval(x),U({err:((_=v.meta)==null?void 0:_.err)||null}),console.log("tx status from getTransaction:",B))}catch(v){S=!0,clearInterval(x),console.error("getTransaction timeout:",v,B)}},hn)),L=this.connection.onSignature(B,_=>{if(S){this.connection.removeSignatureListener(L);return}S=!0,U(_)},"confirmed"),this.connection.getSignatureStatus(B)};return await k(),{txIds:P.map(B=>B.txId),signedTxs:T}}else{let I=[];for(let P=0;P<T.length;P+=1){let k=await this.connection.sendRawTransaction(T[P].serialize(),{skipPreflight:f});I.push(k)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:n}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:n||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:n})}async buildV0(e){var f;let p=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:o,recentBlockhash:i}=p,r=tt(p,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=F(F({},this.cluster==="devnet"?await oo(this.connection):await no(this.connection)),t),s=Array.from(new Set([...n,...this.lookupTableAddress])),c=[];for(let b of s)a[b]===void 0&&c.push(new Ft(b));let u=await to({connection:this.connection,address:c});for(let[b,w]of Object.entries(u))a[b]=w;let d=o?Ft.default.toBase58():i!=null?i:await Mt(this.connection,this.blockhashCommitment),g=new en({payerKey:this.feePayer,recentBlockhash:d,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((f=this.owner)==null?void 0:f.signer)&&!this.signers.some(b=>b.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let m=new tn(g);return m.sign(this.signers),{builder:this,transaction:m,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var I;let{skipPreflight:w=!0,sendAndConfirm:A,notSendToRpc:T}=b||{};if(ht([m]),(I=this.owner)!=null&&I.isKeyPair){let P=await this.connection.sendTransaction(m,{skipPreflight:w});return A&&await Tn(this.connection,P),{txId:P,signedTx:m}}if(this.signAllTransactions){let P=await this.signAllTransactions([m]);if(this.signers.length)for(let k of P)try{k.sign(this.signers)}catch{}return{txId:T?"":await this.connection.sendTransaction(P[0],{skipPreflight:w}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async buildV0MultiTx(e){var c;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:o}=await this.buildV0(n),i=t.filter(u=>u.builder.instructions.length>0),r=[o,...i.map(u=>u.transaction)],a=[this.signers,...i.map(u=>u.signers)],s=[...this.instructionTypes,...i.map(u=>u.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(u=>{u.some(d=>d.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),r.forEach(async(u,d)=>{u.sign(a[d])}),{builder:this,transactions:r,signers:a,instructionTypes:s,buildProps:n,execute:async u=>{var f;let{sequentially:d,onTxUpdate:g,recentBlockHash:m,skipPreflight:p=!0}=u||{};if(m&&r.forEach(b=>b.message.recentBlockhash=m),ht(r),(f=this.owner)!=null&&f.isKeyPair){if(d){let b=[];for(let w of r){let A=await this.connection.sendTransaction(w,{skipPreflight:p});await Tn(this.connection,A),b.push(A)}return{txIds:b,signedTxs:r}}return{txIds:await Promise.all(r.map(async b=>await this.connection.sendTransaction(b,{skipPreflight:p}))),signedTxs:r}}if(this.signAllTransactions){let b=await this.signAllTransactions(r);if(d){let w=0,A=[],T=async()=>{if(!b[w])return;let I=await this.connection.sendTransaction(b[w],{skipPreflight:p});A.push({txId:I,status:"sent",signedTx:b[w]}),g==null||g([...A]),w++;let P=!1,k=null,B=null,S=x=>{k!==null&&clearInterval(k),B!==null&&this.connection.removeSignatureListener(B);let L=A.findIndex(U=>U.txId===I);if(L>-1){if(A[L].status==="error"||A[L].status==="success")return;A[L].status=x.err?"error":"success"}g==null||g([...A]),x.err||T()};this.loopMultiTxStatus&&(k=setInterval(async()=>{var x;if(P){clearInterval(k);return}try{let L=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});L&&(P=!0,clearInterval(k),S({err:((x=L.meta)==null?void 0:x.err)||null}),console.log("tx status from getTransaction:",I))}catch(L){P=!0,clearInterval(k),console.error("getTransaction timeout:",L,I)}},hn)),B=this.connection.onSignature(I,x=>{if(P){this.connection.removeSignatureListener(B);return}P=!0,S(x)},"confirmed"),this.connection.getSignatureStatus(I)};return T(),{txIds:[],signedTxs:b}}else{let w=[];for(let A=0;A<b.length;A+=1){let T=await this.connection.sendTransaction(b[A],{skipPreflight:p});w.push(T)}return{txIds:w,signedTxs:b}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var g;let d=e||{},{splitIns:t=[],computeBudgetConfig:n}=d,o=tt(d,["splitIns","computeBudgetConfig"]),i=n?kn(n):{instructions:[],instructionTypes:[]},r=this.signers.reduce((m,p)=>q(F({},m),{[p.publicKey.toBase58()]:p}),{}),a=[],s=[],c=[],u=0;if(this.allInstructions.forEach(m=>{let p=[...c,m],f=n?[...i.instructions,...p]:p,w=[...new Set(p.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>new Ft(A));if(m!==t[u]&&c.length<12&&(jt({instructions:f,payer:this.feePayer,signers:w})||jt({instructions:p,payer:this.feePayer,signers:w})))c.push(m);else{if(c.length===0)throw Error("item ins too big");u+=m===t[u]?1:0,jt({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:w})?a.push(new Jt().add(...i.instructions,...c)):a.push(new Jt().add(...c)),s.push(Array.from(new Set(c.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat())).map(A=>r[A]).filter(A=>A!==void 0)),c=[m]}}),c.length>0){let p=[...new Set(c.map(f=>f.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(f=>r[f]).filter(f=>f!==void 0);jt({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:p.map(f=>f.publicKey)})?a.push(new Jt().add(...i.instructions,...c)):a.push(new Jt().add(...c)),s.push(p)}return a.forEach(m=>m.feePayer=this.feePayer),(g=this.owner)!=null&&g.signer&&s.forEach(m=>{m.some(p=>p.publicKey.equals(this.owner.publicKey))||m.push(this.owner.signer)}),{builder:this,transactions:a,signers:s,instructionTypes:this.instructionTypes,execute:async m=>{var I;let{sequentially:p,onTxUpdate:f,skipTxCount:b=0,recentBlockHash:w,skipPreflight:A=!0}=m||{},T=w!=null?w:await Mt(this.connection,this.blockhashCommitment);if(a.forEach(async(P,k)=>{P.recentBlockhash=T,s[k].length&&P.sign(...s[k])}),ht(a),(I=this.owner)!=null&&I.isKeyPair){if(p){let P=0,k=[];for(let B of a){if(++P,P<=b){k.push("tx skipped");continue}let S=await ro(this.connection,B,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});k.push(S)}return{txIds:k,signedTxs:a}}return{txIds:await Promise.all(a.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:A}))),signedTxs:a}}if(this.signAllTransactions){let P=await this.signAllTransactions(a.slice(b,a.length)),k=[...a.slice(0,b),...P];if(p){let B=0,S=[],x=async()=>{if(!k[B])return;B<b&&(S.push({txId:"",status:"success",signedTx:k[B]}),f==null||f([...S]),B++,x());let L=await this.connection.sendRawTransaction(k[B].serialize(),{skipPreflight:A});S.push({txId:L,status:"sent",signedTx:k[B]}),f==null||f([...S]),B++;let U=!1,_=null,v=null,V=E=>{_!==null&&clearInterval(_),v!==null&&this.connection.removeSignatureListener(v);let H=S.findIndex(ce=>ce.txId===L);if(H>-1){if(S[H].status==="error"||S[H].status==="success")return;S[H].status=E.err?"error":"success"}f==null||f([...S]),E.err||x()};this.loopMultiTxStatus&&(_=setInterval(async()=>{var E;if(U){clearInterval(_);return}try{let H=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});H&&(U=!0,clearInterval(_),V({err:((E=H.meta)==null?void 0:E.err)||null}),console.log("tx status from getTransaction:",L))}catch(H){U=!0,clearInterval(_),console.error("getTransaction timeout:",H,L)}},hn)),v=this.connection.onSignature(L,E=>{if(U){this.connection.removeSignatureListener(v);return}U=!0,V(E)},"confirmed"),this.connection.getSignatureStatus(L)};return await x(),{txIds:S.map(L=>L.txId),signedTxs:k}}else{let B=[];for(let S=0;S<k.length;S+=1){let x=await this.connection.sendRawTransaction(k[S].serialize(),{skipPreflight:A});B.push(x)}return{txIds:B,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var I;let T=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:i=[],insCountLimit:r=12}=T,a=tt(T,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),s=F(F({},this.cluster==="devnet"?await oo(this.connection):await no(this.connection)),o),c=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let P of c)s[P]===void 0&&u.push(new Ft(P));let d=await to({connection:this.connection,address:u});for(let[P,k]of Object.entries(d))s[P]=k;let g=t?kn(t):{instructions:[],instructionTypes:[]},m=await Mt(this.connection,this.blockhashCommitment),p=this.signers.reduce((P,k)=>q(F({},P),{[k.publicKey.toBase58()]:k}),{}),f=[],b=[],w=[],A=0;if(this.allInstructions.forEach(P=>{let k=[...w,P],B=t?[...g.instructions,...k]:k;if(P!==n[A]&&w.length<r&&($t({instructions:B,payer:this.feePayer,lookupTableAddressAccount:s})||$t({instructions:k,payer:this.feePayer,lookupTableAddressAccount:s})))w.push(P);else{if(w.length===0)throw Error("item ins too big");A+=P===n[A]?1:0;let S={};for(let x of[...new Set(c)])s[x]!==void 0&&(S[x]=s[x]);if(t&&$t({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let x=new en({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));f.push(new tn(x))}else{let x=new en({payerKey:this.feePayer,recentBlockhash:m,instructions:[...w]}).compileToV0Message(Object.values(s));f.push(new tn(x))}b.push(Array.from(new Set(w.map(x=>x.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat())).map(x=>p[x]).filter(x=>x!==void 0)),w=[P]}}),w.length>0){let k=[...new Set(w.map(B=>B.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(B=>p[B]).filter(B=>B!==void 0);if(t&&$t({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let B=new en({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));f.push(new tn(B))}else{let B=new en({payerKey:this.feePayer,recentBlockhash:m,instructions:[...w]}).compileToV0Message(Object.values(s));f.push(new tn(B))}b.push(k)}return(I=this.owner)!=null&&I.signer&&b.forEach(P=>{P.some(k=>k.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),f.forEach((P,k)=>{P.sign(b[k])}),{builder:this,transactions:f,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async P=>{var U;let{sequentially:k,onTxUpdate:B,skipTxCount:S=0,recentBlockHash:x,skipPreflight:L=!0}=P||{};if(f.map(async(_,v)=>{b[v].length&&_.sign(b[v]),x&&(_.message.recentBlockhash=x)}),ht(f),(U=this.owner)!=null&&U.isKeyPair){if(k){let _=0,v=[];for(let V of f){if(++_,_<=S){console.log("skip tx: ",_),v.push("tx skipped");continue}let E=await this.connection.sendTransaction(V,{skipPreflight:L});await Tn(this.connection,E),v.push(E)}return{txIds:v,signedTxs:f}}return{txIds:await Promise.all(f.map(async _=>await this.connection.sendTransaction(_,{skipPreflight:L}))),signedTxs:f}}if(this.signAllTransactions){let _=await this.signAllTransactions(f.slice(S,f.length)),v=[...f.slice(0,S),..._];if(k){let V=0,E=[],H=async()=>{if(!v[V])return;if(V<S){E.push({txId:"",status:"success",signedTx:v[V]}),B==null||B([...E]),V++,H();return}let ce=await this.connection.sendTransaction(v[V],{skipPreflight:L});E.push({txId:ce,status:"sent",signedTx:v[V]}),B==null||B([...E]),V++;let se=!1,de=null,bt=null,Fe=Ne=>{de!==null&&clearInterval(de),bt!==null&&this.connection.removeSignatureListener(bt);let Ie=E.findIndex(Un=>Un.txId===ce);if(Ie>-1){if(E[Ie].status==="error"||E[Ie].status==="success")return;E[Ie].status=Ne.err?"error":"success"}B==null||B([...E]),Ne.err||H()};this.loopMultiTxStatus&&(de=setInterval(async()=>{var Ne;if(se){clearInterval(de);return}try{let Ie=await this.connection.getTransaction(ce,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ie&&(se=!0,clearInterval(de),Fe({err:((Ne=Ie.meta)==null?void 0:Ne.err)||null}),console.log("tx status from getTransaction:",ce))}catch(Ie){se=!0,clearInterval(de),console.error("getTransaction timeout:",Ie,ce)}},hn)),bt=this.connection.onSignature(ce,Ne=>{if(se){this.connection.removeSignatureListener(bt);return}se=!0,Fe(Ne)},"confirmed"),this.connection.getSignatureStatus(ce)};return H(),{txIds:[],signedTxs:v}}else{let V=[];for(let E=0;E<v.length;E+=1){let H=await this.connection.sendTransaction(v[E],{skipPreflight:L});V.push(H)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};var ao=(...y)=>y.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Ve=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=ee(t)}createTxBuilder(e){return this.scope.checkOwner(),new In({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(ao(e))}logInfo(...e){this.logger.info(ao(e))}logAndCreateError(...e){let t=ao(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Fm,SystemProgram as Vm}from"@solana/web3.js";import Dm from"bn.js";import{createCloseAccountInstruction as Gm,createInitializeAccountInstruction as zm,createTransferInstruction as Xm,TOKEN_PROGRAM_ID as Ym}from"@solana/spl-token";import{Keypair as Tm,PublicKey as hm}from"@solana/web3.js";import Sm from"bn.js";import{TOKEN_PROGRAM_ID as Cm}from"@solana/spl-token";import{PublicKey as jr}from"@solana/web3.js";import jo,{isBN as $o}from"bn.js";import{bits as Dr,BitStructure as xl,blob as Wr,Blob as Kl,cstr as Cl,f32 as Rl,f32be as Ll,f64 as Ol,f64be as Nl,greedy as Ml,Layout as qr,ns64 as Fl,ns64be as vl,nu64 as Vl,nu64be as _l,offset as Ur,s16 as El,s16be as Dl,s24 as Wl,s24be as ql,s32 as Gr,s32be as Ul,s40 as Gl,s40be as zl,s48 as Xl,s48be as Yl,s8 as Ql,seq as zr,struct as Zl,Structure as Xr,u16 as Yr,u16be as Hl,u24 as jl,u24be as $l,u32 as Qr,u32be as Jl,u40 as em,u40be as tm,u48 as nm,u48be as om,u8 as Zr,UInt as Hr,union as im,Union as rm,unionLayoutDiscriminator as am,utf8 as sm}from"@solana/buffer-layout";var Bn=qr,Yo=Xr;var so=Hr;var Qo=Zr,ke=Yr;var Sn=Qr;var Te=Gr;var Zo=zr;var J=Wr;var uo=Dr,Ho=Ur;var Bt=class extends Bn{constructor(t,n,o){super(t,o);this.blob=J(t),this.signed=n}decode(t,n=0){let o=new jo(this.blob.decode(t,n),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,n,o=0){return typeof t=="number"&&(t=new jo(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},xn=class extends Bn{constructor(t){super(8,t);this._lower=uo(Sn(),!1),this._upper=uo(Sn(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let o=this._lower.decode(t,n),i=this._upper.decode(t,n+this._lower.span);return F(F({},o),i)}encode(t,n,o=0){return this._lower.encode(t,n,o)+this._upper.encode(t,n,o+this._lower.span)}};function N(y){return new so(1,y)}function fe(y){return new so(4,y)}function l(y){return new Bt(8,!1,y)}function z(y){return new Bt(16,!1,y)}function Jo(y){return new Bt(1,!0,y)}function vt(y){return new Bt(8,!0,y)}function ei(y){return new Bt(16,!0,y)}var nn=class extends Bn{constructor(t,n,o,i){super(t.span,i);this.layout=t,this.decoder=n,this.encoder=o}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,o){return this.layout.encode(this.encoder(t),n,o)}getSpan(t,n){return this.layout.getSpan(t,n)}};function h(y){return new nn(J(32),e=>new jr(e),e=>e.toBuffer(),y)}function ye(y){return new nn(Qo(),$r,Jr,y)}function $r(y){if(y===0)return!1;if(y===1)return!0;throw new Error("Invalid bool: "+y)}function Jr(y){return y?1:0}function ti(y,e){let t=Sn("length"),n=O([t,D(y,Ho(t,-t.span),"values")]);return new nn(n,({values:o})=>o,o=>({values:o}),e)}var co=class extends Yo{decode(e,t){return super.decode(e,t)}};function O(y,e,t){return new co(y,e,t)}function D(y,e,t){let n,o=typeof e=="number"?e:$o(e)?e.toNumber():new Proxy(e,{get(i,r){if(!n){let a=Reflect.get(i,"count");n=$o(a)?a.toNumber():a,Reflect.set(i,"count",n)}return Reflect.get(i,r)},set(i,r,a){return r==="count"&&(n=a),Reflect.set(i,r,a)}});return Zo(y,o,t)}var Vt=O([h("mint"),h("owner"),l("amount"),fe("delegateOption"),h("delegate"),N("state"),fe("isNativeOption"),l("isNative"),l("delegatedAmount"),fe("closeAuthorityOption"),h("closeAuthority")]);import{PublicKey as ng,SystemProgram as og}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as rg}from"@solana/spl-token";import{PublicKey as ta}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as na}from"@solana/spl-token";function Z(y,e,t){return ae([y.toBuffer(),(t!=null?t:na).toBuffer(),e.toBuffer()],new ta("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as X}from"@solana/web3.js";var oi=new X("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),ii=new X("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),ri=new X("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),lo=new X("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Id=new X("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),oa=new X("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ai=new X("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),si=new X("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Bd=new X("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ia=new X("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),At=new X("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),on=new X("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Cn=new X("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ui=new X("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Sd=new X("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ra=new X("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),mo=new X("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),aa=new X("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),xd=new X("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),sa=new X("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ua=new X("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ca=new X("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Kd=new X("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Cd=new X("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Rd=new X("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Ld=new X("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Od=new X("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var wt={OPEN_BOOK_PROGRAM:new X("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new X("Ray1111111111111111111111111111111111111111"),AMM_V4:new X("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new X("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new X("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new X("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new X("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new X("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new X("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new X("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new X("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new X("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:X.default,Router:new X("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new X("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new X("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new X("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new X("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new X("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new X("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new X("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new X("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new X("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new X("Ray1111111111111111111111111111111111111111")};import yg from"decimal.js";import ne from"bn.js";var ue=new ne(1).shln(64),_t=64,la=new ne(1).shln(128),lt=new ne(1).shln(64).subn(1),ma=new ne(1).shln(128).subn(1),Qe=-443636,Ze=443636,He=new ne("4295048016"),je=new ne("79226673521066979257578248091"),ci=new ne("59543866431248"),li=new ne("184467440737095516"),mi=new ne("15793534762490258745"),di=16,Rn=512,De=60,Dd=new ne("18446743708227953217"),pi=[{bit:0,factor:new ne("fffcb933bd6fb800",16)},{bit:1,factor:new ne("fff97272373d4000",16)},{bit:2,factor:new ne("fff2e50f5f657000",16)},{bit:3,factor:new ne("ffe5caca7e10f000",16)},{bit:4,factor:new ne("ffcb9843d60f7000",16)},{bit:5,factor:new ne("ff973b41fa98e800",16)},{bit:6,factor:new ne("ff2ea16466c9b000",16)},{bit:7,factor:new ne("fe5dee046a9a3800",16)},{bit:8,factor:new ne("fcbe86c7900bb000",16)},{bit:9,factor:new ne("f987a7253ac65800",16)},{bit:10,factor:new ne("f3392b0822bb6000",16)},{bit:11,factor:new ne("e7159475a2caf000",16)},{bit:12,factor:new ne("d097f3bdfd2f2000",16)},{bit:13,factor:new ne("a9f746462d9f8000",16)},{bit:14,factor:new ne("70d869a156f31c00",16)},{bit:15,factor:new ne("31be135f97ed3200",16)},{bit:16,factor:new ne("9aa508b5b85a500",16)},{bit:17,factor:new ne("5d6af8dedc582c",16)},{bit:18,factor:new ne("2216e584f5fa",16)}],mt=1e6;var Ln=1e5,rn=1e4,fi=1e4,yi=1e5;var an=3,bi=100;var gi=10,Pi=100,Et=14;var W=new ne(0),$e=new ne(1),Wd=new ne(-1),On={tvl:0,volumeQuote:0,mintAmountA:0,mintAmountB:0,rewardDefaultInfos:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,day:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},week:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},month:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},pooltype:[]};var qd=new ne("18446744073700000000");var po=O([J(8),N("bump"),ke("index"),h("owner"),fe("protocolFeeRate"),fe("tradeFeeRate"),ke("tickSpacing"),fe("fundFeeRate"),D(fe(),1),h("fundOwner"),D(l(),3)]),da=O([fe("blockTimestamp"),vt("tickCumulative"),D(l(),4)]),Ai=O([J(8),ye("initialized"),l("recentEpoch"),ke("observationIndex"),h("poolId"),D(da,bi,"observations"),D(l(),4)]),pa=O([ke("filterPeriod"),ke("decayPeriod"),ke("reductionFactor"),fe("dynamicFeeControl"),fe("maxVolatilityAccumulator"),Te("tickSpacingIndexReference"),fe("volatilityReference"),fe("volatilityAccumulator"),l("lastUpdateTimestamp"),D(N(),46)]),fa=O([N("state"),l("openTime"),l("endTime"),l("lastUpdateTime"),z("emissionsPerSecondX64"),l("totalEmissioned"),l("claimed"),h("mint"),h("vault"),h("creator"),z("growthGlobalX64")]),sn=O([J(8),N("bump"),h("configId"),h("creator"),h("mintA"),h("mintB"),h("vaultA"),h("vaultB"),h("observationId"),N("mintDecimalsA"),N("mintDecimalsB"),ke("tickSpacing"),z("liquidity"),z("sqrtPriceX64"),Te("tickCurrent"),fe(),z("feeGrowthGlobalX64A"),z("feeGrowthGlobalX64B"),l("protocolFeesTokenA"),l("protocolFeesTokenB"),D(z(),4),N("status"),N("feeOn"),J(6),D(fa,an,"rewardInfos"),J(8*16,"tickArrayBitmap"),D(l(),4),l("fundFeesTokenA"),l("fundFeesTokenB"),l("startTime"),l("recentEpoch"),pa.replicate("dynamicFeeInfo"),D(l(),46)]),ya=O([z("growthInsideLastX64"),l("rewardAmountOwed")]),Nn=O([J(8),N("bump"),h("nftMint"),h("poolId"),Te("tickLower"),Te("tickUpper"),z("liquidity"),z("feeGrowthInsideLastX64A"),z("feeGrowthInsideLastX64B"),l("tokenFeesOwedA"),l("tokenFeesOwedB"),D(ya,an,"rewardInfos"),l("recentEpoch"),D(l(),7)]),Xd=O([J(8),N("bump"),h("poolId"),Te("tickLower"),Te("tickUpper"),z("liquidity"),z("feeGrowthInsideLastX64A"),z("feeGrowthInsideLastX64B"),l("tokenFeesOwedA"),l("tokenFeesOwedB"),D(z(),an,"rewardGrowthInside"),l("recentEpoch"),D(l(),7)]),ba=O([Te("tick"),ei("liquidityNet"),z("liquidityGross"),z("feeGrowthOutsideX64A"),z("feeGrowthOutsideX64B"),D(z(),an,"rewardGrowthsOutsideX64"),l("orderPhase"),l("ordersAmount"),l("partFilledOrdersRemaining"),z("unfilledRatioX64"),D(fe(),3)]),Dt=O([J(8),h("poolId"),Te("startTickIndex"),D(ba,De,"ticks"),N("initializedTickCount"),l("recentEpoch"),D(N(),107)]),wi=O([J(8),N("bump"),D(h(),gi,"operationOwners"),D(h(),Pi,"whitelistMints")]),St=O([J(8),h("po