UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 91.8 kB
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 hs(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||{}),Os=1;async function Xt({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 Ps 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 Yt=(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))(Yt||{}),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&&gt.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&&gt.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 Y,SystemProgram as qn,SYSVAR_RENT_PUBKEY as di}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pi}from"@solana/spl-token";function De({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var fi=[De({pubkey:pi,isWritable:!1}),De({pubkey:qn.programId,isWritable:!1}),De({pubkey:di,isWritable:!1})];function Zt({publicKey:n,transformSol:e}){let t=Ht(n.toString());if(t instanceof Y)return e&&t.equals(Me)?pe:t;if(e&&t.toString()===Me.toBase58())return pe;if(typeof t=="string"){if(t===Y.default.toBase58())return Y.default;try{return new Y(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Ht(n){try{return new Y(n)}catch{return n}}var jt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),We=new Y("SysvarRent111111111111111111111111111111111"),yi=new Y("SysvarC1ock11111111111111111111111111111111"),kt=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),bi=new Y("Sysvar1nstructions1111111111111111111111111"),Un=qn.programId,lu=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),mu=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),du=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),pu=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),fu=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),yu=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),bu=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),gu=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Pu=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Au=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),wu=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),pe=new Y("So11111111111111111111111111111111111111112"),Me=Y.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 UC}from"lodash";import Gu 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 pc=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 Fm,SystemProgram as vm}from"@solana/web3.js";import{AccountLayout as Wm,createAssociatedTokenAccountIdempotentInstruction as qm,TOKEN_PROGRAM_ID as Um,TOKEN_2022_PROGRAM_ID as Gm}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 Ge}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 Ge({key:l,state:Ge.deserialize(m.data)});r[l.toString()]=d,t==="devnet"?Ue[l.toString()]=d:qe[l.toString()]=d}return r}var qe={},rn=async n=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(qe[e])return qe;let t=new nn(e),i=await n.getAccountInfo(t);return i&&(qe[e]=new Ge({key:t,state:Ge.deserialize(i.data)})),qe},Ue={},an=async n=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ue[e])return Ue;let t=new nn(e),i=await n.getAccountInfo(t);return i&&(Ue[e]=new Ge({key:t,state:Ge.deserialize(i.data)})),Ue};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 Xn,Keypair as Yn,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(Xn.setComputeUnitPrice({microLamports:n.microLamports})),t.push(ee.SetComputeUnitPrice)),n.units&&(e.push(Xn.setComputeUnitLimit({units:n.units})),t.push(ee.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function ze(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 Vc(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 _c(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=Yn.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 Ec(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=Yn.generate().publicKey)),e.push(Ii(t))}),console.log("simulate tx string:",e),e}function Dc(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 ze(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 ze(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 ze(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 ze(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=X=>{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=X.err?"error":"success"}k==null||k([...R]),X.err||O()};this.loopMultiTxStatus&&(G=setInterval(async()=>{var X;if(le){clearInterval(G);return}try{let ae=await this.connection.getTransaction(W,{commitment:"confirmed",maxSupportedTransactionVersion:0});ae&&(le=!0,clearInterval(G),ne({err:((X=ae.meta)==null?void 0:X.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,X=>{if(le){this.connection.removeSignatureListener(U);return}le=!0,ne(X)},"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 ze(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 X=await this.connection.sendTransaction(ne,{skipPreflight:W});await Bt(this.connection,X),U.push(X)}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,X=[],ae=async()=>{if(!U[ne])return;if(ne<R){X.push({txId:"",status:"success",signedTx:U[ne]}),h==null||h([...X]),ne++,ae();return}let Te=await this.connection.sendTransaction(U[ne],{skipPreflight:W});X.push({txId:Te,status:"sent",signedTx:U[ne]}),h==null||h([...X]),ne++;let Je=!1,Ee=null,yt=null,On=Re=>{Ee!==null&&clearInterval(Ee),yt!==null&&this.connection.removeSignatureListener(yt);let he=X.findIndex(Yo=>Yo.txId===Te);if(he>-1){if(X[he].status==="error"||X[he].status==="success")return;X[he].status=Re.err?"error":"success"}h==null||h([...X]),Re.err||ae()};this.loopMultiTxStatus&&(Ee=setInterval(async()=>{var Re;if(Je){clearInterval(Ee);return}try{let he=await this.connection.getTransaction(Te,{commitment:"confirmed",maxSupportedTransactionVersion:0});he&&(Je=!0,clearInterval(Ee),On({err:((Re=he.meta)==null?void 0:Re.err)||null}),console.log("tx status from getTransaction:",Te))}catch(he){Je=!0,clearInterval(Ee),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 X=0;X<U.length;X+=1){let ae=await this.connection.sendTransaction(U[X],{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 dm,SystemProgram as fm}from"@solana/web3.js";import gm from"bn.js";import{createCloseAccountInstruction as km,createInitializeAccountInstruction as Tm,createTransferInstruction as hm,TOKEN_PROGRAM_ID as Im}from"@solana/spl-token";import{Keypair as Jl,PublicKey as em}from"@solana/web3.js";import om from"bn.js";import{TOKEN_PROGRAM_ID as am}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 rl,blob as Ki,Blob as al,cstr as sl,f32 as ul,f32be as cl,f64 as ll,f64be as ml,greedy as dl,Layout as Ci,ns64 as pl,ns64be as fl,nu64 as Ri,nu64be as yl,offset as Li,s16 as bl,s16be as gl,s24 as Pl,s24be as Al,s32 as Oi,s32be as wl,s40 as kl,s40be as Tl,s48 as hl,s48be as Il,s8 as Bl,seq as Ni,struct as Sl,Structure as Mi,u16 as Fi,u16be as xl,u24 as Kl,u24be as Cl,u32 as vi,u32be as Rl,u40 as Ll,u40be as Ol,u48 as Nl,u48be as Ml,u8 as Vi,UInt as _i,union as Fl,Union as vl,unionLayoutDiscriminator as Vl,utf8 as _l}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 Ye(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"),Xi=new w("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Yi=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"),td=new w("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),nd=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:Xi,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