@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 79.1 kB
JavaScript
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 qa,TOKEN_PROGRAM_ID as Ua,getTransferFeeConfig as Ga,unpackMint as za}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 Ie from"bn.js";import XC from"decimal.js";import Mo from"big.js";import us 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 gs=E("Raydium_amount"),Ps=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 Se({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Eo=[Se({pubkey:_o,isWritable:!1}),Se({pubkey:gn.programId,isWritable:!1}),Se({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"),xe=new z("SysvarRent111111111111111111111111111111111"),Do=new z("SysvarC1ock11111111111111111111111111111111"),ut=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Wo=new z("Sysvar1nstructions1111111111111111111111111"),An=gn.programId,Ss=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),xs=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ks=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Cs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Rs=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ls=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Os=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ns=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ms=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Fs=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 Qs=new U(new qo(100));var eu=E("Raydium_price");import{merge as XK}from"lodash";var X={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({},X),{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 kl,SystemProgram as Tl}from"@solana/web3.js";import{AccountLayout as xl,createAssociatedTokenAccountIdempotentInstruction as Kl,TOKEN_PROGRAM_ID as Cl,TOKEN_2022_PROGRAM_ID as Rl}from"@solana/spl-token";import{PublicKey as Oe,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 Re}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 Re({key:p,state:Re.deserialize(d.data)});u[p.toString()]=y,n==="devnet"?Ce[p.toString()]=y:Ke[p.toString()]=y}return u}var Ke={},Et=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new Vt(t),r=await i.getAccountInfo(n);return r&&(Ke[t]=new Re({key:n,state:Re.deserialize(r.data)})),Ke},Ce={},Dt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[t])return Ce;let n=new Vt(t),r=await i.getAccountInfo(n);return r&&(Ce[t]=new Re({key:n,state:Re.deserialize(r.data)})),Ce};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 Xo}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 Le(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 Xe({instructions:i,payer:t,signers:n}){return Wt(i,[t,...n])}function Ye({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 Yo=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=Yo(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=Xo.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 Oe(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!==Oe.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 Le(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 Le(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 Oe(I));let b=await _t({connection:this.connection,address:P});for(let[I,x]of Object.entries(b))p[I]=x;let h=u?Oe.default.toBase58():m!=null?m:await Le(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 Oe(S));if(K!==n[b]&&P.length<12&&(Xe({instructions:w,payer:this.feePayer,signers:x})||Xe({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,Xe({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);Xe({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 Le(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 Oe(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 Le(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&&(Ye({instructions:T,payer:this.feePayer,lookupTableAddressAccount:y})||Ye({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&&Ye({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&&Ye({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,Be=null,ot=null,cn=Ae=>{Be!==null&&clearInterval(Be),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&&(Be=setInterval(async()=>{var Ae;if(qe){clearInterval(Be);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(qe=!0,clearInterval(Be),cn({err:((Ae=ye.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){qe=!0,clearInterval(Be),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 $c,SystemProgram as el}from"@solana/web3.js";import ol from"bn.js";import{createCloseAccountInstruction as sl,createInitializeAccountInstruction as ul,createTransferInstruction as cl,TOKEN_PROGRAM_ID as ll}from"@solana/spl-token";import{Keypair as Ec,PublicKey as Dc}from"@solana/web3.js";import Uc 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 zu,blob as $o,Blob as Xu,cstr as Yu,f32 as Qu,f32be as Zu,f64 as Hu,f64be as ju,greedy as $u,Layout as Jo,ns64 as Ju,ns64be as ec,nu64 as ei,nu64be as tc,offset as ti,s16 as nc,s16be as oc,s24 as ic,s24be as rc,s32 as ni,s32be as ac,s40 as sc,s40be as uc,s48 as cc,s48be as lc,s8 as mc,seq as oi,struct as dc,Structure as ii,u16 as ri,u16be as pc,u24 as fc,u24be as yc,u32 as ai,u32be as bc,u40 as gc,u40be as Pc,u48 as Ac,u48be as wc,u8 as si,UInt as ui,union as kc,Union as Tc,unionLayoutDiscriminator as hc,utf8 as Ic}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 Y(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 Ne(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 Xt=class extends Kn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Xt(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"),Y("delegateOption"),o("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("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 Vl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as El}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"),Yt=new A("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Ul=new A("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),pi=new A("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),qn=new A("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Un=new A("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Gl=new A("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),fi=new A("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Gn=new A("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),yi=new A("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),bi=new A("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),zn=new A("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),zl=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"),Yl=new A("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ql=new A("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Zl=new A("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Hl=new A("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),jl=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 mm}from"@solana/spl-token";import{PublicKey as ym}from"@solana/web3.js";var Si=l([Y("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("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 Fe=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,xm=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,Xn=100;var Yn=10,Qn=100,wt=14;var j=new D(0),_e=new D(1),Km=new D(-1);var Cm=new D("18446744073700000000");var Ni=l([N(8),c("bump"),H("index"),o("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),H("tickSpacing"),Y("fundFeeRate"),f(Y(),1),o("fundOwner"),f(e(),3)]),Mi=l([Y("blockTimestamp"),Ne("tickCumulative"),f(e(),4)]),Zn=l([N(8),ae("initialized"),e("recentEpoch"),H("observationIndex"),o("poolId"),f(Mi,Xn,"observations"),f(e(),4)]),Fi=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),Y("volatilityReference"),Y("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"),Y(),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)]),Nm=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(Y(),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(),Yn,"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")]),Mm=l([N(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),f(e(),8)]),qi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),f(e(),4)]),Fm=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 _m from"bn.js";var Zm=Buffer.from("amm_config","utf8"),Gi=Buffer.from("pool","utf8"),zi=Buffer.from("pool_vault","utf8"),Hm=Buffer.from("pool_reward_vault","utf8"),jm=Buffer.from("position","utf8"),$m=Buffer.from("tick_array","utf8"),Jm=Buffer.from("operation","utf8"),ed=Buffer.from("pool_tick_array_bitmap_extension","utf8"),td=Buffer.from("observation","utf8"),nd=Buffer.from("support_mint","utf8"),od=Buffer.from("dynamic_fee_config","utf8");var id=Buffer.from("locked_position","utf8");import{sha256 as ar}from"js-sha256";import Xi from"bn.js";import ud from"decimal.js";var ld=new Xi(1).shln(256).subn(1);import Kd from"bn.js";import gd from"bn.js";import Ad from"decimal.js";import Nd from"bn.js";import Fd 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}`