@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 91.7 kB
JavaScript
var Qo=Object.defineProperty,Zo=Object.defineProperties;var Ho=Object.getOwnPropertyDescriptors;var bt=Object.getOwnPropertySymbols;var Mn=Object.prototype.hasOwnProperty,Fn=Object.prototype.propertyIsEnumerable;var Nn=(n,e,t)=>e in n?Qo(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,K=(n,e)=>{for(var t in e||(e={}))Mn.call(e,t)&&Nn(n,t,e[t]);if(bt)for(var t of bt(e))Fn.call(e,t)&&Nn(n,t,e[t]);return n},v=(n,e)=>Zo(n,Ho(e));var Pe=(n,e)=>{var t={};for(var i in n)Mn.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&bt)for(var i of bt(n))e.indexOf(i)<0&&Fn.call(n,i)&&(t[i]=n[i]);return t};import{PublicKey as _n}from"@solana/web3.js";import{get as Wt,set as vn}from"lodash";var jo=(r=>(r[r.Error=0]="Error",r[r.Warning=1]="Warning",r[r.Info=2]="Info",r[r.Debug=3]="Debug",r))(jo||{}),qt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Ut={},Vn={};function V(n){let e=Wt(Ut,n);if(!e){let t=Wt(Vn,n);e=new qt({name:n,logLevel:t}),vn(Ut,n,e)}return e}function Is(n,e){vn(Vn,n,e);let t=Wt(Ut,n);t&&(t.level=e)}import{MINT_SIZE as $o,TOKEN_PROGRAM_ID as Jo,getTransferFeeConfig as ei,unpackMint as ti}from"@solana/spl-token";var Gt=V("Raydium_accountInfo_util");async function Ae(n,e,t){let{batchRequest:i,commitment:r="confirmed",chunkCount:c=100}=K({batchRequest:!1},t),m=zt(e,c),l=new Array(m.length).fill([]);if(i){let d=m.map(A=>{let C=n._buildArgs([A.map(B=>B.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:C}}),y=zt(d,10);l=(await(await Promise.all(y.map(async A=>await n._rpcBatchRequest(A)))).flat()).map(A=>(A.error&&Gt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${A.error.message}`),A.result.value.map(C=>{if(C){let{data:B,executable:F,lamports:k,owner:I,rentEpoch:x}=C;return B.length!==2&&B[1]!=="base64"&&Gt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:F,lamports:k,owner:new _n(I),rentEpoch:x}}return null})))}else try{l=await Promise.all(m.map(d=>n.getMultipleAccountsInfo(d,r)))}catch(d){d instanceof Error&&Gt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${d.message}`)}return l.flat()}async function xe(n,e,t){let i=await Ae(n,e.map(r=>r.pubkey),t);return e.map((r,c)=>v(K({},r),{accountInfo:i[c]}))}var ni=(i=>(i[i.Uninitialized=0]="Uninitialized",i[i.Mint=1]="Mint",i[i.Account=2]="Account",i))(ni||{}),Ns=1;async function Yt({connection:n,mints:e,config:t}){var c,m,l;if(e.length===0)return{};let i=await xe(n,e.map(d=>({pubkey:Le(d)})),t),r={};for(let d of i){if(!d.accountInfo||d.accountInfo.data.length<$o){console.log("invalid mint account",d.pubkey.toBase58());continue}let y=ti(d.pubkey,d.accountInfo,(c=d.accountInfo)==null?void 0:c.owner);r[d.pubkey.toString()]=v(K({},y),{programId:((m=d.accountInfo)==null?void 0:m.owner)||Jo,feeConfig:(l=ei(y))!=null?l:void 0})}return r[_n.default.toBase58()]=r[pe.toBase58()],r}import j from"bn.js";import As from"decimal.js";import ci from"big.js";import Ke from"bn.js";import oi from"toformat";var ii=oi,et=ii;import Pt from"big.js";import ri from"bn.js";import ai from"decimal.js-light";import tt from"bn.js";var Xt=(i=>(i[i.ROUND_DOWN=0]="ROUND_DOWN",i[i.ROUND_HALF_UP=1]="ROUND_HALF_UP",i[i.ROUND_UP=2]="ROUND_UP",i))(Xt||{}),En=9007199254740991;function Z(n){let e=V("Raydium_parseBigNumberish");if(n instanceof tt)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new tt(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=En||n<=-En)&&e.logWithError(`BigNumberish number overflow: ${n}`),new tt(String(n))):typeof n=="bigint"?new tt(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new tt(0))}var gt=V("module/fraction"),Qt=et(Pt),nt=et(ai),si={[0]:nt.ROUND_DOWN,[1]:nt.ROUND_HALF_UP,[2]:nt.ROUND_UP},ui={[0]:Pt.roundDown,[1]:Pt.roundHalfUp,[2]:Pt.roundUp},L=class{constructor(e,t=new ri(1)){this.numerator=Z(e),this.denominator=Z(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new L(this.denominator,this.numerator)}add(e){let t=e instanceof L?e:new L(Z(e));return this.denominator.eq(t.denominator)?new L(this.numerator.add(t.numerator),this.denominator):new L(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof L?e:new L(Z(e));return this.denominator.eq(t.denominator)?new L(this.numerator.sub(t.numerator),this.denominator):new L(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof L?e:new L(Z(e));return new L(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof L?e:new L(Z(e));return new L(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},i=1){Number.isInteger(e)||gt.logWithError(`${e} is not an integer.`),e<=0&>.logWithError(`${e} is not positive.`),nt.set({precision:e+1,rounding:si[i]});let r=new nt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},i=1){return Number.isInteger(e)||gt.logWithError(`${e} is not an integer.`),e<0&>.logWithError(`${e} is negative.`),Qt.DP=e,Qt.RM=ui[i]||1,new Qt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var li=V("Raydium_amount"),At=et(ci);function Dn(n,e){let t="0",i="0";if(n.includes(".")){let r=n.split(".");r.length===2?([t,i]=r,i=i.padEnd(e,"0")):li.logWithError(`invalid number string, num: ${n}`)}else t=n;return[t,i.slice(0,e)||i]}var ie=class extends L{constructor(t,i,r=!0,c){let m=new Ke(0),l=Ne.pow(new Ke(t.decimals));if(r)m=Z(i);else{let d=new Ke(0),y=new Ke(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,A]=Dn(i.toString(),t.decimals);d=Z(b),y=Z(A)}d=d.mul(l),m=d.add(y)}super(m,l);this.logger=V(c||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new ie(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new ie(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,i,r=0){return super.toSignificant(t,i,r)}toFixed(t=this.token.decimals,i,r=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,i,r)}toExact(t={groupSeparator:""}){return At.DP=this.token.decimals,new At(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}},Oe=class extends L{constructor(t,i,r=!0,c){let m=new Ke(0),l=Ne.pow(new Ke(t.decimals));if(r)m=Z(i);else{let d=new Ke(0),y=new Ke(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,A]=Dn(i.toString(),t.decimals);d=Z(b),y=Z(A)}d=d.mul(l),m=d.add(y)}super(m,l);this.logger=V(c||"TokenAmount"),this.currency=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.currency.equals(t.currency)||this.logger.logWithError("gt currency not equals"),this.raw.gt(t.raw)}lt(t){return this.currency.equals(t.currency)||this.logger.logWithError("lt currency not equals"),this.raw.lt(t.raw)}add(t){return this.currency.equals(t.currency)||this.logger.logWithError("add currency not equals"),new Oe(this.currency,this.raw.add(t.raw))}sub(t){return this.currency.equals(t.currency)||this.logger.logWithError("sub currency not equals"),new Oe(this.currency,this.raw.sub(t.raw))}toSignificant(t=this.currency.decimals,i,r=0){return super.toSignificant(t,i,r)}toFixed(t=this.currency.decimals,i,r=0){return t>this.currency.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,i,r)}toExact(t={groupSeparator:""}){return At.DP=this.currency.decimals,new At(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as mi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Wn}from"@solana/spl-token";var wt={chainId:101,address:mi.default.toBase58(),programId:Wn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},we={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Wn.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 $t}from"@solana/web3.js";import{PublicKey as X,SystemProgram as qn,SYSVAR_RENT_PUBKEY as di}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pi}from"@solana/spl-token";function We({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var fi=[We({pubkey:pi,isWritable:!1}),We({pubkey:qn.programId,isWritable:!1}),We({pubkey:di,isWritable:!1})];function Zt({publicKey:n,transformSol:e}){let t=Ht(n.toString());if(t instanceof X)return e&&t.equals(Me)?pe:t;if(e&&t.toString()===Me.toBase58())return pe;if(typeof t=="string"){if(t===X.default.toBase58())return X.default;try{return new X(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Ht(n){try{return new X(n)}catch{return n}}var jt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),qe=new X("SysvarRent111111111111111111111111111111111"),yi=new X("SysvarC1ock11111111111111111111111111111111"),kt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),bi=new X("Sysvar1nstructions1111111111111111111111111"),Un=qn.programId,mu=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),du=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),pu=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),fu=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),yu=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),bu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),gu=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Pu=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Au=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),wu=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ku=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),pe=new X("So11111111111111111111111111111111111111112"),Me=X.default;function Le(n){return Zt({publicKey:n,transformSol:!0})}var Jt=class{constructor({mint:e,decimals:t,symbol:i,name:r,skipMint:c=!1,isToken2022:m=!1}){if(e===Me.toBase58()||e instanceof $t&&Me.equals(e)){this.decimals=we.decimals,this.symbol=we.symbol,this.name=we.name,this.mint=new $t(we.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=c?$t.default:Zt({publicKey:e}),this.isToken2022=m}equals(e){return this===e?!0:this.mint.equals(e.mint)}},$=Jt;$.WSOL=new Jt(v(K({},we),{mint:we.address}));var en=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},ot=en;ot.SOL=new en(wt);import gi from"bn.js";var Gn=new L(new gi(100)),me=class extends L{toSignificant(e=5,t,i){return this.mul(Gn).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(Gn).toFixed(e,t,i)}};var Pi=V("Raydium_price"),se=class extends L{constructor(t){let{baseToken:i,quoteToken:r,numerator:c,denominator:m}=t;super(c,m);this.baseToken=i,this.quoteToken=r,this.scalar=new L(tn(i.decimals),tn(r.decimals))}get raw(){return new L(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new se({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Pi.logWithError("mul token not equals");let i=super.mul(t);return new se({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(t=this.quoteToken.decimals,i,r){return this.adjusted.toSignificant(t,i,r)}toFixed(t=this.quoteToken.decimals,i,r){return this.adjusted.toFixed(t,i,r)}};import{merge as DC}from"lodash";import zu from"axios";var zn={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"},Ai=v(K({},zn),{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 fc=V("Raydium_Api");var Ie=class{constructor(e){this._owner=e}get publicKey(){return Ie.isKeyPair(this._owner)?this._owner.publicKey:this._owner}get signer(){return Ie.isKeyPair(this._owner)?this._owner:void 0}get isKeyPair(){return Ie.isKeyPair(this._owner)}get isPublicKey(){return Ie.isPublicKey(this._owner)}static isKeyPair(e){return e.secretKey!==void 0}static isPublicKey(e){return!Ie.isKeyPair(e)}};import{PublicKey as vm,SystemProgram as Vm}from"@solana/web3.js";import{AccountLayout as qm,createAssociatedTokenAccountIdempotentInstruction as Um,TOKEN_PROGRAM_ID as Gm,TOKEN_2022_PROGRAM_ID as zm}from"@solana/spl-token";import{PublicKey as Xe,sendAndConfirmTransaction as un,SystemProgram as Bi,Transaction as at,TransactionMessage as st,VersionedTransaction as ut}from"@solana/web3.js";import Si from"axios";import{PublicKey as nn,AddressLookupTableAccount as ze}from"@solana/web3.js";async function on({connection:n,address:e,cluster:t="mainnet"}){let i=await Ae(n,[...new Set(e.map(c=>c.toString()))].map(c=>new nn(c))),r={};for(let c=0;c<e.length;c++){let m=i[c],l=e[c];if(!m)continue;let d=new ze({key:l,state:ze.deserialize(m.data)});r[l.toString()]=d,t==="devnet"?Ge[l.toString()]=d:Ue[l.toString()]=d}return r}var Ue={},rn=async n=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ue[e])return Ue;let t=new nn(e),i=await n.getAccountInfo(t);return i&&(Ue[e]=new ze({key:t,state:ze.deserialize(i.data)})),Ue},Ge={},an=async n=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ge[e])return Ge;let t=new nn(e),i=await n.getAccountInfo(t);return i&&(Ge[e]=new ze({key:t,state:ze.deserialize(i.data)})),Ge};var Be=(t=>(t[t.V0=0]="V0",t[t.LEGACY=1]="LEGACY",t))(Be||{}),ee={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 Yn,Keypair as Xn,PublicKey as Qn,Transaction as ht,TransactionMessage as ki,VersionedTransaction as sn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ti}from"@solana/spl-token";var Se=V("Raydium_txUtil"),Zn=1644;function It(n){let e=[],t=[];return n.microLamports&&(e.push(Yn.setComputeUnitPrice({microLamports:n.microLamports})),t.push(ee.SetComputeUnitPrice)),n.units&&(e.push(Yn.setComputeUnitLimit({units:n.units})),t.push(ee.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Ye(n,e){var i,r;let t=e!=null?e:"confirmed";return(r=await((i=n.getLatestBlockhash)==null?void 0:i.call(n,{commitment:t})))==null?void 0:r.blockhash}async function Bt(n,e){return n.getSignatureStatuses([e]),new Promise((t,i)=>{let r=setTimeout(i,6e4);n.onSignature(e,c=>{if(clearTimeout(r),!c.err){t("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function St(n,e){n.length<1&&Se.logWithError(`no instructions provided: ${n.toString()}`),e.length<1&&Se.logWithError(`no signers provided:, ${e.toString()}`);let t=new ht;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...n);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Zn}catch{return!1}}async function Vc(n,e,t,i=!0){let r=new Qn("RaydiumSimuLateTransaction11111111111111111"),c=[],m=new ht;m.feePayer=r;for(let y of e)St([...m.instructions,y],[r])||(c.push(m),m=new ht,m.feePayer=r),m.add(y);m.instructions.length>0&&c.push(m);let l=[];try{if(l=await hi(n,c,i),l.find(y=>y.err!==null))throw Error("rpc simulateTransaction error")}catch(y){y instanceof Error&&Se.logWithError("failed to simulate for instructions","RPC_ERROR",{message:y.message})}let d=[];for(let y of l)if(Se.debug("simulate result:",y),y.logs){let b=y.logs.filter(A=>A&&A.includes(t));Se.debug("filteredLog:",d),b.length||Se.logWithError("simulate log not match keyword","keyword",t),d.push(...b)}return d}function _c(n,e){let t=n.match(/{["\w:,]+}/g);return!t||t.length!==1?Se.logWithError(`simulate log fail to match json, keyword: ${e}`):t[0]}function Ec(n,e){let i=new RegExp(`"${e}":(\\d+)`,"g").exec(n);return!i||i.length!==2?Se.logWithError(`simulate log fail to match key", key: ${e}`):i[1]}function fe(n,e){let[t,i]=Qn.findProgramAddressSync(n,e);return{publicKey:t,nonce:i}}async function hi(n,e,t){let i=[];if(t){let r=await n.getLatestBlockhash(),c=[];for(let y of e){y.recentBlockhash=r.blockhash,y.lastValidBlockHeight=r.lastValidBlockHeight;let A=y._compile().serialize(),B=y._serialize(A).toString("base64");c.push(B)}let m=c.map(y=>{let b=n._buildArgs([y],void 0,"base64");return{methodName:"simulateTransaction",args:b}}),l=[],d=20;for(let y=0;y<Math.ceil(m.length/d);y++)l.push(m.slice(y*d,(y+1)*d));i=await(await Promise.all(l.map(async y=>(await n._rpcBatchRequest(y)).map(b=>b.result.value)))).flat()}else try{i=await Promise.all(e.map(async r=>await(await n.simulateTransaction(r)).value))}catch(r){r instanceof Error&&Se.logWithError("failed to get info for multiple accounts","RPC_ERROR",{message:r.message})}return i}function it({instructions:n,payer:e,signers:t}){return St(n,[e,...t])}function rt({instructions:n,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=Xn.generate().publicKey.toString()}){let c=new ki({payerKey:e,recentBlockhash:i,instructions:n}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new sn(c).serialize()).toString("base64").length<Zn}catch{return!1}}var Tt={time:0,data:void 0};async function Dc(n){if(!Tt.data||(Date.now()-Tt.time)/1e3>30){let e=await n.getEpochInfo();return Tt={time:Date.now(),data:e},e}else return Tt.data}var Hn=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n),Ii=n=>{let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof sn&&(e=Hn(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Fe(n){let e=[];return n.forEach(t=>{t instanceof ht&&(t.recentBlockhash||(t.recentBlockhash=Ti.toBase58()),t.feePayer||(t.feePayer=Xn.generate().publicKey)),e.push(Ii(t))}),console.log("simulate tx string:",e),e}function Wc(n){let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});return n instanceof sn&&(e=Hn(e)),e.toString("base64")}var xt=2e3,Kt=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 Si.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(i=e==null?void 0:e[15])!=null?i:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:i}=It(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Bi.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Xe(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(ee.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:i=[],instructionTypes:r=[],endInstructionTypes:c=[],lookupTableAddress:m=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...r),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...m.filter(l=>l!==Xe.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:i}){return e===0?await this.buildV0(v(K({},t||{}),{lookupTableAddress:i})):this.build(t)}build(e){var i;let t=new at;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(r=>r.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async r=>{var b;let{recentBlockHash:c,skipPreflight:m=!0,sendAndConfirm:l,notSendToRpc:d}=r||{},y=c!=null?c:await Ye(this.connection,this.blockhashCommitment);if(t.recentBlockhash=y,this.signers.length&&t.sign(...this.signers),Fe([t]),(b=this.owner)!=null&&b.isKeyPair)return{txId:l?await un(this.connection,t,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:m}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:m}),signedTx:t};if(this.signAllTransactions){let A=await this.signAllTransactions([t]);if(this.signers.length)for(let C of A)try{C.sign(...this.signers)}catch{}return{txId:d?"":await this.connection.sendRawTransaction(A[0].serialize(),{skipPreflight:m}),signedTx:A[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var y;let{extraPreBuildData:t=[],extInfo:i}=e,{transaction:r}=this.build(i),c=t.filter(b=>b.transaction.instructions.length>0),m=[r,...c.map(b=>b.transaction)],l=[this.signers,...c.map(b=>b.signers)],d=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&l.forEach(b=>{b.some(A=>A.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:m,signers:l,instructionTypes:d,execute:async b=>{var x;let{sequentially:A,onTxUpdate:C,skipTxCount:B=0,recentBlockHash:F,skipPreflight:k=!0}=b||{},I=F!=null?F:await Ye(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(A){let S=[],E=0;for(let D of m){if(++E,E<=B)continue;let P=await un(this.connection,D,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:k});S.push(P)}return{txIds:S,signedTxs:m}}return{txIds:await await Promise.all(m.map(async S=>(S.recentBlockhash=I,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:k})))),signedTxs:m}}if(this.signAllTransactions){let S=m.map((D,P)=>(D.recentBlockhash=I,l[P].length&&D.sign(...l[P]),D));Fe(S);let E=await this.signAllTransactions(S);if(A){let D=0,P=[],T=async()=>{if(!E[D])return;let h=await this.connection.sendRawTransaction(E[D].serialize(),{skipPreflight:k});P.push({txId:h,status:"sent",signedTx:E[D]}),C==null||C([...P]),D++;let R=!1,O=null,W=null,le=G=>{O!==null&&clearInterval(O),W!==null&&this.connection.removeSignatureListener(W);let U=P.findIndex(ne=>ne.txId===h);if(U>-1){if(P[U].status==="error"||P[U].status==="success")return;P[U].status=G.err?"error":"success"}C==null||C([...P]),G.err||T()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var G;if(R){clearInterval(O);return}try{let U=await this.connection.getTransaction(h,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(R=!0,clearInterval(O),le({err:((G=U.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",h))}catch(U){R=!0,clearInterval(O),console.error("getTransaction timeout:",U,h)}},xt)),W=this.connection.onSignature(h,G=>{if(R){this.connection.removeSignatureListener(W);return}R=!0,le(G)},"confirmed"),this.connection.getSignatureStatus(h)};return await T(),{txIds:P.map(h=>h.txId),signedTxs:E}}else{let D=[];for(let P=0;P<E.length;P+=1){let T=await this.connection.sendRawTransaction(E[P].serialize(),{skipPreflight:k});D.push(T)}return{txIds:D,signedTxs:E}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:i}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var k;let F=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:r,recentBlockhash:c}=F,m=Pe(F,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),l=K(K({},this.cluster==="devnet"?await an(this.connection):await rn(this.connection)),t),d=Array.from(new Set([...i,...this.lookupTableAddress])),y=[];for(let I of d)l[I]===void 0&&y.push(new Xe(I));let b=await on({connection:this.connection,address:y});for(let[I,x]of Object.entries(b))l[I]=x;let A=r?Xe.default.toBase58():c!=null?c:await Ye(this.connection,this.blockhashCommitment),C=new st({payerKey:this.feePayer,recentBlockhash:A,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(l));((k=this.owner)==null?void 0:k.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let B=new ut(C);return B.sign(this.signers),{builder:this,transaction:B,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var D;let{skipPreflight:x=!0,sendAndConfirm:S,notSendToRpc:E}=I||{};if(Fe([B]),(D=this.owner)!=null&&D.isKeyPair){let P=await this.connection.sendTransaction(B,{skipPreflight:x});return S&&await Bt(this.connection,P),{txId:P,signedTx:B}}if(this.signAllTransactions){let P=await this.signAllTransactions([B]);if(this.signers.length)for(let T of P)try{T.sign(this.signers)}catch{}return{txId:E?"":await this.connection.sendTransaction(P[0],{skipPreflight:x}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}async buildV0MultiTx(e){var y;let{extraPreBuildData:t=[],buildProps:i}=e,{transaction:r}=await this.buildV0(i),c=t.filter(b=>b.builder.instructions.length>0),m=[r,...c.map(b=>b.transaction)],l=[this.signers,...c.map(b=>b.signers)],d=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&l.forEach(b=>{b.some(A=>A.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),m.forEach(async(b,A)=>{b.sign(l[A])}),{builder:this,transactions:m,signers:l,instructionTypes:d,buildProps:i,execute:async b=>{var k;let{sequentially:A,onTxUpdate:C,recentBlockHash:B,skipPreflight:F=!0}=b||{};if(B&&m.forEach(I=>I.message.recentBlockhash=B),Fe(m),(k=this.owner)!=null&&k.isKeyPair){if(A){let I=[];for(let x of m){let S=await this.connection.sendTransaction(x,{skipPreflight:F});await Bt(this.connection,S),I.push(S)}return{txIds:I,signedTxs:m}}return{txIds:await Promise.all(m.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:F}))),signedTxs:m}}if(this.signAllTransactions){let I=await this.signAllTransactions(m);if(A){let x=0,S=[],E=async()=>{if(!I[x])return;let D=await this.connection.sendTransaction(I[x],{skipPreflight:F});S.push({txId:D,status:"sent",signedTx:I[x]}),C==null||C([...S]),x++;let P=!1,T=null,h=null,R=O=>{T!==null&&clearInterval(T),h!==null&&this.connection.removeSignatureListener(h);let W=S.findIndex(le=>le.txId===D);if(W>-1){if(S[W].status==="error"||S[W].status==="success")return;S[W].status=O.err?"error":"success"}C==null||C([...S]),O.err||E()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var O;if(P){clearInterval(T);return}try{let W=await this.connection.getTransaction(D,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(P=!0,clearInterval(T),R({err:((O=W.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",D))}catch(W){P=!0,clearInterval(T),console.error("getTransaction timeout:",W,D)}},xt)),h=this.connection.onSignature(D,O=>{if(P){this.connection.removeSignatureListener(h);return}P=!0,R(O)},"confirmed"),this.connection.getSignatureStatus(D)};return E(),{txIds:[],signedTxs:I}}else{let x=[];for(let S=0;S<I.length;S+=1){let E=await this.connection.sendTransaction(I[S],{skipPreflight:F});x.push(E)}return{txIds:x,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var C;let A=e||{},{splitIns:t=[],computeBudgetConfig:i}=A,r=Pe(A,["splitIns","computeBudgetConfig"]),c=i?It(i):{instructions:[],instructionTypes:[]},m=this.signers.reduce((B,F)=>v(K({},B),{[F.publicKey.toBase58()]:F}),{}),l=[],d=[],y=[],b=0;if(this.allInstructions.forEach(B=>{let F=[...y,B],k=i?[...c.instructions,...F]:F,x=[...new Set(F.map(S=>S.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat()).values()].map(S=>new Xe(S));if(B!==t[b]&&y.length<12&&(it({instructions:k,payer:this.feePayer,signers:x})||it({instructions:F,payer:this.feePayer,signers:x})))y.push(B);else{if(y.length===0)throw Error("item ins too big");b+=B===t[b]?1:0,it({instructions:i?[...c.instructions,...y]:[...y],payer:this.feePayer,signers:x})?l.push(new at().add(...c.instructions,...y)):l.push(new at().add(...y)),d.push(Array.from(new Set(y.map(S=>S.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(S=>m[S]).filter(S=>S!==void 0)),y=[B]}}),y.length>0){let F=[...new Set(y.map(k=>k.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(k=>m[k]).filter(k=>k!==void 0);it({instructions:i?[...c.instructions,...y]:[...y],payer:this.feePayer,signers:F.map(k=>k.publicKey)})?l.push(new at().add(...c.instructions,...y)):l.push(new at().add(...y)),d.push(F)}return l.forEach(B=>B.feePayer=this.feePayer),(C=this.owner)!=null&&C.signer&&d.forEach(B=>{B.some(F=>F.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:l,signers:d,instructionTypes:this.instructionTypes,execute:async B=>{var D;let{sequentially:F,onTxUpdate:k,skipTxCount:I=0,recentBlockHash:x,skipPreflight:S=!0}=B||{},E=x!=null?x:await Ye(this.connection,this.blockhashCommitment);if(l.forEach(async(P,T)=>{P.recentBlockhash=E,d[T].length&&P.sign(...d[T])}),Fe(l),(D=this.owner)!=null&&D.isKeyPair){if(F){let P=0,T=[];for(let h of l){if(++P,P<=I){T.push("tx skipped");continue}let R=await un(this.connection,h,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});T.push(R)}return{txIds:T,signedTxs:l}}return{txIds:await Promise.all(l.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:S}))),signedTxs:l}}if(this.signAllTransactions){let P=await this.signAllTransactions(l.slice(I,l.length)),T=[...l.slice(0,I),...P];if(F){let h=0,R=[],O=async()=>{if(!T[h])return;h<I&&(R.push({txId:"",status:"success",signedTx:T[h]}),k==null||k([...R]),h++,O());let W=await this.connection.sendRawTransaction(T[h].serialize(),{skipPreflight:S});R.push({txId:W,status:"sent",signedTx:T[h]}),k==null||k([...R]),h++;let le=!1,G=null,U=null,ne=Y=>{G!==null&&clearInterval(G),U!==null&&this.connection.removeSignatureListener(U);let ae=R.findIndex(Te=>Te.txId===W);if(ae>-1){if(R[ae].status==="error"||R[ae].status==="success")return;R[ae].status=Y.err?"error":"success"}k==null||k([...R]),Y.err||O()};this.loopMultiTxStatus&&(G=setInterval(async()=>{var Y;if(le){clearInterval(G);return}try{let ae=await this.connection.getTransaction(W,{commitment:"confirmed",maxSupportedTransactionVersion:0});ae&&(le=!0,clearInterval(G),ne({err:((Y=ae.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",W))}catch(ae){le=!0,clearInterval(G),console.error("getTransaction timeout:",ae,W)}},xt)),U=this.connection.onSignature(W,Y=>{if(le){this.connection.removeSignatureListener(U);return}le=!0,ne(Y)},"confirmed"),this.connection.getSignatureStatus(W)};return await O(),{txIds:R.map(W=>W.txId),signedTxs:T}}else{let h=[];for(let R=0;R<T.length;R+=1){let O=await this.connection.sendRawTransaction(T[R].serialize(),{skipPreflight:S});h.push(O)}return{txIds:h,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var D;let E=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:r={},lookupTableAddress:c=[],insCountLimit:m=12}=E,l=Pe(E,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),d=K(K({},this.cluster==="devnet"?await an(this.connection):await rn(this.connection)),r),y=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let P of y)d[P]===void 0&&b.push(new Xe(P));let A=await on({connection:this.connection,address:b});for(let[P,T]of Object.entries(A))d[P]=T;let C=t?It(t):{instructions:[],instructionTypes:[]},B=await Ye(this.connection,this.blockhashCommitment),F=this.signers.reduce((P,T)=>v(K({},P),{[T.publicKey.toBase58()]:T}),{}),k=[],I=[],x=[],S=0;if(this.allInstructions.forEach(P=>{let T=[...x,P],h=t?[...C.instructions,...T]:T;if(P!==i[S]&&x.length<m&&(rt({instructions:h,payer:this.feePayer,lookupTableAddressAccount:d})||rt({instructions:T,payer:this.feePayer,lookupTableAddressAccount:d})))x.push(P);else{if(x.length===0)throw Error("item ins too big");S+=P===i[S]?1:0;let R={};for(let O of[...new Set(y)])d[O]!==void 0&&(R[O]=d[O]);if(t&&rt({instructions:[...C.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:B})){let O=new st({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...x]}).compileToV0Message(Object.values(d));k.push(new ut(O))}else{let O=new st({payerKey:this.feePayer,recentBlockhash:B,instructions:[...x]}).compileToV0Message(Object.values(d));k.push(new ut(O))}I.push(Array.from(new Set(x.map(O=>O.keys.filter(W=>W.isSigner).map(W=>W.pubkey.toString())).flat())).map(O=>F[O]).filter(O=>O!==void 0)),x=[P]}}),x.length>0){let T=[...new Set(x.map(h=>h.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(h=>F[h]).filter(h=>h!==void 0);if(t&&rt({instructions:[...C.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:B})){let h=new st({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...x]}).compileToV0Message(Object.values(d));k.push(new ut(h))}else{let h=new st({payerKey:this.feePayer,recentBlockhash:B,instructions:[...x]}).compileToV0Message(Object.values(d));k.push(new ut(h))}I.push(T)}return(D=this.owner)!=null&&D.signer&&I.forEach(P=>{P.some(T=>T.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),k.forEach((P,T)=>{P.sign(I[T])}),{builder:this,transactions:k,buildProps:e,signers:I,instructionTypes:this.instructionTypes,execute:async P=>{var le;let{sequentially:T,onTxUpdate:h,skipTxCount:R=0,recentBlockHash:O,skipPreflight:W=!0}=P||{};if(k.map(async(G,U)=>{I[U].length&&G.sign(I[U]),O&&(G.message.recentBlockhash=O)}),Fe(k),(le=this.owner)!=null&&le.isKeyPair){if(T){let G=0,U=[];for(let ne of k){if(++G,G<=R){console.log("skip tx: ",G),U.push("tx skipped");continue}let Y=await this.connection.sendTransaction(ne,{skipPreflight:W});await Bt(this.connection,Y),U.push(Y)}return{txIds:U,signedTxs:k}}return{txIds:await Promise.all(k.map(async G=>await this.connection.sendTransaction(G,{skipPreflight:W}))),signedTxs:k}}if(this.signAllTransactions){let G=await this.signAllTransactions(k.slice(R,k.length)),U=[...k.slice(0,R),...G];if(T){let ne=0,Y=[],ae=async()=>{if(!U[ne])return;if(ne<R){Y.push({txId:"",status:"success",signedTx:U[ne]}),h==null||h([...Y]),ne++,ae();return}let Te=await this.connection.sendTransaction(U[ne],{skipPreflight:W});Y.push({txId:Te,status:"sent",signedTx:U[ne]}),h==null||h([...Y]),ne++;let Je=!1,De=null,yt=null,On=Re=>{De!==null&&clearInterval(De),yt!==null&&this.connection.removeSignatureListener(yt);let he=Y.findIndex(Xo=>Xo.txId===Te);if(he>-1){if(Y[he].status==="error"||Y[he].status==="success")return;Y[he].status=Re.err?"error":"success"}h==null||h([...Y]),Re.err||ae()};this.loopMultiTxStatus&&(De=setInterval(async()=>{var Re;if(Je){clearInterval(De);return}try{let he=await this.connection.getTransaction(Te,{commitment:"confirmed",maxSupportedTransactionVersion:0});he&&(Je=!0,clearInterval(De),On({err:((Re=he.meta)==null?void 0:Re.err)||null}),console.log("tx status from getTransaction:",Te))}catch(he){Je=!0,clearInterval(De),console.error("getTransaction timeout:",he,Te)}},xt)),yt=this.connection.onSignature(Te,Re=>{if(Je){this.connection.removeSignatureListener(yt);return}Je=!0,On(Re)},"confirmed"),this.connection.getSignatureStatus(Te)};return ae(),{txIds:[],signedTxs:U}}else{let ne=[];for(let Y=0;Y<U.length;Y+=1){let ae=await this.connection.sendTransaction(U[Y],{skipPreflight:W});ne.push(ae)}return{txIds:ne,signedTxs:U}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}};var cn=(...n)=>n.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ue=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=V(t)}createTxBuilder(e){return this.scope.checkOwner(),new Kt({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(cn(e))}logInfo(...e){this.logger.info(cn(e))}logAndCreateError(...e){let t=cn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as pm,SystemProgram as ym}from"@solana/web3.js";import Pm from"bn.js";import{createCloseAccountInstruction as Tm,createInitializeAccountInstruction as hm,createTransferInstruction as Im,TOKEN_PROGRAM_ID as Bm}from"@solana/spl-token";import{Keypair as em,PublicKey as tm}from"@solana/web3.js";import im from"bn.js";import{TOKEN_PROGRAM_ID as sm}from"@solana/spl-token";import{PublicKey as Ei}from"@solana/web3.js";import no,{isBN as oo}from"bn.js";import{bits as xi,BitStructure as al,blob as Ki,Blob as sl,cstr as ul,f32 as cl,f32be as ll,f64 as ml,f64be as dl,greedy as pl,Layout as Ci,ns64 as fl,ns64be as yl,nu64 as Ri,nu64be as bl,offset as Li,s16 as gl,s16be as Pl,s24 as Al,s24be as wl,s32 as Oi,s32be as kl,s40 as Tl,s40be as hl,s48 as Il,s48be as Bl,s8 as Sl,seq as Ni,struct as xl,Structure as Mi,u16 as Fi,u16be as Kl,u24 as Cl,u24be as Rl,u32 as vi,u32be as Ll,u40 as Ol,u40be as Nl,u48 as Ml,u48be as Fl,u8 as Vi,UInt as _i,union as vl,Union as Vl,unionLayoutDiscriminator as _l,utf8 as El}from"@solana/buffer-layout";var Ct=Ci,jn=Mi;var ln=_i;var $n=Vi,te=Fi;var Rt=vi;var Jn=Ri;var ye=Oi;var eo=Ni;var M=Ki;var mn=xi,to=Li;var ve=class extends Ct{constructor(t,i,r){super(t,r);this.blob=M(t),this.signed=i}decode(t,i=0){let r=new no(this.blob.decode(t,i),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,i,r=0){return typeof t=="number"&&(t=new no(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,r)}},Lt=class extends Ct{constructor(t){super(8,t);this._lower=mn(Rt(),!1),this._upper=mn(Rt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,i=0){let r=this._lower.decode(t,i),c=this._upper.decode(t,i+this._lower.span);return K(K({},r),c)}encode(t,i,r=0){return this._lower.encode(t,i,r)+this._upper.encode(t,i,r+this._lower.span)}};function p(n){return new ln(1,n)}function Q(n){return new ln(4,n)}function o(n){return new ve(8,!1,n)}function N(n){return new ve(16,!1,n)}function io(n){return new ve(1,!0,n)}function Qe(n){return new ve(8,!0,n)}function ro(n){return new ve(16,!0,n)}var ct=class extends Ct{constructor(t,i,r,c){super(t.span,c);this.layout=t,this.decoder=i,this.encoder=r}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,r){return this.layout.encode(this.encoder(t),i,r)}getSpan(t,i){return this.layout.getSpan(t,i)}};function a(n){return new ct(M(32),e=>new Ei(e),e=>e.toBuffer(),n)}function de(n){return new ct($n(),Di,Wi,n)}function Di(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function Wi(n){return n?1:0}function ao(n,e){let t=Rt("length"),i=f([t,g(n,to(t,-t.span),"values")]);return new ct(i,({values:r})=>r,r=>({values:r}),e)}var dn=class extends jn{decode(e,t){return super.decode(e,t)}};function f(n,e,t){return new dn(n,e,t)}function g(n,e,t){let i,r=typeof e=="number"?e:oo(e)?e.toNumber():new Proxy(e,{get(c,m){if(!i){let l=Reflect.get(c,"count");i=oo(l)?l.toNumber():l,Reflect.set(c,"count",i)}return Reflect.get(c,m)},set(c,m,l){return m==="count"&&(i=l),Reflect.set(c,m,l)}});return eo(n,r,t)}var Ot=f([a("mint"),a("owner"),o("amount"),Q("delegateOption"),a("delegate"),p("state"),Q("isNativeOption"),o("isNative"),o("delegatedAmount"),Q("closeAuthorityOption"),a("closeAuthority")]);import{PublicKey as kP,SystemProgram as TP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as IP}from"@solana/spl-token";import{PublicKey as Ui}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Gi}from"@solana/spl-token";function be(n,e,t){return fe([n.toBuffer(),(t!=null?t:Gi).toBuffer(),e.toBuffer()],new Ui("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as w}from"@solana/web3.js";var pn=new w("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),fn=new w("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),yn=new w("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Mt=new w("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),zi=new w("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),uo=new w("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),bn=new w("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),gn=new w("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Yi=new w("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Xi=new w("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Pn=new w("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),co=new w("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),lo=new w("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),An=new w("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Qi=new w("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),mo=new w("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Zi=new w("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Hi=new w("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ji=new w("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),$i=new w("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ft=new w("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),po=new w("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ji=new w("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),fo=new w("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),yo=new w("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),bo=new w("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),er=new w("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),nd=new w("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),od=new w("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),tr=new w("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),nr=new w("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),lt={IDO_PROGRAM_ID_V1:Zi,IDO_PROGRAM_ID_V2:Hi,IDO_PROGRAM_ID_V3:ji,IDO_PROGRAM_ID_V4:$i},or={AMM_V4:gn,AMM_STABLE:Yi,CLMM_PROGRAM_ID:Pn,CLMM_LOCK_PROGRAM_ID:co,CLMM_LOCK_AUTH_ID:lo,FARM_PROGRAM_ID_V3:pn,FARM_PROGRAM_ID_V4:fn,FARM_PROGRAM_ID_V5:yn,FARM_PROGRAM_ID_V6:Mt,OPEN_BOOK_PROGRAM:uo,SERUM_PROGRAM_ID_V3:bn,UTIL1216:zi,Router:Qi,CREATE_CPMM_POOL_PROGRAM:Ft,CREATE_CPMM_POOL_AUTH:po,CREATE_CPMM_POOL_FEE_ACC:Ji,LOCK_CPMM_PROGRAM:fo,LOCK_CPMM_AUTH:yo,LAUNCHPAD_PROGRAM:bo,LAUNCHPAD_AUTH:er,LAUNCHPAD_PLATFORM:tr,LAUNCHPAD_CONFIG:nr,FEE_DESTINATION_ID:mo,MODEL_DATA_PUBKEY:An},Ce={OPEN_BOOK_PROGRAM:new w("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new w("Ray1111111111111111111111111111111111111111"),AMM_V4:new w("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new w("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new w("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new w("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new w("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new w("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new w("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new w("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new w("DRay25Usp3YJAi7beckgpGUC7mG