@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 79.8 kB
JavaScript
var Ro=Object.defineProperty,Lo=Object.defineProperties;var Oo=Object.getOwnPropertyDescriptors;var ut=Object.getOwnPropertySymbols;var bn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable;var yn=(o,e,n)=>e in o?Ro(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,R=(o,e)=>{for(var n in e||(e={}))bn.call(e,n)&&yn(o,n,e[n]);if(ut)for(var n of ut(e))gn.call(e,n)&&yn(o,n,e[n]);return o},V=(o,e)=>Lo(o,Oo(e));var de=(o,e)=>{var n={};for(var i in o)bn.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&ut)for(var i of ut(o))e.indexOf(i)<0&&gn.call(o,i)&&(n[i]=o[i]);return n};import{PublicKey as zo}from"@solana/web3.js";import hn,{isBN as In}from"bn.js";import{bits as No,BitStructure as as,blob as Mo,Blob as ss,cstr as us,f32 as cs,f32be as ls,f64 as ms,f64be as ds,greedy as ps,Layout as Fo,ns64 as fs,ns64be as ys,nu64 as vo,nu64be as bs,offset as _o,s16 as gs,s16be as Ps,s24 as As,s24be as ws,s32 as Vo,s32be as ks,s40 as Ts,s40be as hs,s48 as Is,s48be as Bs,s8 as xs,seq as Eo,struct as Ss,Structure as Do,u16 as Wo,u16be as Ks,u24 as Cs,u24be as Rs,u32 as qo,u32be as Ls,u40 as Os,u40be as Ns,u48 as Ms,u48be as Fs,u8 as Uo,UInt as Go,union as vs,Union as _s,unionLayoutDiscriminator as Vs,utf8 as Es}from"@solana/buffer-layout";var ct=Fo,Pn=Do;var Lt=Go;var An=Uo,H=Wo;var lt=qo;var wn=vo;var se=Vo;var kn=Eo;var M=Mo;var Ot=No,Tn=_o;var ke=class extends ct{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new hn(this.blob.decode(n,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,i,a=0){return typeof n=="number"&&(n=new hn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},mt=class extends ct{constructor(n){super(8,n);this._lower=Ot(lt(),!1),this._upper=Ot(lt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let a=this._lower.decode(n,i),c=this._upper.decode(n,i+this._lower.span);return R(R({},a),c)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function d(o){return new Lt(1,o)}function z(o){return new Lt(4,o)}function t(o){return new ke(8,!1,o)}function O(o){return new ke(16,!1,o)}function Bn(o){return new ke(1,!0,o)}function Ke(o){return new ke(8,!0,o)}function xn(o){return new ke(16,!0,o)}var Xe=class extends ct{constructor(n,i,a,c){super(n.span,c);this.layout=n,this.decoder=i,this.encoder=a}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,a){return this.layout.encode(this.encoder(n),i,a)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new Xe(M(32),e=>new zo(e),e=>e.toBuffer(),o)}function re(o){return new Xe(An(),Xo,Yo,o)}function Xo(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Yo(o){return o?1:0}function Sn(o,e){let n=lt("length"),i=p([n,f(o,Tn(n,-n.span),"values")]);return new Xe(i,({values:a})=>a,a=>({values:a}),e)}var Nt=class extends Pn{decode(e,n){return super.decode(e,n)}};function p(o,e,n){return new Nt(o,e,n)}function f(o,e,n){let i,a=typeof e=="number"?e:In(e)?e.toNumber():new Proxy(e,{get(c,l){if(!i){let m=Reflect.get(c,"count");i=In(m)?m.toNumber():m,Reflect.set(c,"count",i)}return Reflect.get(c,l)},set(c,l,m){return l==="count"&&(i=m),Reflect.set(c,l,m)}});return kn(o,a,n)}var Te=p([r("mint"),r("owner"),t("amount"),z("delegateOption"),r("delegate"),d("state"),z("isNativeOption"),t("isNative"),t("delegatedAmount"),z("closeAuthorityOption"),r("closeAuthority")]);import{Keypair as es,PublicKey as Ko}from"@solana/web3.js";import ts from"bn.js";import{PublicKey as Zo}from"@solana/web3.js";import{get as Kn,set as Qo}from"lodash";var Mt=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 n=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}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}},Cn={},Ho={};function E(o){let e=Kn(Cn,o);if(!e){let n=Kn(Ho,o);e=new Mt({name:o,logLevel:n}),Qo(Cn,o,e)}return e}import{MINT_SIZE as au,TOKEN_PROGRAM_ID as su,getTransferFeeConfig as uu,unpackMint as cu}from"@solana/spl-token";var Ft=E("Raydium_accountInfo_util");async function be(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=R({batchRequest:!1},n),l=vt(e,c),m=new Array(l.length).fill([]);if(i){let y=l.map(g=>{let S=o._buildArgs([g.map(T=>T.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:S}}),P=vt(y,10);m=(await(await Promise.all(P.map(async g=>await o._rpcBatchRequest(g)))).flat()).map(g=>(g.error&&Ft.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.error.message}`),g.result.value.map(S=>{if(S){let{data:T,executable:N,lamports:w,owner:B,rentEpoch:K}=S;return T.length!==2&&T[1]!=="base64"&&Ft.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:N,lamports:w,owner:new Zo(B),rentEpoch:K}}return null})))}else try{m=await Promise.all(l.map(y=>o.getMultipleAccountsInfo(y,a)))}catch(y){y instanceof Error&&Ft.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return m.flat()}import xe from"bn.js";import PR from"decimal.js";import ii from"big.js";import xu from"bn.js";import jo from"toformat";var $o=jo,Qe=$o;import pt from"big.js";import ei from"bn.js";import ti from"decimal.js-light";import He from"bn.js";var Rn=9007199254740991;function J(o){let e=E("Raydium_parseBigNumberish");if(o instanceof He)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new He(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=Rn||o<=-Rn)&&e.logWithError(`BigNumberish number overflow: ${o}`),new He(String(o))):typeof o=="bigint"?new He(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new He(0))}var dt=E("module/fraction"),_t=Qe(pt),Ze=Qe(ti),ni={[0]:Ze.ROUND_DOWN,[1]:Ze.ROUND_HALF_UP,[2]:Ze.ROUND_UP},oi={[0]:pt.roundDown,[1]:pt.roundHalfUp,[2]:pt.roundUp},U=class{constructor(e,n=new ei(1)){this.numerator=J(e),this.denominator=J(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(e){let n=e instanceof U?e:new U(J(e));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof U?e:new U(J(e));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof U?e:new U(J(e));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof U?e:new U(J(e));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||dt.logWithError(`${e} is not an integer.`),e<=0&&dt.logWithError(`${e} is not positive.`),Ze.set({precision:e+1,rounding:ni[i]});let a=new Ze(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return a.toFormat(a.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},i=1){return Number.isInteger(e)||dt.logWithError(`${e} is not an integer.`),e<0&&dt.logWithError(`${e} is negative.`),_t.DP=e,_t.RM=oi[i]||1,new _t(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Fu=E("Raydium_amount"),vu=Qe(ii);import{PublicKey as ai}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ln}from"@solana/spl-token";var ft={chainId:101,address:ai.default.toBase58(),programId:Ln.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ue={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Ln.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 Et}from"@solana/web3.js";import{PublicKey as X,SystemProgram as On,SYSVAR_RENT_PUBKEY as si}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ui}from"@solana/spl-token";function Ce({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var ci=[Ce({pubkey:ui,isWritable:!1}),Ce({pubkey:On.programId,isWritable:!1}),Ce({pubkey:si,isWritable:!1})];function Nn({publicKey:o,transformSol:e}){let n=Mn(o.toString());if(n instanceof X)return e&&n.equals(he)?pe:n;if(e&&n.toString()===he.toBase58())return pe;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Mn(o){try{return new X(o)}catch{return o}}var Vt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Re=new X("SysvarRent111111111111111111111111111111111"),li=new X("SysvarC1ock11111111111111111111111111111111"),yt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),mi=new X("Sysvar1nstructions1111111111111111111111111"),Fn=On.programId,Gu=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),zu=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Xu=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Yu=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Qu=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Hu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Zu=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ju=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),$u=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ju=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ec=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),pe=new X("So11111111111111111111111111111111111111112"),he=X.default;var Dt=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:l=!1}){if(e===he.toBase58()||e instanceof Et&&he.equals(e)){this.decimals=ue.decimals,this.symbol=ue.symbol,this.name=ue.name,this.mint=new Et(ue.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||e.toString().substring(0,6),this.name=a||e.toString().substring(0,6),this.mint=c?Et.default:Nn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ee=Dt;ee.WSOL=new Dt(V(R({},ue),{mint:ue.address}));var Wt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},bt=Wt;bt.SOL=new Wt(ft);import di from"bn.js";var dc=new U(new di(100));var Pc=E("Raydium_price");import{merge as PC}from"lodash";import Sc from"axios";var vn={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"},pi=V(R({},vn),{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 Zc=E("Raydium_Api");import{PublicKey as Jl,SystemProgram as em}from"@solana/web3.js";import{AccountLayout as rm,createAssociatedTokenAccountIdempotentInstruction as am,TOKEN_PROGRAM_ID as sm,TOKEN_2022_PROGRAM_ID as um}from"@solana/spl-token";import{PublicKey as Fe,sendAndConfirmTransaction as Yt,SystemProgram as Ai,Transaction as Je,TransactionMessage as et,VersionedTransaction as tt}from"@solana/web3.js";import wi from"axios";import{PublicKey as qt,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function Ut({connection:o,address:e,cluster:n="mainnet"}){let i=await be(o,[...new Set(e.map(c=>c.toString()))].map(c=>new qt(c))),a={};for(let c=0;c<e.length;c++){let l=i[c],m=e[c];if(!l)continue;let y=new Ne({key:m,state:Ne.deserialize(l.data)});a[m.toString()]=y,n==="devnet"?Oe[m.toString()]=y:Le[m.toString()]=y}return a}var Le={},Gt=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[e])return Le;let n=new qt(e),i=await o.getAccountInfo(n);return i&&(Le[e]=new Ne({key:n,state:Ne.deserialize(i.data)})),Le},Oe={},zt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[e])return Oe;let n=new qt(e),i=await o.getAccountInfo(n);return i&&(Oe[e]=new Ne({key:n,state:Ne.deserialize(i.data)})),Oe};var Y={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 _n,Keypair as En,PublicKey as fi,Transaction as Dn,TransactionMessage as yi,VersionedTransaction as Wn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as bi}from"@solana/spl-token";var Vn=E("Raydium_txUtil"),qn=1644;function gt(o){let e=[],n=[];return o.microLamports&&(e.push(_n.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Y.SetComputeUnitPrice)),o.units&&(e.push(_n.setComputeUnitLimit({units:o.units})),n.push(Y.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Me(o,e){var i,a;let n=e!=null?e:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function Pt(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function Xt(o,e){o.length<1&&Vn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Vn.logWithError(`no signers provided:, ${e.toString()}`);let n=new Dn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<qn}catch{return!1}}function ce(o,e){let[n,i]=fi.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function je({instructions:o,payer:e,signers:n}){return Xt(o,[e,...n])}function $e({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=En.generate().publicKey.toString()}){let c=new yi({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Wn(c).serialize()).toString("base64").length<qn}catch{return!1}}var gi=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Pi=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Wn&&(e=gi(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ie(o){let e=[];return o.forEach(n=>{n instanceof Dn&&(n.recentBlockhash||(n.recentBlockhash=bi.toBase58()),n.feePayer||(n.feePayer=En.generate().publicKey)),e.push(Pi(n))}),console.log("simulate tx string:",e),e}var At=2e3,wt=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 i;let e=(await wi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=e==null?void 0:e[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:i}=gt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(Ai.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Fe(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(Y.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:n}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:c=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...l.filter(m=>m!==Fe.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(V(R({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new Je;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var b;let{recentBlockHash:c,skipPreflight:l=!0,sendAndConfirm:m,notSendToRpc:y}=a||{},P=c!=null?c:await Me(this.connection,this.blockhashCommitment);if(n.recentBlockhash=P,this.signers.length&&n.sign(...this.signers),Ie([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:m?await Yt(this.connection,n,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:l}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:l}),signedTx:n};if(this.signAllTransactions){let g=await this.signAllTransactions([n]);if(this.signers.length)for(let S of g)try{S.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(g[0].serialize(),{skipPreflight:l}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var P;let{extraPreBuildData:n=[],extInfo:i}=e,{transaction:a}=this.build(i),c=n.filter(b=>b.transaction.instructions.length>0),l=[a,...c.map(b=>b.transaction)],m=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&m.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:m,instructionTypes:y,execute:async b=>{var K;let{sequentially:g,onTxUpdate:S,skipTxCount:T=0,recentBlockHash:N,skipPreflight:w=!0}=b||{},B=N!=null?N:await Me(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(g){let x=[],F=0;for(let v of l){if(++F,F<=T)continue;let A=await Yt(this.connection,v,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});x.push(A)}return{txIds:x,signedTxs:l}}return{txIds:await await Promise.all(l.map(async x=>(x.recentBlockhash=B,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:w})))),signedTxs:l}}if(this.signAllTransactions){let x=l.map((v,A)=>(v.recentBlockhash=B,m[A].length&&v.sign(...m[A]),v));Ie(x);let F=await this.signAllTransactions(x);if(g){let v=0,A=[],h=async()=>{if(!F[v])return;let I=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:w});A.push({txId:I,status:"sent",signedTx:F[v]}),S==null||S([...A]),v++;let C=!1,L=null,_=null,ie=q=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let W=A.findIndex(j=>j.txId===I);if(W>-1){if(A[W].status==="error"||A[W].status==="success")return;A[W].status=q.err?"error":"success"}S==null||S([...A]),q.err||h()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(C){clearInterval(L);return}try{let W=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(L),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",I))}catch(W){C=!0,clearInterval(L),console.error("getTransaction timeout:",W,I)}},At)),_=this.connection.onSignature(I,q=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:A.map(I=>I.txId),signedTxs:F}}else{let v=[];for(let A=0;A<F.length;A+=1){let h=await this.connection.sendRawTransaction(F[A].serialize(),{skipPreflight:w});v.push(h)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var w;let N=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=N,l=de(N,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),m=R(R({},this.cluster==="devnet"?await zt(this.connection):await Gt(this.connection)),n),y=Array.from(new Set([...i,...this.lookupTableAddress])),P=[];for(let B of y)m[B]===void 0&&P.push(new Fe(B));let b=await Ut({connection:this.connection,address:P});for(let[B,K]of Object.entries(b))m[B]=K;let g=a?Fe.default.toBase58():c!=null?c:await Me(this.connection,this.blockhashCommitment),S=new et({payerKey:this.feePayer,recentBlockhash:g,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(m));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(B=>B.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let T=new tt(S);return T.sign(this.signers),{builder:this,transaction:T,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async B=>{var v;let{skipPreflight:K=!0,sendAndConfirm:x,notSendToRpc:F}=B||{};if(Ie([T]),(v=this.owner)!=null&&v.isKeyPair){let A=await this.connection.sendTransaction(T,{skipPreflight:K});return x&&await Pt(this.connection,A),{txId:A,signedTx:T}}if(this.signAllTransactions){let A=await this.signAllTransactions([T]);if(this.signers.length)for(let h of A)try{h.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(A[0],{skipPreflight:K}),signedTx:A[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var P;let{extraPreBuildData:n=[],buildProps:i}=e,{transaction:a}=await this.buildV0(i),c=n.filter(b=>b.builder.instructions.length>0),l=[a,...c.map(b=>b.transaction)],m=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&m.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(b,g)=>{b.sign(m[g])}),{builder:this,transactions:l,signers:m,instructionTypes:y,buildProps:i,execute:async b=>{var w;let{sequentially:g,onTxUpdate:S,recentBlockHash:T,skipPreflight:N=!0}=b||{};if(T&&l.forEach(B=>B.message.recentBlockhash=T),Ie(l),(w=this.owner)!=null&&w.isKeyPair){if(g){let B=[];for(let K of l){let x=await this.connection.sendTransaction(K,{skipPreflight:N});await Pt(this.connection,x),B.push(x)}return{txIds:B,signedTxs:l}}return{txIds:await Promise.all(l.map(async B=>await this.connection.sendTransaction(B,{skipPreflight:N}))),signedTxs:l}}if(this.signAllTransactions){let B=await this.signAllTransactions(l);if(g){let K=0,x=[],F=async()=>{if(!B[K])return;let v=await this.connection.sendTransaction(B[K],{skipPreflight:N});x.push({txId:v,status:"sent",signedTx:B[K]}),S==null||S([...x]),K++;let A=!1,h=null,I=null,C=L=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let _=x.findIndex(ie=>ie.txId===v);if(_>-1){if(x[_].status==="error"||x[_].status==="success")return;x[_].status=L.err?"error":"success"}S==null||S([...x]),L.err||F()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var L;if(A){clearInterval(h);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(A=!0,clearInterval(h),C({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){A=!0,clearInterval(h),console.error("getTransaction timeout:",_,v)}},At)),I=this.connection.onSignature(v,L=>{if(A){this.connection.removeSignatureListener(I);return}A=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:B}}else{let K=[];for(let x=0;x<B.length;x+=1){let F=await this.connection.sendTransaction(B[x],{skipPreflight:N});K.push(F)}return{txIds:K,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var S;let g=e||{},{splitIns:n=[],computeBudgetConfig:i}=g,a=de(g,["splitIns","computeBudgetConfig"]),c=i?gt(i):{instructions:[],instructionTypes:[]},l=this.signers.reduce((T,N)=>V(R({},T),{[N.publicKey.toBase58()]:N}),{}),m=[],y=[],P=[],b=0;if(this.allInstructions.forEach(T=>{let N=[...P,T],w=i?[...c.instructions,...N]:N,K=[...new Set(N.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(x=>new Fe(x));if(T!==n[b]&&P.length<12&&(je({instructions:w,payer:this.feePayer,signers:K})||je({instructions:N,payer:this.feePayer,signers:K})))P.push(T);else{if(P.length===0)throw Error("item ins too big");b+=T===n[b]?1:0,je({instructions:i?[...c.instructions,...P]:[...P],payer:this.feePayer,signers:K})?m.push(new Je().add(...c.instructions,...P)):m.push(new Je().add(...P)),y.push(Array.from(new Set(P.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(x=>l[x]).filter(x=>x!==void 0)),P=[T]}}),P.length>0){let N=[...new Set(P.map(w=>w.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(w=>l[w]).filter(w=>w!==void 0);je({instructions:i?[...c.instructions,...P]:[...P],payer:this.feePayer,signers:N.map(w=>w.publicKey)})?m.push(new Je().add(...c.instructions,...P)):m.push(new Je().add(...P)),y.push(N)}return m.forEach(T=>T.feePayer=this.feePayer),(S=this.owner)!=null&&S.signer&&y.forEach(T=>{T.some(N=>N.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),{builder:this,transactions:m,signers:y,instructionTypes:this.instructionTypes,execute:async T=>{var v;let{sequentially:N,onTxUpdate:w,skipTxCount:B=0,recentBlockHash:K,skipPreflight:x=!0}=T||{},F=K!=null?K:await Me(this.connection,this.blockhashCommitment);if(m.forEach(async(A,h)=>{A.recentBlockhash=F,y[h].length&&A.sign(...y[h])}),Ie(m),(v=this.owner)!=null&&v.isKeyPair){if(N){let A=0,h=[];for(let I of m){if(++A,A<=B){h.push("tx skipped");continue}let C=await Yt(this.connection,I,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});h.push(C)}return{txIds:h,signedTxs:m}}return{txIds:await Promise.all(m.map(async A=>await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:x}))),signedTxs:m}}if(this.signAllTransactions){let A=await this.signAllTransactions(m.slice(B,m.length)),h=[...m.slice(0,B),...A];if(N){let I=0,C=[],L=async()=>{if(!h[I])return;I<B&&(C.push({txId:"",status:"success",signedTx:h[I]}),w==null||w([...C]),I++,L());let _=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:x});C.push({txId:_,status:"sent",signedTx:h[I]}),w==null||w([...C]),I++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=C.findIndex(fe=>fe.txId===_);if(ne>-1){if(C[ne].status==="error"||C[ne].status==="success")return;C[ne].status=G.err?"error":"success"}w==null||w([...C]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(ie=!0,clearInterval(q),j({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){ie=!0,clearInterval(q),console.error("getTransaction timeout:",ne,_)}},At)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:C.map(_=>_.txId),signedTxs:h}}else{let I=[];for(let C=0;C<h.length;C+=1){let L=await this.connection.sendRawTransaction(h[C].serialize(),{skipPreflight:x});I.push(L)}return{txIds:I,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var v;let F=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:l=12}=F,m=de(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=R(R({},this.cluster==="devnet"?await zt(this.connection):await Gt(this.connection)),a),P=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let A of P)y[A]===void 0&&b.push(new Fe(A));let g=await Ut({connection:this.connection,address:b});for(let[A,h]of Object.entries(g))y[A]=h;let S=n?gt(n):{instructions:[],instructionTypes:[]},T=await Me(this.connection,this.blockhashCommitment),N=this.signers.reduce((A,h)=>V(R({},A),{[h.publicKey.toBase58()]:h}),{}),w=[],B=[],K=[],x=0;if(this.allInstructions.forEach(A=>{let h=[...K,A],I=n?[...S.instructions,...h]:h;if(A!==i[x]&&K.length<l&&($e({instructions:I,payer:this.feePayer,lookupTableAddressAccount:y})||$e({instructions:h,payer:this.feePayer,lookupTableAddressAccount:y})))K.push(A);else{if(K.length===0)throw Error("item ins too big");x+=A===i[x]?1:0;let C={};for(let L of[...new Set(P)])y[L]!==void 0&&(C[L]=y[L]);if(n&&$e({instructions:[...S.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let L=new et({payerKey:this.feePayer,recentBlockhash:T,instructions:[...S.instructions,...K]}).compileToV0Message(Object.values(y));w.push(new tt(L))}else{let L=new et({payerKey:this.feePayer,recentBlockhash:T,instructions:[...K]}).compileToV0Message(Object.values(y));w.push(new tt(L))}B.push(Array.from(new Set(K.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>N[L]).filter(L=>L!==void 0)),K=[A]}}),K.length>0){let h=[...new Set(K.map(I=>I.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(I=>N[I]).filter(I=>I!==void 0);if(n&&$e({instructions:[...S.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let I=new et({payerKey:this.feePayer,recentBlockhash:T,instructions:[...S.instructions,...K]}).compileToV0Message(Object.values(y));w.push(new tt(I))}else{let I=new et({payerKey:this.feePayer,recentBlockhash:T,instructions:[...K]}).compileToV0Message(Object.values(y));w.push(new tt(I))}B.push(h)}return(v=this.owner)!=null&&v.signer&&B.forEach(A=>{A.some(h=>h.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),w.forEach((A,h)=>{A.sign(B[h])}),{builder:this,transactions:w,buildProps:e,signers:B,instructionTypes:this.instructionTypes,execute:async A=>{var ie;let{sequentially:h,onTxUpdate:I,skipTxCount:C=0,recentBlockHash:L,skipPreflight:_=!0}=A||{};if(w.map(async(q,W)=>{B[W].length&&q.sign(B[W]),L&&(q.message.recentBlockhash=L)}),Ie(w),(ie=this.owner)!=null&&ie.isKeyPair){if(h){let q=0,W=[];for(let j of w){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:_});await Pt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:w}}return{txIds:await Promise.all(w.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:w}}if(this.signAllTransactions){let q=await this.signAllTransactions(w.slice(C,w.length)),W=[...w.slice(0,C),...q];if(h){let j=0,G=[],ne=async()=>{if(!W[j])return;if(j<C){G.push({txId:"",status:"success",signedTx:W[j]}),I==null||I([...G]),j++,ne();return}let fe=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:W[j]}),I==null||I([...G]),j++;let ze=!1,Se=null,st=null,fn=we=>{Se!==null&&clearInterval(Se),st!==null&&this.connection.removeSignatureListener(st);let ye=G.findIndex(Co=>Co.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=we.err?"error":"success"}I==null||I([...G]),we.err||ne()};this.loopMultiTxStatus&&(Se=setInterval(async()=>{var we;if(ze){clearInterval(Se);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(ze=!0,clearInterval(Se),fn({err:((we=ye.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){ze=!0,clearInterval(Se),console.error("getTransaction timeout:",ye,fe)}},At)),st=this.connection.onSignature(fe,we=>{if(ze){this.connection.removeSignatureListener(st);return}ze=!0,fn(we)},"confirmed"),this.connection.getSignatureStatus(fe)};return ne(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:_});j.push(ne)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}};var Qt=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),oe=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=E(n)}createTxBuilder(e){return this.scope.checkOwner(),new wt({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(Qt(e))}logInfo(...e){this.logger.info(Qt(e))}logAndCreateError(...e){let n=Qt(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as ki,SystemProgram as Ti}from"@solana/web3.js";import hi from"bn.js";import{createCloseAccountInstruction as Ii,createInitializeAccountInstruction as Bi,createTransferInstruction as xi,TOKEN_PROGRAM_ID as ve}from"@solana/spl-token";function Un(o){let{mint:e,tokenAccount:n,owner:i,programId:a=ve}=o;return Bi(n,e,i,a)}function Ht(o){let{tokenAccount:e,payer:n,multiSigners:i=[],owner:a,programId:c=ve}=o;return Ii(e,n,a,i,c)}async function Zt(o){let{connection:e,amount:n,commitment:i,payer:a,owner:c,skipCloseAccount:l}=o,m=await e.getMinimumBalanceForRentExemption(Te.span,i),y=J(n).add(new hi(m)),P=_e({fromPublicKey:a,programId:ve});return{addresses:{newAccount:P.publicKey},signers:[],instructions:[Ti.createAccountWithSeed({fromPubkey:a,basePubkey:a,seed:P.seed,newAccountPubkey:P.publicKey,lamports:y.toNumber(),space:Te.span,programId:ve}),Un({mint:new ki(ue.address),tokenAccount:P.publicKey,owner:c,programId:ve})],instructionTypes:[Y.CreateAccount,Y.InitAccount],endInstructionTypes:l?[]:[Y.CloseAccount],endInstructions:l?[]:[Ht({tokenAccount:P.publicKey,payer:a,owner:c})]}}function Si({source:o,destination:e,owner:n,amount:i,multiSigners:a=[],tokenProgram:c=ve}){return xi(o,e,n,BigInt(String(i)),a,c)}import{PublicKey as Ug,SystemProgram as Gg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Xg}from"@solana/spl-token";import{PublicKey as Ci}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ri}from"@solana/spl-token";function ae(o,e,n){return ce([o.toBuffer(),(n!=null?n:Ri).toBuffer(),e.toBuffer()],new Ci("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as k}from"@solana/web3.js";var Gn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),zn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Xn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),jt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Am=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Li=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Yn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Qn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),wm=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Oi=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Hn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ni=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mi=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Zn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),km=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Fi=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),vi=new k("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),_i=new k("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Vi=new k("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ei=new k("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),$t=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Di=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Tm=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Wi=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),qi=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ui=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),hm=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Im=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Bm=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),xm=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Sm=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),nt={IDO_PROGRAM_ID_V1:vi,IDO_PROGRAM_ID_V2:_i,IDO_PROGRAM_ID_V3:Vi,IDO_PROGRAM_ID_V4:Ei};var ge={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import nP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as wy,TOKEN_2022_PROGRAM_ID as ky,TOKEN_PROGRAM_ID as Ty}from"@solana/spl-token";import{PublicKey as Iy}from"@solana/web3.js";import xy from"bn.js";import Ky from"decimal.js";import{TOKEN_PROGRAM_ID as Wm}from"@solana/spl-token";import{PublicKey as zm}from"@solana/web3.js";var Gi=p([z("mintAuthorityOption"),r("mintAuthority"),t("supply"),d("decimals"),d("isInitialized"),z("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as qf,TOKEN_2022_PROGRAM_ID as Uf,TOKEN_PROGRAM_ID as Gf}from"@solana/spl-token";import{Keypair as Yf,PublicKey as Qf,SystemProgram as Zf,TransactionInstruction as jf}from"@solana/web3.js";import Jf from"bn.js";import D from"bn.js";var Ee=new D(1).shln(64);var zi=new D(1).shln(128),Jt=new D(1).shln(64).subn(1),Xi=new D(1).shln(128).subn(1);var De=new D("4295048016"),We=new D("79226673521066979257578248091"),Yi=new D("59543866431248"),Qi=new D("184467440737095516"),Hi=new D("15793534762490258745");var en=60,$m=new D("18446743708227953217"),Zi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var ot=3,jn=100;var $n=10,Jn=100,kt=14;var Z=new D(0),qe=new D(1),Jm=new D(-1);var ed=new D("18446744073700000000");var ji=p([M(8),d("bump"),H("index"),r("owner"),z("protocolFeeRate"),z("tradeFeeRate"),H("tickSpacing"),z("fundFeeRate"),f(z(),1),r("fundOwner"),f(t(),3)]),$i=p([z("blockTimestamp"),Ke("tickCumulative"),f(t(),4)]),eo=p([M(8),re("initialized"),t("recentEpoch"),H("observationIndex"),r("poolId"),f($i,jn,"observations"),f(t(),4)]),Ji=p([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),t("lastUpdateTimestamp"),f(d(),46)]),er=p([d("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),O("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),tn=p([M(8),d("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),d("mintDecimalsA"),d("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),se("tickCurrent"),z(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),f(O(),4),d("status"),d("feeOn"),M(6),f(er,ot,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),Ji.replicate("dynamicFeeInfo"),f(t(),46)]),tr=p([O("growthInsideLastX64"),t("rewardAmountOwed")]),nr=p([M(8),d("bump"),r("nftMint"),r("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(tr,ot,"rewardInfos"),t("recentEpoch"),f(t(),7)]),id=p([M(8),d("bump"),r("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(O(),ot,"rewardGrowthInside"),t("recentEpoch"),f(t(),7)]),or=p([se("tick"),xn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),f(O(),ot,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),O("unfilledRatioX64"),f(z(),3)]),to=p([M(8),r("poolId"),se("startTickIndex"),f(or,en,"ticks"),d("initializedTickCount"),t("recentEpoch"),f(d(),107)]),ir=p([M(8),d("bump"),f(r(),$n,"operationOwners"),f(r(),Jn,"whitelistMints")]),rr=p([M(8),r("poolId"),r("owner"),se("tick"),re("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),O("unfilledRatioX64"),f(t(),4)]),no=p([M(8),r("poolId"),M(8*8*kt,"positiveTickArrayBitmap"),M(8*8*kt,"negativeTickArrayBitmap")]),rd=p([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),f(t(),8)]),ar=p([M(8),r("wallet"),d("nonceIndex"),t("orderNonce"),f(t(),4)]),ad=p([t(),d("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),f(t(),8)]),sr=p([M(8),d("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),f(t(),8)]);import cd from"bn.js";var wd=Buffer.from("amm_config","utf8"),ur=Buffer.from("pool","utf8"),cr=Buffer.from("pool_vault","utf8"),kd=Buffer.from("pool_reward_vault","utf8"),Td=Buffer.from("position","utf8"),hd=Buffer.from("tick_array","utf8"),Id=Buffer.from("operation","utf8"),Bd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),xd=Buffer.from("observation","utf8"),Sd=Buffer.from("support_mint","utf8"),Kd=Buffer.from("dynamic_fee_config","utf8");var Cd=Buffer.from("locked_position","utf8");import{sha256 as Ir}from"js-sha256";import lr from"bn.js";import Nd from"decimal.js";var Fd=new lr(1).shln(256).subn(1);import Jd from"bn.js";import qd from"bn.js";import Gd from"decimal.js";import ip from"bn.js";import ap from"decimal.js";import{PublicKey as Xp}from"@solana/web3.js";import Qp from"bn.js";import{TOKEN_2022_PROGRAM_ID as nf}from"@solana/spl-token";import sf from"decimal.js";import Fp f