UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 201 kB
var rr=Object.defineProperty,ar=Object.defineProperties;var sr=Object.getOwnPropertyDescriptors;var yn=Object.getOwnPropertySymbols;var xo=Object.prototype.hasOwnProperty,Ko=Object.prototype.propertyIsEnumerable;var So=(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={}))xo.call(e,t)&&So(y,t,e[t]);if(yn)for(var t of yn(e))Ko.call(e,t)&&So(y,t,e[t]);return y},q=(y,e)=>ar(y,sr(e));var et=(y,e)=>{var t={};for(var n in y)xo.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&&Ko.call(y,n)&&(t[n]=y[n]);return t};import{PublicKey as Lo}from"@solana/web3.js";import{get as Co,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}},Ro={},cr={};function ee(y){let e=Co(Ro,y);if(!e){let t=Co(cr,y);e=new Gn({name:y,logLevel:t}),ur(Ro,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=Yn(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}}),l=Yn(s,10);a=(await(await Promise.all(l.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 Lo(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 _e(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 Qt({connection:y,mints:e,config:t}){var i,r,a;if(e.length===0)return{};let n=await _e(y,e.map(s=>({pubkey:it(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 l=pr(s.pubkey,s.accountInfo,(i=s.accountInfo)==null?void 0:i.owner);o[s.pubkey.toString()]=q(F({},l),{programId:((r=s.accountInfo)==null?void 0:r.owner)||mr,feeConfig:(a=dr(l))!=null?a:void 0})}return o[Lo.default.toBase58()]=o[X.toBase58()],o}import Ct from"bn.js";import XC from"decimal.js";import kr from"big.js";import Pn from"bn.js";import fr from"toformat";var yr=fr,Zt=yr;import gn from"big.js";import gr from"bn.js";import Pr from"decimal.js-light";import Ht from"bn.js";var Oo=9007199254740991;function Te(y){let e=ee("Raydium_parseBigNumberish");if(y instanceof Ht)return y;if(typeof y=="string"){if(y.match(/^-?[0-9]+$/))return new Ht(y);e.logWithError(`invalid BigNumberish string: ${y}`)}return typeof y=="number"?(y%1&&e.logWithError(`BigNumberish number underflow: ${y}`),(y>=Oo||y<=-Oo)&&e.logWithError(`BigNumberish number overflow: ${y}`),new Ht(String(y))):typeof y=="bigint"?new Ht(y.toString()):(e.error(`invalid BigNumberish value: ${y}`),new Ht(0))}var bn=ee("module/fraction"),Xn=Zt(gn),jt=Zt(Pr),Ar={[0]:jt.ROUND_DOWN,[1]:jt.ROUND_HALF_UP,[2]:jt.ROUND_UP},wr={[0]:gn.roundDown,[1]:gn.roundHalfUp,[2]:gn.roundUp},ie=class{constructor(e,t=new gr(1)){this.numerator=Te(e),this.denominator=Te(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(Te(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(Te(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(Te(e));return new ie(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof ie?e:new ie(Te(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.`),jt.set({precision:e+1,rounding:Ar[n]});let o=new jt(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.`),Xn.DP=e,Xn.RM=wr[n]||1,new Xn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Tr=ee("Raydium_amount"),No=Zt(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 he=class extends ie{constructor(t,n,o=!0,i){let r=new Pn(0),a=Qn.pow(new Pn(t.decimals));if(o)r=Te(n);else{let s=new Pn(0),l=new Pn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[u,d]=hr(n.toString(),t.decimals);s=Te(u),l=Te(d)}s=s.mul(a),r=s.add(l)}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 he(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new he(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 No.DP=this.token.decimals,new No(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Ir}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Mo}from"@solana/spl-token";var An={chainId:101,address:Ir.default.toBase58(),programId:Mo.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},rt={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Mo.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 le,SystemProgram as Fo,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:Fo.programId,isWritable:!1}),Rt({pubkey:Br,isWritable:!1})];function Zn({publicKey:y,transformSol:e}){let t=vo(y.toString());if(t instanceof le)return e&&t.equals(Tt)?X:t;if(e&&t.toString()===Tt.toBase58())return X;if(typeof t=="string"){if(t===le.default.toBase58())return le.default;try{return new le(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function vo(y){try{return new le(y)}catch{return y}}var pt=new le("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ye=new le("SysvarRent111111111111111111111111111111111"),Kr=new le("SysvarC1ock11111111111111111111111111111111"),ft=new le("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Cr=new le("Sysvar1nstructions1111111111111111111111111"),Vo=Fo.programId,Wu=new le("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),qu=new le("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Uu=new le("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Gu=new le("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),zu=new le("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Yu=new le("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Xu=new le("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Qu=new le("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Zu=new le("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Hu=new le("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ju=new le("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),X=new le("So11111111111111111111111111111111111111112"),Tt=le.default;function it(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=rt.decimals,this.symbol=rt.symbol,this.name=rt.name,this.mint=new Hn(rt.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)}},xe=jn;xe.WSOL=new jn(q(F({},rt),{mint:rt.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 _o=new ie(new Rr(100)),at=class extends ie{toSignificant(e=5,t,n){return this.mul(_o).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(_o).toFixed(e,t,n)}};var Lr=ee("Raydium_price"),Xe=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 Xe({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 Xe({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 XK}from"lodash";import kc from"axios";var Eo={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_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",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({},Eo),{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 Gc=ee("Raydium_Api");import{PublicKey as ud,SystemProgram as cd}from"@solana/web3.js";import{AccountLayout as fd,createAssociatedTokenAccountIdempotentInstruction as yd,TOKEN_PROGRAM_ID as bd,TOKEN_2022_PROGRAM_ID as gd}from"@solana/spl-token";import{PublicKey as Ft,sendAndConfirmTransaction as ro,SystemProgram as _r,Transaction as en,TransactionMessage as tn,VersionedTransaction as nn}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 J={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 Do,Keypair as qo,PublicKey as Nr,Transaction as Uo,TransactionMessage as Mr,VersionedTransaction as Go}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fr}from"@solana/spl-token";var Wo=ee("Raydium_txUtil"),zo=1644;function kn(y){let e=[],t=[];return y.microLamports&&(e.push(Do.setComputeUnitPrice({microLamports:y.microLamports})),t.push(J.SetComputeUnitPrice)),y.units&&(e.push(Do.setComputeUnitLimit({units:y.units})),t.push(J.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&&Wo.logWithError(`no instructions provided: ${y.toString()}`),e.length<1&&Wo.logWithError(`no signers provided:, ${e.toString()}`);let t=new Uo;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...y);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<zo}catch{return!1}}function se(y,e){let[t,n]=Nr.findProgramAddressSync(y,e);return{publicKey:t,nonce:n}}function $t({instructions:y,payer:e,signers:t}){return io(y,[e,...t])}function Jt({instructions:y,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=qo.generate().publicKey.toString()}){let i=new Mr({payerKey:e,recentBlockhash:n,instructions:y}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Go(i).serialize()).toString("base64").length<zo}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 Go&&(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 Uo&&(t.recentBlockhash||(t.recentBlockhash=Fr.toBase58()),t.feePayer||(t.feePayer=qo.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(J.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 en;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||{},l=i!=null?i:await Mt(this.connection,this.blockhashCommitment);if(t.recentBlockhash=l,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 l;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(l=this.owner)!=null&&l.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=[],k=0;for(let I of r){if(++k,k<=m)continue;let P=await ro(this.connection,I,this.signers.find(T=>T.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 k=await this.signAllTransactions(A);if(d){let I=0,P=[],T=async()=>{if(!k[I])return;let B=await this.connection.sendRawTransaction(k[I].serialize(),{skipPreflight:f});P.push({txId:B,status:"sent",signedTx:k[I]}),g==null||g([...P]),I++;let S=!1,C=null,N=null,G=E=>{C!==null&&clearInterval(C),N!==null&&this.connection.removeSignatureListener(N);let v=P.findIndex(V=>V.txId===B);if(v>-1){if(P[v].status==="error"||P[v].status==="success")return;P[v].status=E.err?"error":"success"}g==null||g([...P]),E.err||T()};this.loopMultiTxStatus&&(C=setInterval(async()=>{var E;if(S){clearInterval(C);return}try{let v=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(S=!0,clearInterval(C),G({err:((E=v.meta)==null?void 0:E.err)||null}),console.log("tx status from getTransaction:",B))}catch(v){S=!0,clearInterval(C),console.error("getTransaction timeout:",v,B)}},hn)),N=this.connection.onSignature(B,E=>{if(S){this.connection.removeSignatureListener(N);return}S=!0,G(E)},"confirmed"),this.connection.getSignatureStatus(B)};return await T(),{txIds:P.map(B=>B.txId),signedTxs:k}}else{let I=[];for(let P=0;P<k.length;P+=1){let T=await this.connection.sendRawTransaction(k[P].serialize(),{skipPreflight:f});I.push(T)}return{txIds:I,signedTxs:k}}}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=et(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])),l=[];for(let b of s)a[b]===void 0&&l.push(new Ft(b));let u=await to({connection:this.connection,address:l});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 tn({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 nn(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:k}=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 T of P)try{T.sign(this.signers)}catch{}return{txId:k?"":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 l;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(l=this.owner)!=null&&l.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=[],k=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,T=null,B=null,S=C=>{T!==null&&clearInterval(T),B!==null&&this.connection.removeSignatureListener(B);let N=A.findIndex(G=>G.txId===I);if(N>-1){if(A[N].status==="error"||A[N].status==="success")return;A[N].status=C.err?"error":"success"}g==null||g([...A]),C.err||k()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var C;if(P){clearInterval(T);return}try{let N=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});N&&(P=!0,clearInterval(T),S({err:((C=N.meta)==null?void 0:C.err)||null}),console.log("tx status from getTransaction:",I))}catch(N){P=!0,clearInterval(T),console.error("getTransaction timeout:",N,I)}},hn)),B=this.connection.onSignature(I,C=>{if(P){this.connection.removeSignatureListener(B);return}P=!0,S(C)},"confirmed"),this.connection.getSignatureStatus(I)};return k(),{txIds:[],signedTxs:b}}else{let w=[];for(let A=0;A<b.length;A+=1){let k=await this.connection.sendTransaction(b[A],{skipPreflight:p});w.push(k)}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=et(d,["splitIns","computeBudgetConfig"]),i=n?kn(n):{instructions:[],instructionTypes:[]},r=this.signers.reduce((m,p)=>q(F({},m),{[p.publicKey.toBase58()]:p}),{}),a=[],s=[],l=[],u=0;if(this.allInstructions.forEach(m=>{let p=[...l,m],f=n?[...i.instructions,...p]:p,w=[...new Set(p.map(A=>A.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(A=>new Ft(A));if(m!==t[u]&&l.length<12&&($t({instructions:f,payer:this.feePayer,signers:w})||$t({instructions:p,payer:this.feePayer,signers:w})))l.push(m);else{if(l.length===0)throw Error("item ins too big");u+=m===t[u]?1:0,$t({instructions:n?[...i.instructions,...l]:[...l],payer:this.feePayer,signers:w})?a.push(new en().add(...i.instructions,...l)):a.push(new en().add(...l)),s.push(Array.from(new Set(l.map(A=>A.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat())).map(A=>r[A]).filter(A=>A!==void 0)),l=[m]}}),l.length>0){let p=[...new Set(l.map(f=>f.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(f=>r[f]).filter(f=>f!==void 0);$t({instructions:n?[...i.instructions,...l]:[...l],payer:this.feePayer,signers:p.map(f=>f.publicKey)})?a.push(new en().add(...i.instructions,...l)):a.push(new en().add(...l)),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||{},k=w!=null?w:await Mt(this.connection,this.blockhashCommitment);if(a.forEach(async(P,T)=>{P.recentBlockhash=k,s[T].length&&P.sign(...s[T])}),ht(a),(I=this.owner)!=null&&I.isKeyPair){if(p){let P=0,T=[];for(let B of a){if(++P,P<=b){T.push("tx skipped");continue}let S=await ro(this.connection,B,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});T.push(S)}return{txIds:T,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)),T=[...a.slice(0,b),...P];if(p){let B=0,S=[],C=async()=>{if(!T[B])return;B<b&&(S.push({txId:"",status:"success",signedTx:T[B]}),f==null||f([...S]),B++,C());let N=await this.connection.sendRawTransaction(T[B].serialize(),{skipPreflight:A});S.push({txId:N,status:"sent",signedTx:T[B]}),f==null||f([...S]),B++;let G=!1,E=null,v=null,V=D=>{E!==null&&clearInterval(E),v!==null&&this.connection.removeSignatureListener(v);let H=S.findIndex(pe=>pe.txId===N);if(H>-1){if(S[H].status==="error"||S[H].status==="success")return;S[H].status=D.err?"error":"success"}f==null||f([...S]),D.err||C()};this.loopMultiTxStatus&&(E=setInterval(async()=>{var D;if(G){clearInterval(E);return}try{let H=await this.connection.getTransaction(N,{commitment:"confirmed",maxSupportedTransactionVersion:0});H&&(G=!0,clearInterval(E),V({err:((D=H.meta)==null?void 0:D.err)||null}),console.log("tx status from getTransaction:",N))}catch(H){G=!0,clearInterval(E),console.error("getTransaction timeout:",H,N)}},hn)),v=this.connection.onSignature(N,D=>{if(G){this.connection.removeSignatureListener(v);return}G=!0,V(D)},"confirmed"),this.connection.getSignatureStatus(N)};return await C(),{txIds:S.map(N=>N.txId),signedTxs:T}}else{let B=[];for(let S=0;S<T.length;S+=1){let C=await this.connection.sendRawTransaction(T[S].serialize(),{skipPreflight:A});B.push(C)}return{txIds:B,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var I;let k=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:i=[],insCountLimit:r=12}=k,a=et(k,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),s=F(F({},this.cluster==="devnet"?await oo(this.connection):await no(this.connection)),o),l=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let P of l)s[P]===void 0&&u.push(new Ft(P));let d=await to({connection:this.connection,address:u});for(let[P,T]of Object.entries(d))s[P]=T;let g=t?kn(t):{instructions:[],instructionTypes:[]},m=await Mt(this.connection,this.blockhashCommitment),p=this.signers.reduce((P,T)=>q(F({},P),{[T.publicKey.toBase58()]:T}),{}),f=[],b=[],w=[],A=0;if(this.allInstructions.forEach(P=>{let T=[...w,P],B=t?[...g.instructions,...T]:T;if(P!==n[A]&&w.length<r&&(Jt({instructions:B,payer:this.feePayer,lookupTableAddressAccount:s})||Jt({instructions:T,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 C of[...new Set(l)])s[C]!==void 0&&(S[C]=s[C]);if(t&&Jt({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let C=new tn({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));f.push(new nn(C))}else{let C=new tn({payerKey:this.feePayer,recentBlockhash:m,instructions:[...w]}).compileToV0Message(Object.values(s));f.push(new nn(C))}b.push(Array.from(new Set(w.map(C=>C.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat())).map(C=>p[C]).filter(C=>C!==void 0)),w=[P]}}),w.length>0){let T=[...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&&Jt({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let B=new tn({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));f.push(new nn(B))}else{let B=new tn({payerKey:this.feePayer,recentBlockhash:m,instructions:[...w]}).compileToV0Message(Object.values(s));f.push(new nn(B))}b.push(T)}return(I=this.owner)!=null&&I.signer&&b.forEach(P=>{P.some(T=>T.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),f.forEach((P,T)=>{P.sign(b[T])}),{builder:this,transactions:f,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async P=>{var G;let{sequentially:T,onTxUpdate:B,skipTxCount:S=0,recentBlockHash:C,skipPreflight:N=!0}=P||{};if(f.map(async(E,v)=>{b[v].length&&E.sign(b[v]),C&&(E.message.recentBlockhash=C)}),ht(f),(G=this.owner)!=null&&G.isKeyPair){if(T){let E=0,v=[];for(let V of f){if(++E,E<=S){console.log("skip tx: ",E),v.push("tx skipped");continue}let D=await this.connection.sendTransaction(V,{skipPreflight:N});await Tn(this.connection,D),v.push(D)}return{txIds:v,signedTxs:f}}return{txIds:await Promise.all(f.map(async E=>await this.connection.sendTransaction(E,{skipPreflight:N}))),signedTxs:f}}if(this.signAllTransactions){let E=await this.signAllTransactions(f.slice(S,f.length)),v=[...f.slice(0,S),...E];if(T){let V=0,D=[],H=async()=>{if(!v[V])return;if(V<S){D.push({txId:"",status:"success",signedTx:v[V]}),B==null||B([...D]),V++,H();return}let pe=await this.connection.sendTransaction(v[V],{skipPreflight:N});D.push({txId:pe,status:"sent",signedTx:v[V]}),B==null||B([...D]),V++;let fe=!1,Re=null,dt=null,ve=Ne=>{Re!==null&&clearInterval(Re),dt!==null&&this.connection.removeSignatureListener(dt);let ke=D.findIndex(Un=>Un.txId===pe);if(ke>-1){if(D[ke].status==="error"||D[ke].status==="success")return;D[ke].status=Ne.err?"error":"success"}B==null||B([...D]),Ne.err||H()};this.loopMultiTxStatus&&(Re=setInterval(async()=>{var Ne;if(fe){clearInterval(Re);return}try{let ke=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ke&&(fe=!0,clearInterval(Re),ve({err:((Ne=ke.meta)==null?void 0:Ne.err)||null}),console.log("tx status from getTransaction:",pe))}catch(ke){fe=!0,clearInterval(Re),console.error("getTransaction timeout:",ke,pe)}},hn)),dt=this.connection.onSignature(pe,Ne=>{if(fe){this.connection.removeSignatureListener(dt);return}fe=!0,ve(Ne)},"confirmed"),this.connection.getSignatureStatus(pe)};return H(),{txIds:[],signedTxs:v}}else{let V=[];for(let D=0;D<v.length;D+=1){let H=await this.connection.sendTransaction(v[D],{skipPreflight:N});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(", "),Me=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 Em,SystemProgram as Wm}from"@solana/web3.js";import Gm from"bn.js";import{createCloseAccountInstruction as Qm,createInitializeAccountInstruction as Zm,createTransferInstruction as Hm,TOKEN_PROGRAM_ID as jm}from"@solana/spl-token";import{Keypair as Sm,PublicKey as xm}from"@solana/web3.js";import Rm from"bn.js";import{TOKEN_PROGRAM_ID as Nm}from"@solana/spl-token";import{PublicKey as $r}from"@solana/web3.js";import jo,{isBN as $o}from"bn.js";import{bits as Dr,BitStructure as Ol,blob as Wr,Blob as Nl,cstr as Ml,f32 as Fl,f32be as vl,f64 as Vl,f64be as _l,greedy as El,Layout as qr,ns64 as Dl,ns64be as Wl,nu64 as Ur,nu64be as ql,offset as Gr,s16 as Ul,s16be as Gl,s24 as zl,s24be as Yl,s32 as zr,s32be as Xl,s40 as Ql,s40be as Zl,s48 as Hl,s48be as jl,s8 as $l,seq as Yr,struct as Jl,Structure as Xr,u16 as Qr,u16be as em,u24 as tm,u24be as nm,u32 as Zr,u32be as om,u40 as im,u40be as rm,u48 as am,u48be as sm,u8 as Hr,UInt as jr,union as um,Union as cm,unionLayoutDiscriminator as lm,utf8 as mm}from"@solana/buffer-layout";var Bn=qr,Yo=Xr;var so=jr;var Xo=Hr,Ke=Qr;var Sn=Zr;var Qo=Ur;var Ae=zr;var Zo=Yr;var j=Wr;var uo=Dr,Ho=Gr;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 O(y){return new so(1,y)}function me(y){return new so(4,y)}function c(y){return new Bt(8,!1,y)}function Y(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 on=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 on(j(32),e=>new $r(e),e=>e.toBuffer(),y)}function ye(y){return new on(Xo(),Jr,ea,y)}function Jr(y){if(y===0)return!1;if(y===1)return!0;throw new Error("Invalid bool: "+y)}function ea(y){return y?1:0}function ti(y,e){let t=Sn("length"),n=L([t,_(y,Ho(t,-t.span),"values")]);return new on(n,({values:o})=>o,o=>({values:o}),e)}var co=class extends Yo{decode(e,t){return super.decode(e,t)}};function L(y,e,t){return new co(y,e,t)}function _(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=L([h("mint"),h("owner"),c("amount"),me("delegateOption"),h("delegate"),O("state"),me("isNativeOption"),c("isNative"),c("delegatedAmount"),me("closeAuthorityOption"),h("closeAuthority")]);import{PublicKey as ig,SystemProgram as rg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as sg}from"@solana/spl-token";import{PublicKey as na}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as oa}from"@solana/spl-token";function Z(y,e,t){return se([y.toBuffer(),(t!=null?t:oa).toBuffer(),e.toBuffer()],new na("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as z}from"@solana/web3.js";var oi=new z("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),ii=new z("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),ri=new z("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),lo=new z("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Kd=new z("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ia=new z("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ai=new z("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),si=new z("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Cd=new z("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ra=new z("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),yt=new z("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),rn=new z("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Cn=new z("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ui=new z("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Rd=new z("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),aa=new z("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),sa=new z("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ua=new z("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ca=new z("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),la=new z("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),mo=new z("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ma=new z("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ld=new z("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),da=new z("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),pa=new z("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),fa=new z("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Od=new z("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Nd=new z("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Md=new z("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Fd=new z("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vd=new z("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),an={IDO_PROGRAM_ID_V1:sa,IDO_PROGRAM_ID_V2:ua,IDO_PROGRAM_ID_V3:ca,IDO_PROGRAM_ID_V4:la};var bt={OPEN_BOOK_PROGRAM:new z("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new z("Ray1111111111111111111111111111111111111111"),AMM_V4:new z("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new z("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new z("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new z("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new z("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new z("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new z("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new z("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new z("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new z("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:z.default,Router:new z("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new z("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new z("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new z("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new z("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new z("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new z("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new z("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new z("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new z("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new z("Ray1111111111111111111111111111111111111111")};import gg from"decimal.js";import ne from"bn.js";var re=new ne(1).shln(64),_t=64,ya=new ne(1).shln(128),ut=new ne(1).shln(64).subn(1),ba=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,Ee=60,Gd=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)}],ct=1e6;var Ln=1e5,sn=1e4,fi=1e4,yi=1e5;var un=3,bi=100;var gi=10,Pi=100,Et=14;var W=new ne(0),De=new ne(1),zd=new ne(-1),po={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 Yd=new ne("18446744073700000000");var fo=L([j(8),O("bump"),Ke("index"),h("owner"),me("protocolFeeRate"),me("tradeFeeRate"),Ke("tickSpacing"),me("fundFeeRate"),_(me(),1),h("fundOwner"),_(c(),3)]),ga=L([me("blockTimestamp"),vt("tickCumulative"),_(c(),4)]),Ai=L([j(8),ye("initialized"),c("recentEpoch"),Ke("observationIndex"),h("poolId"),_(ga,bi,"observations"),_(c(),4)]),Pa=L([Ke("filterPeriod"),Ke("decayPeriod"),Ke("reductionFactor"),me("dynamicFeeControl"),me("maxVolatilityAccumulator"),Ae("tickSpacingIndexReference"),me("volatilityReference"),me("volatilityAccumulator"),c("lastUpdateTimestamp"),_(O(),46)]),Aa=L([O("state"),c("openTime"),c("endTime"),c("lastUpdateTime"),Y("emissionsPerSecondX64"),c("totalEmissioned"),c("claimed"),h("mint"),h("vault"),h("creator"),Y("growthGlobalX64")]),cn=L([j(8),O("bump"),h("configId"),h("creator"),h("mintA"),h("mintB"),h("vaultA"),h("vaultB"),h("observationId"),O("mintDecimalsA"),O("mintDecimalsB"),Ke("tickSpacing"),Y("liquidity"),Y("sqrtPriceX64"),Ae("tickCurrent"),me(),Y("feeGrowthGlobalX64A"),Y("feeGrowthGlobalX64B"),c("protocolFeesTokenA"),c("protocolFeesTokenB"),_(Y(),4),O("status"),O("feeOn"),j(6),_(Aa,un,"rewardInfos"),j(8*16,"tickArrayBitmap"),_(c(),4),c("fundFeesTokenA"),c("fundFeesTokenB"),c("startTime"),c("recentEpoch"),Pa.replicate("dynamicFeeInfo"),_(c(),46)]),wa=L([Y("growthInsideLastX64"),c("rewardAmountOwed")]),On=L([j(8),O("bump"),h("nftMint"),h("poolId"),Ae("tickLower"),Ae("tickUpper"),Y("liquidity"),Y("feeGrowthInsideLastX64A"),Y("feeGrowthInsideLastX64B"),c("tokenFeesOwedA"),c("tokenFeesOwedB"),_(wa,un,"rewardInfos"),c("recentEpoch"),_(c(),7)]),Hd=L([j(8),O("bump"),h("poolId"),Ae("tickLower"),Ae("tickUpper"),Y("liquidity"),Y("feeGrowthInsideLastX64A"),Y("feeGrowthInsideLastX64B"),c("tokenFeesOwedA"),c("tokenFeesOwedB"),_(Y(),un,"rewardGrowthInside"),c("recentEpoch"),_(c(),7)]),ka=L([Ae("tick"),ei("liquidityNet"),Y("liquidityGross"),Y("feeGrowthOutsi