UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 90.9 kB
var zo=Object.defineProperty,Xo=Object.defineProperties;var Yo=Object.getOwnPropertyDescriptors;var yt=Object.getOwnPropertySymbols;var Nn=Object.prototype.hasOwnProperty,Mn=Object.prototype.propertyIsEnumerable;var On=(n,e,t)=>e in n?zo(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,K=(n,e)=>{for(var t in e||(e={}))Nn.call(e,t)&&On(n,t,e[t]);if(yt)for(var t of yt(e))Mn.call(e,t)&&On(n,t,e[t]);return n},v=(n,e)=>Xo(n,Yo(e));var ge=(n,e)=>{var t={};for(var i in n)Nn.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&yt)for(var i of yt(n))e.indexOf(i)<0&&Mn.call(n,i)&&(t[i]=n[i]);return t};import{PublicKey as Vn}from"@solana/web3.js";import{get as Wt,set as Fn}from"lodash";var Qo=(r=>(r[r.Error=0]="Error",r[r.Warning=1]="Warning",r[r.Info=2]="Info",r[r.Debug=3]="Debug",r))(Qo||{}),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}),Fn(Ut,n,e)}return e}function ds(n,e){Fn(vn,n,e);let t=Wt(Ut,n);t&&(t.level=e)}import{MINT_SIZE as Zo,TOKEN_PROGRAM_ID as Ho,getTransferFeeConfig as jo,unpackMint as $o}from"@solana/spl-token";var Gt=V("Raydium_accountInfo_util");async function Pe(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}}),p=zt(d,10);l=(await(await Promise.all(p.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:w,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:w,owner:new Vn(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 Pe(n,e.map(r=>r.pubkey),t);return e.map((r,c)=>v(K({},r),{accountInfo:i[c]}))}var Jo=(i=>(i[i.Uninitialized=0]="Uninitialized",i[i.Mint=1]="Mint",i[i.Account=2]="Account",i))(Jo||{}),ks=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<Zo){console.log("invalid mint account",d.pubkey.toBase58());continue}let p=$o(d.pubkey,d.accountInfo,(c=d.accountInfo)==null?void 0:c.owner);r[d.pubkey.toString()]=v(K({},p),{programId:((m=d.accountInfo)==null?void 0:m.owner)||Ho,feeConfig:(l=jo(p))!=null?l:void 0})}return r[Vn.default.toBase58()]=r[Ae.toBase58()],r}import j from"bn.js";import ss from"decimal.js";import ai from"big.js";import Ke from"bn.js";import ei from"toformat";var ti=ei,Je=ti;import gt from"big.js";import ni from"bn.js";import oi from"decimal.js-light";import et 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||{}),_n=9007199254740991;function Z(n){let e=V("Raydium_parseBigNumberish");if(n instanceof et)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new et(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=_n||n<=-_n)&&e.logWithError(`BigNumberish number overflow: ${n}`),new et(String(n))):typeof n=="bigint"?new et(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new et(0))}var bt=V("module/fraction"),Qt=Je(gt),tt=Je(oi),ii={[0]:tt.ROUND_DOWN,[1]:tt.ROUND_HALF_UP,[2]:tt.ROUND_UP},ri={[0]:gt.roundDown,[1]:gt.roundHalfUp,[2]:gt.roundUp},L=class{constructor(e,t=new ni(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)||bt.logWithError(`${e} is not an integer.`),e<=0&&bt.logWithError(`${e} is not positive.`),tt.set({precision:e+1,rounding:ii[i]});let r=new tt(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)||bt.logWithError(`${e} is not an integer.`),e<0&&bt.logWithError(`${e} is negative.`),Qt.DP=e,Qt.RM=ri[i]||1,new Qt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var si=V("Raydium_amount"),Pt=Je(ai);function En(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")):si.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),p=new Ke(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,A]=En(i.toString(),t.decimals);d=Z(b),p=Z(A)}d=d.mul(l),m=d.add(p)}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 Pt.DP=this.token.decimals,new Pt(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),p=new Ke(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,A]=En(i.toString(),t.decimals);d=Z(b),p=Z(A)}d=d.mul(l),m=d.add(p)}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 Pt.DP=this.currency.decimals,new Pt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as ui}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Dn}from"@solana/spl-token";var At={chainId:101,address:ui.default.toBase58(),programId:Dn.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:Dn.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 Wn,SYSVAR_RENT_PUBKEY as ci}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as li}from"@solana/spl-token";function Ee({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var mi=[Ee({pubkey:li,isWritable:!1}),Ee({pubkey:Wn.programId,isWritable:!1}),Ee({pubkey:ci,isWritable:!1})];function Zt({publicKey:n,transformSol:e}){let t=Ht(n.toString());if(t instanceof Y)return e&&t.equals(Me)?Ae:t;if(e&&t.toString()===Me.toBase58())return Ae;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"),nt=new Y("SysvarRent111111111111111111111111111111111"),Js=new Y("SysvarC1ock11111111111111111111111111111111"),wt=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),di=new Y("Sysvar1nstructions1111111111111111111111111"),pi=Wn.programId,eu=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),tu=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),nu=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ou=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),iu=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ru=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),au=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),su=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),uu=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),cu=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),lu=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ae=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(At);import fi from"bn.js";var qn=new L(new fi(100)),me=class extends L{toSignificant(e=5,t,i){return this.mul(qn).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(qn).toFixed(e,t,i)}};var yi=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&&yi.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 sC}from"lodash";import Mu from"axios";var Un={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_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",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"},bi=v(K({},Un),{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 oc=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 Sm,SystemProgram as xm}from"@solana/web3.js";import{AccountLayout as Om,createAssociatedTokenAccountIdempotentInstruction as Nm,TOKEN_PROGRAM_ID as Mm,TOKEN_2022_PROGRAM_ID as Fm}from"@solana/spl-token";import{PublicKey as Ge,sendAndConfirmTransaction as un,SystemProgram as Ti,Transaction as at,TransactionMessage as st,VersionedTransaction as ut}from"@solana/web3.js";import hi from"axios";import{PublicKey as nn,AddressLookupTableAccount as qe}from"@solana/web3.js";async function on({connection:n,address:e,cluster:t="mainnet"}){let i=await Pe(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 qe({key:l,state:qe.deserialize(m.data)});r[l.toString()]=d,t==="devnet"?We[l.toString()]=d:De[l.toString()]=d}return r}var De={},rn=async n=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(De[e])return De;let t=new nn(e),i=await n.getAccountInfo(t);return i&&(De[e]=new qe({key:t,state:qe.deserialize(i.data)})),De},We={},an=async n=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(We[e])return We;let t=new nn(e),i=await n.getAccountInfo(t);return i&&(We[e]=new qe({key:t,state:qe.deserialize(i.data)})),We};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 Gn,Keypair as zn,PublicKey as Xn,Transaction as Tt,TransactionMessage as Pi,VersionedTransaction as sn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ai}from"@solana/spl-token";var Se=V("Raydium_txUtil"),Yn=1644;function ht(n){let e=[],t=[];return n.microLamports&&(e.push(Gn.setComputeUnitPrice({microLamports:n.microLamports})),t.push(ee.SetComputeUnitPrice)),n.units&&(e.push(Gn.setComputeUnitLimit({units:n.units})),t.push(ee.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Ue(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 It(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 Bt(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 Tt;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...n);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Yn}catch{return!1}}async function Sc(n,e,t,i=!0){let r=new Xn("RaydiumSimuLateTransaction11111111111111111"),c=[],m=new Tt;m.feePayer=r;for(let p of e)Bt([...m.instructions,p],[r])||(c.push(m),m=new Tt,m.feePayer=r),m.add(p);m.instructions.length>0&&c.push(m);let l=[];try{if(l=await wi(n,c,i),l.find(p=>p.err!==null))throw Error("rpc simulateTransaction error")}catch(p){p instanceof Error&&Se.logWithError("failed to simulate for instructions","RPC_ERROR",{message:p.message})}let d=[];for(let p of l)if(Se.debug("simulate result:",p),p.logs){let b=p.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 xc(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 Kc(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 pe(n,e){let[t,i]=Xn.findProgramAddressSync(n,e);return{publicKey:t,nonce:i}}async function wi(n,e,t){let i=[];if(t){let r=await n.getLatestBlockhash(),c=[];for(let p of e){p.recentBlockhash=r.blockhash,p.lastValidBlockHeight=r.lastValidBlockHeight;let A=p._compile().serialize(),B=p._serialize(A).toString("base64");c.push(B)}let m=c.map(p=>{let b=n._buildArgs([p],void 0,"base64");return{methodName:"simulateTransaction",args:b}}),l=[],d=20;for(let p=0;p<Math.ceil(m.length/d);p++)l.push(m.slice(p*d,(p+1)*d));i=await(await Promise.all(l.map(async p=>(await n._rpcBatchRequest(p)).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 Bt(n,[e,...t])}function rt({instructions:n,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=zn.generate().publicKey.toString()}){let c=new Pi({payerKey:e,recentBlockhash:i,instructions:n}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new sn(c).serialize()).toString("base64").length<Yn}catch{return!1}}var kt={time:0,data:void 0};async function Cc(n){if(!kt.data||(Date.now()-kt.time)/1e3>30){let e=await n.getEpochInfo();return kt={time:Date.now(),data:e},e}else return kt.data}var Qn=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n),ki=n=>{let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof sn&&(e=Qn(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 Tt&&(t.recentBlockhash||(t.recentBlockhash=Ai.toBase58()),t.feePayer||(t.feePayer=zn.generate().publicKey)),e.push(ki(t))}),console.log("simulate tx string:",e),e}function Rc(n){let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});return n instanceof sn&&(e=Qn(e)),e.toString("base64")}var St=2e3,xt=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 hi.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}=ht(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Ti.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Ge(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!==Ge.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||{},p=c!=null?c:await Ue(this.connection,this.blockhashCommitment);if(t.recentBlockhash=p,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 p;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(p=this.owner)!=null&&p.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:w=!0}=b||{},I=F!=null?F:await Ue(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(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});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:w})))),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=[],k=async()=>{if(!E[D])return;let T=await this.connection.sendRawTransaction(E[D].serialize(),{skipPreflight:w});P.push({txId:T,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===T);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||k()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var G;if(R){clearInterval(O);return}try{let U=await this.connection.getTransaction(T,{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:",T))}catch(U){R=!0,clearInterval(O),console.error("getTransaction timeout:",U,T)}},St)),W=this.connection.onSignature(T,G=>{if(R){this.connection.removeSignatureListener(W);return}R=!0,le(G)},"confirmed"),this.connection.getSignatureStatus(T)};return await k(),{txIds:P.map(T=>T.txId),signedTxs:E}}else{let D=[];for(let P=0;P<E.length;P+=1){let k=await this.connection.sendRawTransaction(E[P].serialize(),{skipPreflight:w});D.push(k)}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 w;let F=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:r,recentBlockhash:c}=F,m=ge(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])),p=[];for(let I of d)l[I]===void 0&&p.push(new Ge(I));let b=await on({connection:this.connection,address:p});for(let[I,x]of Object.entries(b))l[I]=x;let A=r?Ge.default.toBase58():c!=null?c:await Ue(this.connection,this.blockhashCommitment),C=new st({payerKey:this.feePayer,recentBlockhash:A,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(l));((w=this.owner)==null?void 0:w.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 It(this.connection,P),{txId:P,signedTx:B}}if(this.signAllTransactions){let P=await this.signAllTransactions([B]);if(this.signers.length)for(let k of P)try{k.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 p;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(p=this.owner)!=null&&p.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 w;let{sequentially:A,onTxUpdate:C,recentBlockHash:B,skipPreflight:F=!0}=b||{};if(B&&m.forEach(I=>I.message.recentBlockhash=B),Fe(m),(w=this.owner)!=null&&w.isKeyPair){if(A){let I=[];for(let x of m){let S=await this.connection.sendTransaction(x,{skipPreflight:F});await It(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,k=null,T=null,R=O=>{k!==null&&clearInterval(k),T!==null&&this.connection.removeSignatureListener(T);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&&(k=setInterval(async()=>{var O;if(P){clearInterval(k);return}try{let W=await this.connection.getTransaction(D,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(P=!0,clearInterval(k),R({err:((O=W.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",D))}catch(W){P=!0,clearInterval(k),console.error("getTransaction timeout:",W,D)}},St)),T=this.connection.onSignature(D,O=>{if(P){this.connection.removeSignatureListener(T);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=ge(A,["splitIns","computeBudgetConfig"]),c=i?ht(i):{instructions:[],instructionTypes:[]},m=this.signers.reduce((B,F)=>v(K({},B),{[F.publicKey.toBase58()]:F}),{}),l=[],d=[],p=[],b=0;if(this.allInstructions.forEach(B=>{let F=[...p,B],w=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 Ge(S));if(B!==t[b]&&p.length<12&&(it({instructions:w,payer:this.feePayer,signers:x})||it({instructions:F,payer:this.feePayer,signers:x})))p.push(B);else{if(p.length===0)throw Error("item ins too big");b+=B===t[b]?1:0,it({instructions:i?[...c.instructions,...p]:[...p],payer:this.feePayer,signers:x})?l.push(new at().add(...c.instructions,...p)):l.push(new at().add(...p)),d.push(Array.from(new Set(p.map(S=>S.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(S=>m[S]).filter(S=>S!==void 0)),p=[B]}}),p.length>0){let F=[...new Set(p.map(w=>w.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(w=>m[w]).filter(w=>w!==void 0);it({instructions:i?[...c.instructions,...p]:[...p],payer:this.feePayer,signers:F.map(w=>w.publicKey)})?l.push(new at().add(...c.instructions,...p)):l.push(new at().add(...p)),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:w,skipTxCount:I=0,recentBlockHash:x,skipPreflight:S=!0}=B||{},E=x!=null?x:await Ue(this.connection,this.blockhashCommitment);if(l.forEach(async(P,k)=>{P.recentBlockhash=E,d[k].length&&P.sign(...d[k])}),Fe(l),(D=this.owner)!=null&&D.isKeyPair){if(F){let P=0,k=[];for(let T of l){if(++P,P<=I){k.push("tx skipped");continue}let R=await un(this.connection,T,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});k.push(R)}return{txIds:k,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)),k=[...l.slice(0,I),...P];if(F){let T=0,R=[],O=async()=>{if(!k[T])return;T<I&&(R.push({txId:"",status:"success",signedTx:k[T]}),w==null||w([...R]),T++,O());let W=await this.connection.sendRawTransaction(k[T].serialize(),{skipPreflight:S});R.push({txId:W,status:"sent",signedTx:k[T]}),w==null||w([...R]),T++;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"}w==null||w([...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)}},St)),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:k}}else{let T=[];for(let R=0;R<k.length;R+=1){let O=await this.connection.sendRawTransaction(k[R].serialize(),{skipPreflight:S});T.push(O)}return{txIds:T,signedTxs:k}}}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=ge(E,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),d=K(K({},this.cluster==="devnet"?await an(this.connection):await rn(this.connection)),r),p=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let P of p)d[P]===void 0&&b.push(new Ge(P));let A=await on({connection:this.connection,address:b});for(let[P,k]of Object.entries(A))d[P]=k;let C=t?ht(t):{instructions:[],instructionTypes:[]},B=await Ue(this.connection,this.blockhashCommitment),F=this.signers.reduce((P,k)=>v(K({},P),{[k.publicKey.toBase58()]:k}),{}),w=[],I=[],x=[],S=0;if(this.allInstructions.forEach(P=>{let k=[...x,P],T=t?[...C.instructions,...k]:k;if(P!==i[S]&&x.length<m&&(rt({instructions:T,payer:this.feePayer,lookupTableAddressAccount:d})||rt({instructions:k,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(p)])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));w.push(new ut(O))}else{let O=new st({payerKey:this.feePayer,recentBlockhash:B,instructions:[...x]}).compileToV0Message(Object.values(d));w.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 k=[...new Set(x.map(T=>T.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(T=>F[T]).filter(T=>T!==void 0);if(t&&rt({instructions:[...C.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:B})){let T=new st({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...x]}).compileToV0Message(Object.values(d));w.push(new ut(T))}else{let T=new st({payerKey:this.feePayer,recentBlockhash:B,instructions:[...x]}).compileToV0Message(Object.values(d));w.push(new ut(T))}I.push(k)}return(D=this.owner)!=null&&D.signer&&I.forEach(P=>{P.some(k=>k.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),w.forEach((P,k)=>{P.sign(I[k])}),{builder:this,transactions:w,buildProps:e,signers:I,instructionTypes:this.instructionTypes,execute:async P=>{var le;let{sequentially:k,onTxUpdate:T,skipTxCount:R=0,recentBlockHash:O,skipPreflight:W=!0}=P||{};if(w.map(async(G,U)=>{I[U].length&&G.sign(I[U]),O&&(G.message.recentBlockhash=O)}),Fe(w),(le=this.owner)!=null&&le.isKeyPair){if(k){let G=0,U=[];for(let ne of w){if(++G,G<=R){console.log("skip tx: ",G),U.push("tx skipped");continue}let X=await this.connection.sendTransaction(ne,{skipPreflight:W});await It(this.connection,X),U.push(X)}return{txIds:U,signedTxs:w}}return{txIds:await Promise.all(w.map(async G=>await this.connection.sendTransaction(G,{skipPreflight:W}))),signedTxs:w}}if(this.signAllTransactions){let G=await this.signAllTransactions(w.slice(R,w.length)),U=[...w.slice(0,R),...G];if(k){let ne=0,X=[],ae=async()=>{if(!U[ne])return;if(ne<R){X.push({txId:"",status:"success",signedTx:U[ne]}),T==null||T([...X]),ne++,ae();return}let Te=await this.connection.sendTransaction(U[ne],{skipPreflight:W});X.push({txId:Te,status:"sent",signedTx:U[ne]}),T==null||T([...X]),ne++;let $e=!1,_e=null,ft=null,Ln=Re=>{_e!==null&&clearInterval(_e),ft!==null&&this.connection.removeSignatureListener(ft);let he=X.findIndex(Go=>Go.txId===Te);if(he>-1){if(X[he].status==="error"||X[he].status==="success")return;X[he].status=Re.err?"error":"success"}T==null||T([...X]),Re.err||ae()};this.loopMultiTxStatus&&(_e=setInterval(async()=>{var Re;if($e){clearInterval(_e);return}try{let he=await this.connection.getTransaction(Te,{commitment:"confirmed",maxSupportedTransactionVersion:0});he&&($e=!0,clearInterval(_e),Ln({err:((Re=he.meta)==null?void 0:Re.err)||null}),console.log("tx status from getTransaction:",Te))}catch(he){$e=!0,clearInterval(_e),console.error("getTransaction timeout:",he,Te)}},St)),ft=this.connection.onSignature(Te,Re=>{if($e){this.connection.removeSignatureListener(ft);return}$e=!0,Ln(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(", "),ce=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=V(t)}createTxBuilder(e){return this.scope.checkOwner(),new xt({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 om,SystemProgram as rm}from"@solana/web3.js";import um from"bn.js";import{createCloseAccountInstruction as dm,createInitializeAccountInstruction as pm,createTransferInstruction as fm,TOKEN_PROGRAM_ID as ym}from"@solana/spl-token";import{Keypair as Gl,PublicKey as zl}from"@solana/web3.js";import Ql from"bn.js";import{TOKEN_PROGRAM_ID as jl}from"@solana/spl-token";import{PublicKey as Fi}from"@solana/web3.js";import Jn,{isBN as eo}from"bn.js";import{bits as Ii,BitStructure as Zc,blob as Bi,Blob as Hc,cstr as jc,f32 as $c,f32be as Jc,f64 as el,f64be as tl,greedy as nl,Layout as Si,ns64 as ol,ns64be as il,nu64 as rl,nu64be as al,offset as xi,s16 as sl,s16be as ul,s24 as cl,s24be as ll,s32 as Ki,s32be as ml,s40 as dl,s40be as pl,s48 as fl,s48be as yl,s8 as bl,seq as Ci,struct as gl,Structure as Ri,u16 as Li,u16be as Pl,u24 as Al,u24be as wl,u32 as Oi,u32be as kl,u40 as Tl,u40be as hl,u48 as Il,u48be as Bl,u8 as Ni,UInt as Mi,union as Sl,Union as xl,unionLayoutDiscriminator as Kl,utf8 as Cl}from"@solana/buffer-layout";var Kt=Si,Zn=Ri;var ln=Mi;var Hn=Ni,te=Li;var Ct=Oi;var fe=Ki;var jn=Ci;var M=Bi;var mn=Ii,$n=xi;var ve=class extends Kt{constructor(t,i,r){super(t,r);this.blob=M(t),this.signed=i}decode(t,i=0){let r=new Jn(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 Jn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,r)}},Rt=class extends Kt{constructor(t){super(8,t);this._lower=mn(Ct(),!1),this._upper=mn(Ct(),!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 f(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 to(n){return new ve(1,!0,n)}function ze(n){return new ve(8,!0,n)}function no(n){return new ve(16,!0,n)}var ct=class extends Kt{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 Fi(e),e=>e.toBuffer(),n)}function de(n){return new ct(Hn(),vi,Vi,n)}function vi(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function Vi(n){return n?1:0}function oo(n,e){let t=Ct("length"),i=y([t,g(n,$n(t,-t.span),"values")]);return new ct(i,({values:r})=>r,r=>({values:r}),e)}var dn=class extends Zn{decode(e,t){return super.decode(e,t)}};function y(n,e,t){return new dn(n,e,t)}function g(n,e,t){let i,r=typeof e=="number"?e:eo(e)?e.toNumber():new Proxy(e,{get(c,m){if(!i){let l=Reflect.get(c,"count");i=eo(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 jn(n,r,t)}var Lt=y([a("mint"),a("owner"),o("amount"),Q("delegateOption"),a("delegate"),f("state"),Q("isNativeOption"),o("isNative"),o("delegatedAmount"),Q("closeAuthorityOption"),a("closeAuthority")]);import{PublicKey as yP,SystemProgram as bP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as PP}from"@solana/spl-token";import{PublicKey as Ei}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Di}from"@solana/spl-token";function ye(n,e,t){return pe([n.toBuffer(),(t!=null?t:Di).toBuffer(),e.toBuffer()],new Ei("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as h}from"@solana/web3.js";var pn=new h("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),fn=new h("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),yn=new h("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Nt=new h("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Wi=new h("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ro=new h("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),bn=new h("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),gn=new h("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),qi=new h("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ui=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Pn=new h("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ao=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),so=new h("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),An=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Gi=new h("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),uo=new h("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Mt=new h("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),co=new h("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),zi=new h("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),lo=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),mo=new h("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),po=new h("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Xi=new h("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Xm=new h("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Ym=new h("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Yi=new h("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Qi=new h("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Zi={AMM_V4:gn,AMM_STABLE:qi,CLMM_PROGRAM_ID:Pn,CLMM_LOCK_PROGRAM_ID:ao,CLMM_LOCK_AUTH_ID:so,FARM_PROGRAM_ID_V3:pn,FARM_PROGRAM_ID_V4:fn,FARM_PROGRAM_ID_V5:yn,FARM_PROGRAM_ID_V6:Nt,OPEN_BOOK_PROGRAM:ro,SERUM_PROGRAM_ID_V3:bn,UTIL1216:Wi,Router:Gi,CREATE_CPMM_POOL_PROGRAM:Mt,CREATE_CPMM_POOL_AUTH:co,CREATE_CPMM_POOL_FEE_ACC:zi,LOCK_CPMM_PROGRAM:lo,LOCK_CPMM_AUTH:mo,LAUNCHPAD_PROGRAM:po,LAUNCHPAD_AUTH:Xi,LAUNCHPAD_PLATFORM:Yi,LAUNCHPAD_CONFIG:Qi,FEE_DESTINATION_ID:uo,MODEL_DATA_PUBKEY:An},Ce={OPEN_BOOK_PROGRAM:new h("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new h("Ray1111111111111111111111111111111111111111"),AMM_V4:new h("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new h("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new h("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new h("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new h("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new h("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new h("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new h("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new h("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new h("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:h.default,Router:new h("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new h("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new h("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new h("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L