UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 79 kB
var ko=Object.defineProperty,To=Object.defineProperties;var ho=Object.getOwnPropertyDescriptors;var it=Object.getOwnPropertySymbols;var mn=Object.prototype.hasOwnProperty,dn=Object.prototype.propertyIsEnumerable;var ln=(i,t,n)=>t in i?ko(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,C=(i,t)=>{for(var n in t||(t={}))mn.call(t,n)&&ln(i,n,t[n]);if(it)for(var n of it(t))dn.call(t,n)&&ln(i,n,t[n]);return i},F=(i,t)=>To(i,ho(t));var se=(i,t)=>{var n={};for(var r in i)mn.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&it)for(var r of it(i))t.indexOf(r)<0&&dn.call(i,r)&&(n[r]=i[r]);return n};import Ao from"axios";import{PublicKey as So}from"@solana/web3.js";import{get as pn,set as Io}from"lodash";var xt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},fn={},Bo={};function E(i){let t=pn(fn,i);if(!t){let n=pn(Bo,i);t=new xt({name:i,logLevel:n}),Io(fn,i,t)}return t}import{MINT_SIZE as Ua,TOKEN_PROGRAM_ID as Ga,getTransferFeeConfig as za,unpackMint as Ya}from"@solana/spl-token";var Kt=E("Raydium_accountInfo_util");async function be(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=C({batchRequest:!1},n),d=Ct(t,m),p=new Array(d.length).fill([]);if(r){let y=d.map(h=>{let B=i._buildArgs([h.map(K=>K.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:B}}),P=Ct(y,10);p=(await(await Promise.all(P.map(async h=>await i._rpcBatchRequest(h)))).flat()).map(h=>(h.error&&Kt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${h.error.message}`),h.result.value.map(B=>{if(B){let{data:K,executable:M,lamports:w,owner:I,rentEpoch:x}=B;return K.length!==2&&K[1]!=="base64"&&Kt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(K[0],"base64"),executable:M,lamports:w,owner:new So(I),rentEpoch:x}}return null})))}else try{p=await Promise.all(d.map(y=>i.getMultipleAccountsInfo(y,u)))}catch(y){y instanceof Error&&Kt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return p.flat()}import Be from"bn.js";import UC from"decimal.js";import Mo from"big.js";import cs from"bn.js";import xo from"toformat";var Ko=xo,Ue=Ko;import at from"big.js";import Ro from"bn.js";import Lo from"decimal.js-light";import Ge from"bn.js";var yn=9007199254740991;function oe(i){let t=E("Raydium_parseBigNumberish");if(i instanceof Ge)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Ge(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=yn||i<=-yn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new Ge(String(i))):typeof i=="bigint"?new Ge(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new Ge(0))}var rt=E("module/fraction"),Rt=Ue(at),ze=Ue(Lo),Oo={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},No={[0]:at.roundDown,[1]:at.roundHalfUp,[2]:at.roundUp},U=class{constructor(t,n=new Ro(1)){this.numerator=oe(t),this.denominator=oe(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(oe(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(oe(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||rt.logWithError(`${t} is not an integer.`),t<=0&&rt.logWithError(`${t} is not positive.`),ze.set({precision:t+1,rounding:Oo[r]});let u=new ze(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||rt.logWithError(`${t} is not an integer.`),t<0&&rt.logWithError(`${t} is negative.`),Rt.DP=t,Rt.RM=No[r]||1,new Rt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Ps=E("Raydium_amount"),As=Ue(Mo);import{PublicKey as vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as bn}from"@solana/spl-token";var st={chainId:101,address:vo.default.toBase58(),programId:bn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},me={chainId:101,address:"So11111111111111111111111111111111111111112",programId:bn.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 Nt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as gn,SYSVAR_RENT_PUBKEY as Vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as _o}from"@solana/spl-token";function xe({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Eo=[xe({pubkey:_o,isWritable:!1}),xe({pubkey:gn.programId,isWritable:!1}),xe({pubkey:Vo,isWritable:!1})];function Lt({publicKey:i,transformSol:t}){let n=Pn(i.toString());if(n instanceof z)return t&&n.equals(we)?le:n;if(t&&n.toString()===we.toBase58())return le;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Pn(i){try{return new z(i)}catch{return i}}var Ot=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ke=new z("SysvarRent111111111111111111111111111111111"),Do=new z("SysvarC1ock11111111111111111111111111111111"),ut=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Wo=new z("Sysvar1nstructions1111111111111111111111111"),An=gn.programId,xs=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ks=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Cs=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Rs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ls=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Os=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ns=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ms=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Fs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),vs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Vs=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new z("So11111111111111111111111111111111111111112"),we=z.default;function ge(i){return Lt({publicKey:i,transformSol:!0})}var Mt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!1,isToken2022:d=!1}){if(t===we.toBase58()||t instanceof Nt&&we.equals(t)){this.decimals=me.decimals,this.symbol=me.symbol,this.name=me.name,this.mint=new Nt(me.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Nt.default:Lt({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Mt;ee.WSOL=new Mt(F(C({},me),{mint:me.address}));var Ft=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ct=Ft;ct.SOL=new Ft(st);import qo from"bn.js";var Zs=new U(new qo(100));var tu=E("Raydium_price");import{merge as UK}from"lodash";var Y={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},wn=F(C({},Y),{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 kn="ray_tab_hash",vt="ray_req_hash",Uo=()=>{if(typeof window===void 0)return"";let i=sessionStorage.getItem(kn);return i||(i=`ray-${Date.now()}`,sessionStorage.setItem(kn,i)),i},lt=async r=>{var u=r,{logCount:i=1e3,removeLastLog:t}=u,n=se(u,["logCount","removeLastLog"]);if(typeof window===void 0)return new Promise(d=>d());let m=JSON.parse(localStorage.getItem(vt)||"[]").slice(0,i-1);t&&m.pop(),new Blob([JSON.stringify(n.data)]).size>1024&&(n.data=JSON.stringify(n.data).substring(0,200)+"..."),m.unshift(F(C({},n),{time:Date.now(),session:Uo()}));try{localStorage.setItem(vt,JSON.stringify(m))}catch{if(t){let d=!1,p=JSON.stringify(n.data).substring(0,100);for(m[0].data=p+(p.length>100?"...":"");!d;){m.pop();let y=JSON.stringify(n.data).substring(0,100);m[0].data=y+(y.length>100?"...":"");try{localStorage.setItem(vt,JSON.stringify(m)),d=!0}catch{d=!1}}return new Promise(y=>y())}return lt(F(C({},n),{logCount:i,removeLastLog:!0}))}};import{PublicKey as Tl,SystemProgram as hl}from"@solana/web3.js";import{AccountLayout as Kl,createAssociatedTokenAccountIdempotentInstruction as Cl,TOKEN_PROGRAM_ID as Rl,TOKEN_2022_PROGRAM_ID as Ll}from"@solana/spl-token";import{PublicKey as Ne,sendAndConfirmTransaction as qt,SystemProgram as Zo,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import Ho from"axios";import{PublicKey as Vt,AddressLookupTableAccount as Le}from"@solana/web3.js";async function _t({connection:i,address:t,cluster:n="mainnet"}){let r=await be(i,[...new Set(t.map(m=>m.toString()))].map(m=>new Vt(m))),u={};for(let m=0;m<t.length;m++){let d=r[m],p=t[m];if(!d)continue;let y=new Le({key:p,state:Le.deserialize(d.data)});u[p.toString()]=y,n==="devnet"?Re[p.toString()]=y:Ce[p.toString()]=y}return u}var Ce={},Et=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ce[t])return Ce;let n=new Vt(t),r=await i.getAccountInfo(n);return r&&(Ce[t]=new Le({key:n,state:Le.deserialize(r.data)})),Ce},Re={},Dt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Re[t])return Re;let n=new Vt(t),r=await i.getAccountInfo(n);return r&&(Re[t]=new Le({key:n,state:Le.deserialize(r.data)})),Re};var Z={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 Tn,Keypair as In,PublicKey as Go,Transaction as Bn,TransactionMessage as zo,VersionedTransaction as Sn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yo}from"@solana/spl-token";var hn=E("Raydium_txUtil"),xn=1644;function mt(i){let t=[],n=[];return i.microLamports&&(t.push(Tn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Z.SetComputeUnitPrice)),i.units&&(t.push(Tn.setComputeUnitLimit({units:i.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Oe(i,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=i.getLatestBlockhash)==null?void 0:r.call(i,{commitment:n})))==null?void 0:u.blockhash}async function dt(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function Wt(i,t){i.length<1&&hn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&hn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Bn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<xn}catch{return!1}}function de(i,t){let[n,r]=Go.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Ye({instructions:i,payer:t,signers:n}){return Wt(i,[t,...n])}function Xe({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=In.generate().publicKey.toString()}){let m=new zo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Sn(m).serialize()).toString("base64").length<xn}catch{return!1}}var Xo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Qo=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Sn&&(t=Xo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(i){let t=[];return i.forEach(n=>{n instanceof Bn&&(n.recentBlockhash||(n.recentBlockhash=Yo.toBase58()),n.feePayer||(n.feePayer=In.generate().publicKey)),t.push(Qo(n))}),console.log("simulate tx string:",t),t}var pt=2e3,ft=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.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 r;let t=(await Ho.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=mt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Zo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ne(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...d.filter(p=>p!==Ne.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(F(C({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Qe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:m,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:y}=u||{},P=m!=null?m:await Oe(this.connection,this.blockhashCommitment);if(n.recentBlockhash=P,this.signers.length&&n.sign(...this.signers),ke([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await qt(this.connection,n,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:d}),signedTx:n};if(this.signAllTransactions){let h=await this.signAllTransactions([n]);if(this.signers.length)for(let B of h)try{B.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(h[0].serialize(),{skipPreflight:d}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var P;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),m=n.filter(b=>b.transaction.instructions.length>0),d=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],y=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(b=>{b.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:p,instructionTypes:y,execute:async b=>{var x;let{sequentially:h,onTxUpdate:B,skipTxCount:K=0,recentBlockHash:M,skipPreflight:w=!0}=b||{},I=M!=null?M:await Oe(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(h){let S=[],v=0;for(let V of d){if(++v,v<=K)continue;let g=await qt(this.connection,V,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});S.push(g)}return{txIds:S,signedTxs:d}}return{txIds:await await Promise.all(d.map(async S=>(S.recentBlockhash=I,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:w})))),signedTxs:d}}if(this.signAllTransactions){let S=d.map((V,g)=>(V.recentBlockhash=I,p[g].length&&V.sign(...p[g]),V));ke(S);let v=await this.signAllTransactions(S);if(h){let V=0,g=[],k=async()=>{if(!v[V])return;let T=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:w});g.push({txId:T,status:"sent",signedTx:v[V]}),B==null||B([...g]),V++;let R=!1,L=null,_=null,re=q=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let W=g.findIndex($=>$.txId===T);if(W>-1){if(g[W].status==="error"||g[W].status==="success")return;g[W].status=q.err?"error":"success"}B==null||B([...g]),q.err||k()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(R){clearInterval(L);return}try{let W=await this.connection.getTransaction(T,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(R=!0,clearInterval(L),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",T))}catch(W){R=!0,clearInterval(L),console.error("getTransaction timeout:",W,T)}},pt)),_=this.connection.onSignature(T,q=>{if(R){this.connection.removeSignatureListener(_);return}R=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(T)};return await k(),{txIds:g.map(T=>T.txId),signedTxs:v}}else{let V=[];for(let g=0;g<v.length;g+=1){let k=await this.connection.sendRawTransaction(v[g].serialize(),{skipPreflight:w});V.push(k)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var w;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:m}=M,d=se(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=C(C({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),n),y=Array.from(new Set([...r,...this.lookupTableAddress])),P=[];for(let I of y)p[I]===void 0&&P.push(new Ne(I));let b=await _t({connection:this.connection,address:P});for(let[I,x]of Object.entries(b))p[I]=x;let h=u?Ne.default.toBase58():m!=null?m:await Oe(this.connection,this.blockhashCommitment),B=new Ze({payerKey:this.feePayer,recentBlockhash:h,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((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 K=new He(B);return K.sign(this.signers),{builder:this,transaction:K,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var V;let{skipPreflight:x=!0,sendAndConfirm:S,notSendToRpc:v}=I||{};if(ke([K]),(V=this.owner)!=null&&V.isKeyPair){let g=await this.connection.sendTransaction(K,{skipPreflight:x});return S&&await dt(this.connection,g),{txId:g,signedTx:K}}if(this.signAllTransactions){let g=await this.signAllTransactions([K]);if(this.signers.length)for(let k of g)try{k.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(g[0],{skipPreflight:x}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var P;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),m=n.filter(b=>b.builder.instructions.length>0),d=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],y=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(b=>{b.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(b,h)=>{b.sign(p[h])}),{builder:this,transactions:d,signers:p,instructionTypes:y,buildProps:r,execute:async b=>{var w;let{sequentially:h,onTxUpdate:B,recentBlockHash:K,skipPreflight:M=!0}=b||{};if(K&&d.forEach(I=>I.message.recentBlockhash=K),ke(d),(w=this.owner)!=null&&w.isKeyPair){if(h){let I=[];for(let x of d){let S=await this.connection.sendTransaction(x,{skipPreflight:M});await dt(this.connection,S),I.push(S)}return{txIds:I,signedTxs:d}}return{txIds:await Promise.all(d.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:M}))),signedTxs:d}}if(this.signAllTransactions){let I=await this.signAllTransactions(d);if(h){let x=0,S=[],v=async()=>{if(!I[x])return;let V=await this.connection.sendTransaction(I[x],{skipPreflight:M});S.push({txId:V,status:"sent",signedTx:I[x]}),B==null||B([...S]),x++;let g=!1,k=null,T=null,R=L=>{k!==null&&clearInterval(k),T!==null&&this.connection.removeSignatureListener(T);let _=S.findIndex(re=>re.txId===V);if(_>-1){if(S[_].status==="error"||S[_].status==="success")return;S[_].status=L.err?"error":"success"}B==null||B([...S]),L.err||v()};this.loopMultiTxStatus&&(k=setInterval(async()=>{var L;if(g){clearInterval(k);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(g=!0,clearInterval(k),R({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){g=!0,clearInterval(k),console.error("getTransaction timeout:",_,V)}},pt)),T=this.connection.onSignature(V,L=>{if(g){this.connection.removeSignatureListener(T);return}g=!0,R(L)},"confirmed"),this.connection.getSignatureStatus(V)};return v(),{txIds:[],signedTxs:I}}else{let x=[];for(let S=0;S<I.length;S+=1){let v=await this.connection.sendTransaction(I[S],{skipPreflight:M});x.push(v)}return{txIds:x,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var B;let h=t||{},{splitIns:n=[],computeBudgetConfig:r}=h,u=se(h,["splitIns","computeBudgetConfig"]),m=r?mt(r):{instructions:[],instructionTypes:[]},d=this.signers.reduce((K,M)=>F(C({},K),{[M.publicKey.toBase58()]:M}),{}),p=[],y=[],P=[],b=0;if(this.allInstructions.forEach(K=>{let M=[...P,K],w=r?[...m.instructions,...M]:M,x=[...new Set(M.map(S=>S.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(S=>new Ne(S));if(K!==n[b]&&P.length<12&&(Ye({instructions:w,payer:this.feePayer,signers:x})||Ye({instructions:M,payer:this.feePayer,signers:x})))P.push(K);else{if(P.length===0)throw Error("item ins too big");b+=K===n[b]?1:0,Ye({instructions:r?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:x})?p.push(new Qe().add(...m.instructions,...P)):p.push(new Qe().add(...P)),y.push(Array.from(new Set(P.map(S=>S.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(S=>d[S]).filter(S=>S!==void 0)),P=[K]}}),P.length>0){let M=[...new Set(P.map(w=>w.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(w=>d[w]).filter(w=>w!==void 0);Ye({instructions:r?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:M.map(w=>w.publicKey)})?p.push(new Qe().add(...m.instructions,...P)):p.push(new Qe().add(...P)),y.push(M)}return p.forEach(K=>K.feePayer=this.feePayer),(B=this.owner)!=null&&B.signer&&y.forEach(K=>{K.some(M=>M.publicKey.equals(this.owner.publicKey))||K.push(this.owner.signer)}),{builder:this,transactions:p,signers:y,instructionTypes:this.instructionTypes,execute:async K=>{var V;let{sequentially:M,onTxUpdate:w,skipTxCount:I=0,recentBlockHash:x,skipPreflight:S=!0}=K||{},v=x!=null?x:await Oe(this.connection,this.blockhashCommitment);if(p.forEach(async(g,k)=>{g.recentBlockhash=v,y[k].length&&g.sign(...y[k])}),ke(p),(V=this.owner)!=null&&V.isKeyPair){if(M){let g=0,k=[];for(let T of p){if(++g,g<=I){k.push("tx skipped");continue}let R=await qt(this.connection,T,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});k.push(R)}return{txIds:k,signedTxs:p}}return{txIds:await Promise.all(p.map(async g=>await this.connection.sendRawTransaction(g.serialize(),{skipPreflight:S}))),signedTxs:p}}if(this.signAllTransactions){let g=await this.signAllTransactions(p.slice(I,p.length)),k=[...p.slice(0,I),...g];if(M){let T=0,R=[],L=async()=>{if(!k[T])return;T<I&&(R.push({txId:"",status:"success",signedTx:k[T]}),w==null||w([...R]),T++,L());let _=await this.connection.sendRawTransaction(k[T].serialize(),{skipPreflight:S});R.push({txId:_,status:"sent",signedTx:k[T]}),w==null||w([...R]),T++;let re=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=R.findIndex(fe=>fe.txId===_);if(ne>-1){if(R[ne].status==="error"||R[ne].status==="success")return;R[ne].status=G.err?"error":"success"}w==null||w([...R]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(re=!0,clearInterval(q),$({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){re=!0,clearInterval(q),console.error("getTransaction timeout:",ne,_)}},pt)),W=this.connection.onSignature(_,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:R.map(_=>_.txId),signedTxs:k}}else{let T=[];for(let R=0;R<k.length;R+=1){let L=await this.connection.sendRawTransaction(k[R].serialize(),{skipPreflight:S});T.push(L)}return{txIds:T,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var V;let v=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:d=12}=v,p=se(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=C(C({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),u),P=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let g of P)y[g]===void 0&&b.push(new Ne(g));let h=await _t({connection:this.connection,address:b});for(let[g,k]of Object.entries(h))y[g]=k;let B=n?mt(n):{instructions:[],instructionTypes:[]},K=await Oe(this.connection,this.blockhashCommitment),M=this.signers.reduce((g,k)=>F(C({},g),{[k.publicKey.toBase58()]:k}),{}),w=[],I=[],x=[],S=0;if(this.allInstructions.forEach(g=>{let k=[...x,g],T=n?[...B.instructions,...k]:k;if(g!==r[S]&&x.length<d&&(Xe({instructions:T,payer:this.feePayer,lookupTableAddressAccount:y})||Xe({instructions:k,payer:this.feePayer,lookupTableAddressAccount:y})))x.push(g);else{if(x.length===0)throw Error("item ins too big");S+=g===r[S]?1:0;let R={};for(let L of[...new Set(P)])y[L]!==void 0&&(R[L]=y[L]);if(n&&Xe({instructions:[...B.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:K})){let L=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...B.instructions,...x]}).compileToV0Message(Object.values(y));w.push(new He(L))}else{let L=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...x]}).compileToV0Message(Object.values(y));w.push(new He(L))}I.push(Array.from(new Set(x.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),x=[g]}}),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=>M[T]).filter(T=>T!==void 0);if(n&&Xe({instructions:[...B.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:K})){let T=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...B.instructions,...x]}).compileToV0Message(Object.values(y));w.push(new He(T))}else{let T=new Ze({payerKey:this.feePayer,recentBlockhash:K,instructions:[...x]}).compileToV0Message(Object.values(y));w.push(new He(T))}I.push(k)}return(V=this.owner)!=null&&V.signer&&I.forEach(g=>{g.some(k=>k.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),w.forEach((g,k)=>{g.sign(I[k])}),{builder:this,transactions:w,buildProps:t,signers:I,instructionTypes:this.instructionTypes,execute:async g=>{var re;let{sequentially:k,onTxUpdate:T,skipTxCount:R=0,recentBlockHash:L,skipPreflight:_=!0}=g||{};if(w.map(async(q,W)=>{I[W].length&&q.sign(I[W]),L&&(q.message.recentBlockhash=L)}),ke(w),(re=this.owner)!=null&&re.isKeyPair){if(k){let q=0,W=[];for(let $ of w){if(++q,q<=R){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:_});await dt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:w}}return{txIds:await Promise.all(w.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:w}}if(this.signAllTransactions){let q=await this.signAllTransactions(w.slice(R,w.length)),W=[...w.slice(0,R),...q];if(k){let $=0,G=[],ne=async()=>{if(!W[$])return;if($<R){G.push({txId:"",status:"success",signedTx:W[$]}),T==null||T([...G]),$++,ne();return}let fe=await this.connection.sendTransaction(W[$],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:W[$]}),T==null||T([...G]),$++;let qe=!1,Se=null,ot=null,cn=Ae=>{Se!==null&&clearInterval(Se),ot!==null&&this.connection.removeSignatureListener(ot);let ye=G.findIndex(wo=>wo.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=Ae.err?"error":"success"}T==null||T([...G]),Ae.err||ne()};this.loopMultiTxStatus&&(Se=setInterval(async()=>{var Ae;if(qe){clearInterval(Se);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(qe=!0,clearInterval(Se),cn({err:((Ae=ye.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){qe=!0,clearInterval(Se),console.error("getTransaction timeout:",ye,fe)}},pt)),ot=this.connection.onSignature(fe,Ae=>{if(qe){this.connection.removeSignatureListener(ot);return}qe=!0,cn(Ae)},"confirmed"),this.connection.getSignatureStatus(fe)};return ne(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:_});$.push(ne)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var Ut=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),ie=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new ft({connection:this.scope.connection,feePayer:t||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(...t){this.logger.debug(Ut(t))}logInfo(...t){this.logger.info(Ut(t))}logAndCreateError(...t){let n=Ut(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Jc,SystemProgram as tl}from"@solana/web3.js";import il from"bn.js";import{createCloseAccountInstruction as ul,createInitializeAccountInstruction as cl,createTransferInstruction as ll,TOKEN_PROGRAM_ID as ml}from"@solana/spl-token";import{Keypair as Dc,PublicKey as Wc}from"@solana/web3.js";import Gc from"bn.js";import{TOKEN_PROGRAM_ID as Xc}from"@solana/spl-token";import{PublicKey as ci}from"@solana/web3.js";import Nn,{isBN as Mn}from"bn.js";import{bits as jo,BitStructure as Yu,blob as $o,Blob as Xu,cstr as Qu,f32 as Zu,f32be as Hu,f64 as ju,f64be as $u,greedy as Ju,Layout as Jo,ns64 as ec,ns64be as tc,nu64 as ei,nu64be as nc,offset as ti,s16 as oc,s16be as ic,s24 as rc,s24be as ac,s32 as ni,s32be as sc,s40 as uc,s40be as cc,s48 as lc,s48be as mc,s8 as dc,seq as oi,struct as pc,Structure as ii,u16 as ri,u16be as fc,u24 as yc,u24be as bc,u32 as ai,u32be as gc,u40 as Pc,u40be as Ac,u48 as wc,u48be as kc,u8 as si,UInt as ui,union as Tc,Union as hc,unionLayoutDiscriminator as Ic,utf8 as Bc}from"@solana/buffer-layout";var yt=Jo,Kn=ii;var Gt=ui;var Cn=si,H=ri;var bt=ai;var Rn=ei;var ue=ni;var Ln=oi;var N=$o;var zt=jo,On=ti;var he=class extends yt{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new Nn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new Nn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},gt=class extends yt{constructor(n){super(8,n);this._lower=zt(bt(),!1),this._upper=zt(bt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),m=this._upper.decode(n,r+this._lower.span);return C(C({},u),m)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(i){return new Gt(1,i)}function X(i){return new Gt(4,i)}function e(i){return new he(8,!1,i)}function O(i){return new he(16,!1,i)}function Fn(i){return new he(1,!0,i)}function Me(i){return new he(8,!0,i)}function vn(i){return new he(16,!0,i)}var je=class extends yt{constructor(n,r,u,m){super(n.span,m);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function o(i){return new je(N(32),t=>new ci(t),t=>t.toBuffer(),i)}function ae(i){return new je(Cn(),li,mi,i)}function li(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function mi(i){return i?1:0}function Vn(i,t){let n=bt("length"),r=l([n,f(i,On(n,-n.span),"values")]);return new je(r,({values:u})=>u,u=>({values:u}),t)}var Yt=class extends Kn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Yt(i,t,n)}function f(i,t,n){let r,u=typeof t=="number"?t:Mn(t)?t.toNumber():new Proxy(t,{get(m,d){if(!r){let p=Reflect.get(m,"count");r=Mn(p)?p.toNumber():p,Reflect.set(m,"count",r)}return Reflect.get(m,d)},set(m,d,p){return d==="count"&&(r=p),Reflect.set(m,d,p)}});return Ln(i,u,n)}var Pt=l([o("mint"),o("owner"),e("amount"),X("delegateOption"),o("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as Pg,SystemProgram as Ag}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as kg}from"@solana/spl-token";import{PublicKey as _l}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Dl}from"@solana/spl-token";import{PublicKey as A}from"@solana/web3.js";var En=new A("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Dn=new A("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Wn=new A("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Xt=new A("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Gl=new A("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),pi=new A("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),qn=new A("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Un=new A("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),zl=new A("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),fi=new A("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Gn=new A("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),yi=new A("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),bi=new A("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),zn=new A("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Yl=new A("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),gi=new A("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Pi=new A("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ai=new A("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),wi=new A("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ki=new A("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Qt=new A("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ti=new A("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Xl=new A("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),hi=new A("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ii=new A("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Bi=new A("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Ql=new A("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Zl=new A("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Hl=new A("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),jl=new A("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),$l=new A("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),$e={IDO_PROGRAM_ID_V1:Pi,IDO_PROGRAM_ID_V2:Ai,IDO_PROGRAM_ID_V3:wi,IDO_PROGRAM_ID_V4:ki};var Pe={OPEN_BOOK_PROGRAM:new A("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new A("Ray1111111111111111111111111111111111111111"),AMM_V4:new A("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new A("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new A("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new A("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new A("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new A("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new A("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new A("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new A("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new A("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:A.default,Router:new A("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new A("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new A("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new A("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new A("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new A("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new A("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new A("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new A("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new A("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new A("Ray1111111111111111111111111111111111111111")};import Lg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Zf,TOKEN_2022_PROGRAM_ID as Hf,TOKEN_PROGRAM_ID as jf}from"@solana/spl-token";import{PublicKey as Jf}from"@solana/web3.js";import ty from"bn.js";import oy from"decimal.js";import{TOKEN_PROGRAM_ID as dm}from"@solana/spl-token";import{PublicKey as bm}from"@solana/web3.js";var Si=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as gf,TOKEN_2022_PROGRAM_ID as Pf,TOKEN_PROGRAM_ID as Af}from"@solana/spl-token";import{Keypair as Tf,PublicKey as hf,SystemProgram as Bf,TransactionInstruction as Sf}from"@solana/web3.js";import Kf from"bn.js";import D from"bn.js";var Ie=new D(1).shln(64);var xi=new D(1).shln(128),Zt=new D(1).shln(64).subn(1),Ki=new D(1).shln(128).subn(1);var ve=new D("4295048016"),Ve=new D("79226673521066979257578248091"),Ci=new D("59543866431248"),Ri=new D("184467440737095516"),Li=new D("15793534762490258745");var Ht=60,Km=new D("18446743708227953217"),Oi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var Je=3,Yn=100;var Xn=10,Qn=100,wt=14;var j=new D(0),_e=new D(1),Cm=new D(-1);var Rm=new D("18446744073700000000");var Ni=l([N(8),c("bump"),H("index"),o("owner"),X("protocolFeeRate"),X("tradeFeeRate"),H("tickSpacing"),X("fundFeeRate"),f(X(),1),o("fundOwner"),f(e(),3)]),Mi=l([X("blockTimestamp"),Me("tickCumulative"),f(e(),4)]),Zn=l([N(8),ae("initialized"),e("recentEpoch"),H("observationIndex"),o("poolId"),f(Mi,Yn,"observations"),f(e(),4)]),Fi=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),f(c(),46)]),vi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),O("growthGlobalX64")]),jt=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(O(),4),c("status"),c("feeOn"),N(6),f(vi,Je,"rewardInfos"),N(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Fi.replicate("dynamicFeeInfo"),f(e(),46)]),Vi=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),_i=l([N(8),c("bump"),o("nftMint"),o("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(Vi,Je,"rewardInfos"),e("recentEpoch"),f(e(),7)]),Mm=l([N(8),c("bump"),o("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(O(),Je,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),Ei=l([ue("tick"),vn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),f(O(),Je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),f(X(),3)]),Hn=l([N(8),o("poolId"),ue("startTickIndex"),f(Ei,Ht,"ticks"),c("initializedTickCount"),e("recentEpoch"),f(c(),107)]),Di=l([N(8),c("bump"),f(o(),Xn,"operationOwners"),f(o(),Qn,"whitelistMints")]),Wi=l([N(8),o("poolId"),o("owner"),ue("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),f(e(),4)]),jn=l([N(8),o("poolId"),N(8*8*wt,"positiveTickArrayBitmap"),N(8*8*wt,"negativeTickArrayBitmap")]),Fm=l([N(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(e(),8)]),qi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),f(e(),4)]),vm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),f(e(),8)]),Ui=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),f(e(),8)]);import Em from"bn.js";var Hm=Buffer.from("amm_config","utf8"),Gi=Buffer.from("pool","utf8"),zi=Buffer.from("pool_vault","utf8"),jm=Buffer.from("pool_reward_vault","utf8"),$m=Buffer.from("position","utf8"),Jm=Buffer.from("tick_array","utf8"),ed=Buffer.from("operation","utf8"),td=Buffer.from("pool_tick_array_bitmap_extension","utf8"),nd=Buffer.from("observation","utf8"),od=Buffer.from("support_mint","utf8"),id=Buffer.from("dynamic_fee_config","utf8");var rd=Buffer.from("locked_position","utf8");import{sha256 as sr}from"js-sha256";import Yi from"bn.js";import cd from"decimal.js";var md=new Yi(1).shln(256).subn(1);import Cd from"bn.js";import Pd from"bn.js";import wd from"decimal.js";import Vd from"bn.js";import Ed from"decimal.js";import{PublicKey as kp}from"@solana/web3.js";import hp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Lp}from"@solana/spl-token";import Fp from"decimal.js";import lp from"bn.js";import jd from"bn.js";import Gp from"bn.js";function J(i){let t=`global:${i}`