@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 91 kB
JavaScript
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 ps(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||{}),Ts=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 us 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"),eu=new Y("SysvarC1ock11111111111111111111111111111111"),wt=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),di=new Y("Sysvar1nstructions1111111111111111111111111"),pi=Wn.programId,tu=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),nu=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ou=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),iu=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ru=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),au=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),su=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),uu=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),cu=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),lu=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),mu=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 lC}from"lodash";import Fu 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 ic=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 xm,SystemProgram as Km}from"@solana/web3.js";import{AccountLayout as Nm,createAssociatedTokenAccountIdempotentInstruction as Mm,TOKEN_PROGRAM_ID as Fm,TOKEN_2022_PROGRAM_ID as vm}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||{}),te={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(te.SetComputeUnitPrice)),n.units&&(e.push(Gn.setComputeUnitLimit({units:n.units})),t.push(te.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 xc(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 Kc(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 Cc(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 Rc(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 Lc(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(te.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(oe=>oe.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,oe=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),oe({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,oe(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 oe of w){if(++G,G<=R){console.log("skip tx: ",G),U.push("tx skipped");continue}let X=await this.connection.sendTransaction(oe,{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 oe=0,X=[],ae=async()=>{if(!U[oe])return;if(oe<R){X.push({txId:"",status:"success",signedTx:U[oe]}),T==null||T([...X]),oe++,ae();return}let Te=await this.connection.sendTransaction(U[oe],{skipPreflight:W});X.push({txId:Te,status:"sent",signedTx:U[oe]}),T==null||T([...X]),oe++;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 oe=[];for(let X=0;X<U.length;X+=1){let ae=await this.connection.sendTransaction(U[X],{skipPreflight:W});oe.push(ae)}return{txIds:oe,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 im,SystemProgram as am}from"@solana/web3.js";import cm from"bn.js";import{createCloseAccountInstruction as pm,createInitializeAccountInstruction as fm,createTransferInstruction as ym,TOKEN_PROGRAM_ID as bm}from"@solana/spl-token";import{Keypair as zl,PublicKey as Xl}from"@solana/web3.js";import Zl from"bn.js";import{TOKEN_PROGRAM_ID as $l}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 Hc,blob as Bi,Blob as jc,cstr as $c,f32 as Jc,f32be as el,f64 as tl,f64be as nl,greedy as ol,Layout as Si,ns64 as il,ns64be as rl,nu64 as al,nu64be as sl,offset as xi,s16 as ul,s16be as cl,s24 as ll,s24be as ml,s32 as Ki,s32be as dl,s40 as pl,s40be as fl,s48 as yl,s48be as bl,s8 as gl,seq as Ci,struct as Pl,Structure as Ri,u16 as Li,u16be as Al,u24 as wl,u24be as kl,u32 as Oi,u32be as Tl,u40 as hl,u40be as Il,u48 as Bl,u48be as Sl,u8 as Ni,UInt as Mi,union as xl,Union as Kl,unionLayoutDiscriminator as Cl,utf8 as Rl}from"@solana/buffer-layout";var Kt=Si,Zn=Ri;var ln=Mi;var Hn=Ni,J=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 AP,SystemProgram as wP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as TP}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"),Ym=new h("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Qm=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("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2