@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 79.7 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 ss,blob as Mo,Blob as us,cstr as cs,f32 as ls,f32be as ms,f64 as ds,f64be as ps,greedy as fs,Layout as Fo,ns64 as ys,ns64be as bs,nu64 as vo,nu64be as gs,offset as _o,s16 as Ps,s16be as As,s24 as ws,s24be as ks,s32 as Vo,s32be as Ts,s40 as hs,s40be as Is,s48 as Bs,s48be as xs,s8 as Ss,seq as Eo,struct as Ks,Structure as Do,u16 as Wo,u16be as Cs,u24 as Rs,u24be as Ls,u32 as qo,u32be as Os,u40 as Ns,u40be as Ms,u48 as Fs,u48be as vs,u8 as Uo,UInt as Go,union as _s,Union as Vs,unionLayoutDiscriminator as Es,utf8 as Ds}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 Ce(o){return new ke(8,!0,o)}function xn(o){return new ke(16,!0,o)}var Ye=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 Ye(M(32),e=>new zo(e),e=>e.toBuffer(),o)}function re(o){return new Ye(An(),Yo,Xo,o)}function Yo(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Xo(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 Ye(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 ts,PublicKey as Ko}from"@solana/web3.js";import ns 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 su,TOKEN_PROGRAM_ID as uu,getTransferFeeConfig as cu,unpackMint as lu}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 Se from"bn.js";import yR from"decimal.js";import ii from"big.js";import Su 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 vu=E("Raydium_amount"),_u=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 Y,SystemProgram as On,SYSVAR_RENT_PUBKEY as si}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ui}from"@solana/spl-token";function Re({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var ci=[Re({pubkey:ui,isWritable:!1}),Re({pubkey:On.programId,isWritable:!1}),Re({pubkey:si,isWritable:!1})];function Nn({publicKey:o,transformSol:e}){let n=Mn(o.toString());if(n instanceof Y)return e&&n.equals(he)?pe:n;if(e&&n.toString()===he.toBase58())return pe;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Mn(o){try{return new Y(o)}catch{return o}}var Vt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Le=new Y("SysvarRent111111111111111111111111111111111"),li=new Y("SysvarC1ock11111111111111111111111111111111"),yt=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),mi=new Y("Sysvar1nstructions1111111111111111111111111"),Fn=On.programId,zu=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Yu=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Xu=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Qu=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Hu=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Zu=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ju=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),$u=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ju=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ec=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),tc=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),pe=new Y("So11111111111111111111111111111111111111112"),he=Y.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 pc=new U(new di(100));var Ac=E("Raydium_price");import{merge as yC}from"lodash";import Kc 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 jc=E("Raydium_Api");import{PublicKey as em,SystemProgram as tm}from"@solana/web3.js";import{AccountLayout as am,createAssociatedTokenAccountIdempotentInstruction as sm,TOKEN_PROGRAM_ID as um,TOKEN_2022_PROGRAM_ID as cm}from"@solana/spl-token";import{PublicKey as ve,sendAndConfirmTransaction as Xt,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 Me}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 Me({key:m,state:Me.deserialize(l.data)});a[m.toString()]=y,n==="devnet"?Ne[m.toString()]=y:Oe[m.toString()]=y}return a}var Oe={},Gt=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Oe[e])return Oe;let n=new qt(e),i=await o.getAccountInfo(n);return i&&(Oe[e]=new Me({key:n,state:Me.deserialize(i.data)})),Oe},Ne={},zt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ne[e])return Ne;let n=new qt(e),i=await o.getAccountInfo(n);return i&&(Ne[e]=new Me({key:n,state:Me.deserialize(i.data)})),Ne};var X={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(X.SetComputeUnitPrice)),o.units&&(e.push(_n.setComputeUnitLimit({units:o.units})),n.push(X.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Fe(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 Yt(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 Yt(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 ve(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(X.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!==ve.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 Fe(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 Xt(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 Fe(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 Xt(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 ve(B));let b=await Ut({connection:this.connection,address:P});for(let[B,K]of Object.entries(b))m[B]=K;let g=a?ve.default.toBase58():c!=null?c:await Fe(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 ve(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 Fe(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 Xt(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 ve(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 Fe(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,Ke=null,st=null,fn=we=>{Ke!==null&&clearInterval(Ke),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&&(Ke=setInterval(async()=>{var we;if(ze){clearInterval(Ke);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(ze=!0,clearInterval(Ke),fn({err:((we=ye.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){ze=!0,clearInterval(Ke),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 _e}from"@solana/spl-token";function Un(o){let{mint:e,tokenAccount:n,owner:i,programId:a=_e}=o;return Bi(n,e,i,a)}function Ht(o){let{tokenAccount:e,payer:n,multiSigners:i=[],owner:a,programId:c=_e}=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=Ve({fromPublicKey:a,programId:_e});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:_e}),Un({mint:new ki(ue.address),tokenAccount:P.publicKey,owner:c,programId:_e})],instructionTypes:[X.CreateAccount,X.InitAccount],endInstructionTypes:l?[]:[X.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=_e}){return xi(o,e,n,BigInt(String(i)),a,c)}import{PublicKey as Ug,SystemProgram as Gg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Yg}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"),Yn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),jt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),wm=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Li=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Xn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Qn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),km=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Oi=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Hn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ni=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mi=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Zn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Tm=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"),hm=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Wi=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),qi=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ui=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Im=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Bm=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),xm=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Sm=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Km=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 qm}from"@solana/spl-token";import{PublicKey as Ym}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 Xf,PublicKey as Qf,SystemProgram as Zf,TransactionInstruction as jf}from"@solana/web3.js";import Jf from"bn.js";import D from"bn.js";var xe=new D(1).shln(64);var zi=new D(1).shln(128),Jt=new D(1).shln(64).subn(1),Yi=new D(1).shln(128).subn(1);var De=new D("4295048016"),We=new D("79226673521066979257578248091"),Xi=new D("59543866431248"),Qi=new D("184467440737095516"),Hi=new D("15793534762490258745");var en=60,Jm=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),ed=new D(-1);var td=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"),Ce("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)]),rd=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")]),ad=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)]),sd=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 ld from"bn.js";var kd=Buffer.from("amm_config","utf8"),ur=Buffer.from("pool","utf8"),cr=Buffer.from("pool_vault","utf8"),Td=Buffer.from("pool_reward_vault","utf8"),hd=Buffer.from("position","utf8"),Id=Buffer.from("tick_array","utf8"),Bd=Buffer.from("operation","utf8"),xd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Sd=Buffer.from("observation","utf8"),Kd=Buffer.from("support_mint","utf8"),Cd=Buffer.from("dynamic_fee_config","utf8");var Rd=Buffer.from("locked_position","utf8");import{sha256 as Br}from"js-sha256";import lr from"bn.js";import Md from"decimal.js";var vd=new lr(1).shln(256).subn(1);import ep from"bn.js";import Ud from"bn.js";import zd from"decimal.js";import up from"bn.js";import lp from"decimal.js";import{PublicKey as Yp}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