UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 118 kB
var Fi=Object.create;var bt=Object.defineProperty,vi=Object.defineProperties,Vi=Object.getOwnPropertyDescriptor,_i=Object.getOwnPropertyDescriptors,Ei=Object.getOwnPropertyNames,Nt=Object.getOwnPropertySymbols,Di=Object.getPrototypeOf,ln=Object.prototype.hasOwnProperty,Qn=Object.prototype.propertyIsEnumerable;var Xn=(s,e,t)=>e in s?bt(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,E=(s,e)=>{for(var t in e||(e={}))ln.call(e,t)&&Xn(s,t,e[t]);if(Nt)for(var t of Nt(e))Qn.call(e,t)&&Xn(s,t,e[t]);return s},q=(s,e)=>vi(s,_i(e));var Ce=(s,e)=>{var t={};for(var n in s)ln.call(s,n)&&e.indexOf(n)<0&&(t[n]=s[n]);if(s!=null&&Nt)for(var n of Nt(s))e.indexOf(n)<0&&Qn.call(s,n)&&(t[n]=s[n]);return t};var Wi=(s,e)=>{for(var t in e)bt(s,t,{get:e[t],enumerable:!0})},Zn=(s,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ei(e))!ln.call(s,i)&&i!==t&&bt(s,i,{get:()=>e[i],enumerable:!(n=Vi(e,i))||n.enumerable});return s};var L=(s,e,t)=>(t=s!=null?Fi(Di(s)):{},Zn(e||!s||!s.__esModule?bt(t,"default",{value:s,enumerable:!0}):t,s)),qi=s=>Zn(bt({},"__esModule",{value:!0}),s);var fu={};Wi(fu,{ClmmInstrument:()=>Ee});module.exports=qi(fu);var jn=require("@solana/web3.js");var gt=require("lodash");var mn=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Hn={},Ui={};function G(s){let e=(0,gt.get)(Hn,s);if(!e){let t=(0,gt.get)(Ui,s);e=new mn({name:s,logLevel:t}),(0,gt.set)(Hn,s,e)}return e}var Mt=require("@solana/spl-token"),dn=G("Raydium_accountInfo_util");async function Fe(s,e,t){let{batchRequest:n,commitment:i="confirmed",chunkCount:a=100}=E({batchRequest:!1},t),u=pn(e,a),r=new Array(u.length).fill([]);if(n){let l=u.map(f=>{let w=s._buildArgs([f.map(p=>p.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:w}}),d=pn(l,10);r=(await(await Promise.all(d.map(async f=>await s._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&dn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.error.message}`),f.result.value.map(w=>{if(w){let{data:p,executable:g,lamports:b,owner:y,rentEpoch:k}=w;return p.length!==2&&p[1]!=="base64"&&dn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:g,lamports:b,owner:new jn.PublicKey(y),rentEpoch:k}}return null})))}else try{r=await Promise.all(u.map(l=>s.getMultipleAccountsInfo(l,i)))}catch(l){l instanceof Error&&dn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.message}`)}return r.flat()}var Ge=L(require("bn.js")),pu=L(require("decimal.js"));var no=L(require("big.js")),Qi=L(require("bn.js"));var $n=L(require("toformat")),Gi=$n.default,At=Gi;var wt=L(require("big.js")),eo=L(require("bn.js")),to=L(require("decimal.js-light"));var it=L(require("bn.js"));var Jn=9007199254740991;function Ae(s){let e=G("Raydium_parseBigNumberish");if(s instanceof it.default)return s;if(typeof s=="string"){if(s.match(/^-?[0-9]+$/))return new it.default(s);e.logWithError(`invalid BigNumberish string: ${s}`)}return typeof s=="number"?(s%1&&e.logWithError(`BigNumberish number underflow: ${s}`),(s>=Jn||s<=-Jn)&&e.logWithError(`BigNumberish number overflow: ${s}`),new it.default(String(s))):typeof s=="bigint"?new it.default(s.toString()):(e.error(`invalid BigNumberish value: ${s}`),new it.default(0))}var Ft=G("module/fraction"),fn=At(wt.default),kt=At(to.default),Yi={[0]:kt.ROUND_DOWN,[1]:kt.ROUND_HALF_UP,[2]:kt.ROUND_UP},Xi={[0]:wt.default.roundDown,[1]:wt.default.roundHalfUp,[2]:wt.default.roundUp},$=class{constructor(e,t=new eo.default(1)){this.numerator=Ae(e),this.denominator=Ae(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new $(this.denominator,this.numerator)}add(e){let t=e instanceof $?e:new $(Ae(e));return this.denominator.eq(t.denominator)?new $(this.numerator.add(t.numerator),this.denominator):new $(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof $?e:new $(Ae(e));return this.denominator.eq(t.denominator)?new $(this.numerator.sub(t.numerator),this.denominator):new $(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof $?e:new $(Ae(e));return new $(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof $?e:new $(Ae(e));return new $(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Ft.logWithError(`${e} is not an integer.`),e<=0&&Ft.logWithError(`${e} is not positive.`),kt.set({precision:e+1,rounding:Yi[n]});let i=new kt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||Ft.logWithError(`${e} is not an integer.`),e<0&&Ft.logWithError(`${e} is negative.`),fn.DP=e,fn.RM=Xi[n]||1,new fn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Eu=G("Raydium_amount"),Du=At(no.default);var oo=require("@solana/web3.js"),yn=require("@solana/spl-token"),vt={chainId:101,address:oo.PublicKey.default.toBase58(),programId:yn.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:yn.TOKEN_PROGRAM_ID.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"}};var Vt=require("@solana/web3.js");var H=require("@solana/web3.js"),io=require("@solana/spl-token");function rt({pubkey:s,isSigner:e=!1,isWritable:t=!0}){return{pubkey:s,isWritable:t,isSigner:e}}var Hi=[rt({pubkey:io.TOKEN_PROGRAM_ID,isWritable:!1}),rt({pubkey:H.SystemProgram.programId,isWritable:!1}),rt({pubkey:H.SYSVAR_RENT_PUBKEY,isWritable:!1})];function ro({publicKey:s,transformSol:e}){let t=ao(s.toString());if(t instanceof H.PublicKey)return e&&t.equals(Ye)?Re:t;if(e&&t.toString()===Ye.toBase58())return Re;if(typeof t=="string"){if(t===H.PublicKey.default.toBase58())return H.PublicKey.default;try{return new H.PublicKey(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function ao(s){try{return new H.PublicKey(s)}catch{return s}}var De=new H.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Be=new H.PublicKey("SysvarRent111111111111111111111111111111111"),ji=new H.PublicKey("SysvarC1ock11111111111111111111111111111111"),We=new H.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$i=new H.PublicKey("Sysvar1nstructions1111111111111111111111111"),so=H.SystemProgram.programId,Gu=new H.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),zu=new H.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Yu=new H.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Xu=new H.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Qu=new H.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Zu=new H.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Hu=new H.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ju=new H.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),$u=new H.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ju=new H.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ec=new H.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Re=new H.PublicKey("So11111111111111111111111111111111111111112"),Ye=H.PublicKey.default;var bn=class{constructor({mint:e,decimals:t,symbol:n,name:i,skipMint:a=!1,isToken2022:u=!1}){if(e===Ye.toBase58()||e instanceof Vt.PublicKey&&Ye.equals(e)){this.decimals=Le.decimals,this.symbol=Le.symbol,this.name=Le.name,this.mint=new Vt.PublicKey(Le.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=i||e.toString().substring(0,6),this.mint=a?Vt.PublicKey.default:ro({publicKey:e}),this.isToken2022=u}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ye=bn;ye.WSOL=new bn(q(E({},Le),{mint:Le.address}));var gn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},_t=gn;_t.SOL=new gn(vt);var uo=L(require("bn.js"));var lc=new $(new uo.default(100));var bc=G("Raydium_price");var du=require("lodash");var er=L(require("axios"));var co={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"},Ji=q(E({},co),{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 Yc=G("Raydium_Api");var xo=require("@solana/web3.js");var Zt=require("@solana/spl-token");var Y=require("@solana/web3.js"),fo=L(require("axios"));var xe=require("@solana/web3.js");async function Pn({connection:s,address:e,cluster:t="mainnet"}){let n=await Fe(s,[...new Set(e.map(a=>a.toString()))].map(a=>new xe.PublicKey(a))),i={};for(let a=0;a<e.length;a++){let u=n[a],r=e[a];if(!u)continue;let l=new xe.AddressLookupTableAccount({key:r,state:xe.AddressLookupTableAccount.deserialize(u.data)});i[r.toString()]=l,t==="devnet"?st[r.toString()]=l:at[r.toString()]=l}return i}var at={},An=async s=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(at[e])return at;let t=new xe.PublicKey(e),n=await s.getAccountInfo(t);return n&&(at[e]=new xe.AddressLookupTableAccount({key:t,state:xe.AddressLookupTableAccount.deserialize(n.data)})),at},st={},wn=async s=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(st[e])return st;let t=new xe.PublicKey(e),n=await s.getAccountInfo(t);return n&&(st[e]=new xe.AddressLookupTableAccount({key:t,state:xe.AddressLookupTableAccount.deserialize(n.data)})),st};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"};var be=require("@solana/web3.js");var mo=require("@solana/spl-token"),lo=G("Raydium_txUtil"),po=1644;function Et(s){let e=[],t=[];return s.microLamports&&(e.push(be.ComputeBudgetProgram.setComputeUnitPrice({microLamports:s.microLamports})),t.push(z.SetComputeUnitPrice)),s.units&&(e.push(be.ComputeBudgetProgram.setComputeUnitLimit({units:s.units})),t.push(z.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function ut(s,e){var n,i;let t=e!=null?e:"confirmed";return(i=await((n=s.getLatestBlockhash)==null?void 0:n.call(s,{commitment:t})))==null?void 0:i.blockhash}async function Dt(s,e){return s.getSignatureStatuses([e]),new Promise((t,n)=>{let i=setTimeout(n,6e4);s.onSignature(e,a=>{if(clearTimeout(i),!a.err){t("");return}n(Object.assign(a.err,{txId:e}))},"confirmed")})}function kn(s,e){s.length<1&&lo.logWithError(`no instructions provided: ${s.toString()}`),e.length<1&&lo.logWithError(`no signers provided:, ${e.toString()}`);let t=new be.Transaction;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...s);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<po}catch{return!1}}function ee(s,e){let[t,n]=be.PublicKey.findProgramAddressSync(s,e);return{publicKey:t,nonce:n}}function Tt({instructions:s,payer:e,signers:t}){return kn(s,[e,...t])}function ht({instructions:s,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=be.Keypair.generate().publicKey.toString()}){let a=new be.TransactionMessage({payerKey:e,recentBlockhash:n,instructions:s}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new be.VersionedTransaction(a).serialize()).toString("base64").length<po}catch{return!1}}var tr=s=>Buffer.isBuffer(s)?s:s instanceof Uint8Array?Buffer.from(s.buffer,s.byteOffset,s.byteLength):Buffer.from(s),nr=s=>{let e=s.serialize({requireAllSignatures:!1,verifySignatures:!1});s instanceof be.VersionedTransaction&&(e=tr(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Xe(s){let e=[];return s.forEach(t=>{t instanceof be.Transaction&&(t.recentBlockhash||(t.recentBlockhash=mo.TOKEN_PROGRAM_ID.toBase58()),t.feePayer||(t.feePayer=be.Keypair.generate().publicKey)),e.push(nr(t))}),console.log("simulate tx string:",e),e}var Wt=2e3,qt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var n;let e=(await fo.default.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(n=e==null?void 0:e[15])!=null?n:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:n}=Et(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Y.SystemProgram.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Y.PublicKey(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(z.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:i=[],endInstructionTypes:a=[],lookupTableAddress:u=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...i),this.endInstructionTypes.push(...a),this.lookupTableAddress.push(...u.filter(r=>r!==Y.PublicKey.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(q(E({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new Y.Transaction;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(i=>i.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async i=>{var c;let{recentBlockHash:a,skipPreflight:u=!0,sendAndConfirm:r,notSendToRpc:l}=i||{},d=a!=null?a:await ut(this.connection,this.blockhashCommitment);if(t.recentBlockhash=d,this.signers.length&&t.sign(...this.signers),Xe([t]),(c=this.owner)!=null&&c.isKeyPair)return{txId:r?await(0,Y.sendAndConfirmTransaction)(this.connection,t,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:u}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:u}),signedTx:t};if(this.signAllTransactions){let f=await this.signAllTransactions([t]);if(this.signers.length)for(let w of f)try{w.sign(...this.signers)}catch{}return{txId:l?"":await this.connection.sendRawTransaction(f[0].serialize(),{skipPreflight:u}),signedTx:f[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var d;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:i}=this.build(n),a=t.filter(c=>c.transaction.instructions.length>0),u=[i,...a.map(c=>c.transaction)],r=[this.signers,...a.map(c=>c.signers)],l=[...this.instructionTypes,...a.map(c=>c.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&r.forEach(c=>{c.some(f=>f.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:u,signers:r,instructionTypes:l,execute:async c=>{var k;let{sequentially:f,onTxUpdate:w,skipTxCount:p=0,recentBlockHash:g,skipPreflight:b=!0}=c||{},y=g!=null?g:await ut(this.connection,this.blockhashCommitment);if((k=this.owner)!=null&&k.isKeyPair){if(f){let T=[],C=0;for(let O of u){if(++C,C<=p)continue;let B=await(0,Y.sendAndConfirmTransaction)(this.connection,O,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:b});T.push(B)}return{txIds:T,signedTxs:u}}return{txIds:await await Promise.all(u.map(async T=>(T.recentBlockhash=y,await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:b})))),signedTxs:u}}if(this.signAllTransactions){let T=u.map((O,B)=>(O.recentBlockhash=y,r[B].length&&O.sign(...r[B]),O));Xe(T);let C=await this.signAllTransactions(T);if(f){let O=0,B=[],x=async()=>{if(!C[O])return;let S=await this.connection.sendRawTransaction(C[O].serialize(),{skipPreflight:b});B.push({txId:S,status:"sent",signedTx:C[O]}),w==null||w([...B]),O++;let R=!1,N=null,_=null,ce=Q=>{N!==null&&clearInterval(N),_!==null&&this.connection.removeSignatureListener(_);let W=B.findIndex(oe=>oe.txId===S);if(W>-1){if(B[W].status==="error"||B[W].status==="success")return;B[W].status=Q.err?"error":"success"}w==null||w([...B]),Q.err||x()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var Q;if(R){clearInterval(N);return}try{let W=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(R=!0,clearInterval(N),ce({err:((Q=W.meta)==null?void 0:Q.err)||null}),console.log("tx status from getTransaction:",S))}catch(W){R=!0,clearInterval(N),console.error("getTransaction timeout:",W,S)}},Wt)),_=this.connection.onSignature(S,Q=>{if(R){this.connection.removeSignatureListener(_);return}R=!0,ce(Q)},"confirmed"),this.connection.getSignatureStatus(S)};return await x(),{txIds:B.map(S=>S.txId),signedTxs:C}}else{let O=[];for(let B=0;B<C.length;B+=1){let x=await this.connection.sendRawTransaction(C[B].serialize(),{skipPreflight:b});O.push(x)}return{txIds:O,signedTxs:C}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:n}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:n||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:n})}async buildV0(e){var b;let g=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:i,recentBlockhash:a}=g,u=Ce(g,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),r=E(E({},this.cluster==="devnet"?await wn(this.connection):await An(this.connection)),t),l=Array.from(new Set([...n,...this.lookupTableAddress])),d=[];for(let y of l)r[y]===void 0&&d.push(new Y.PublicKey(y));let c=await Pn({connection:this.connection,address:d});for(let[y,k]of Object.entries(c))r[y]=k;let f=i?Y.PublicKey.default.toBase58():a!=null?a:await ut(this.connection,this.blockhashCommitment),w=new Y.TransactionMessage({payerKey:this.feePayer,recentBlockhash:f,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(r));((b=this.owner)==null?void 0:b.signer)&&!this.signers.some(y=>y.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new Y.VersionedTransaction(w);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async y=>{var O;let{skipPreflight:k=!0,sendAndConfirm:T,notSendToRpc:C}=y||{};if(Xe([p]),(O=this.owner)!=null&&O.isKeyPair){let B=await this.connection.sendTransaction(p,{skipPreflight:k});return T&&await Dt(this.connection,B),{txId:B,signedTx:p}}if(this.signAllTransactions){let B=await this.signAllTransactions([p]);if(this.signers.length)for(let x of B)try{x.sign(this.signers)}catch{}return{txId:C?"":await this.connection.sendTransaction(B[0],{skipPreflight:k}),signedTx:B[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async buildV0MultiTx(e){var d;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:i}=await this.buildV0(n),a=t.filter(c=>c.builder.instructions.length>0),u=[i,...a.map(c=>c.transaction)],r=[this.signers,...a.map(c=>c.signers)],l=[...this.instructionTypes,...a.map(c=>c.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&r.forEach(c=>{c.some(f=>f.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),u.forEach(async(c,f)=>{c.sign(r[f])}),{builder:this,transactions:u,signers:r,instructionTypes:l,buildProps:n,execute:async c=>{var b;let{sequentially:f,onTxUpdate:w,recentBlockHash:p,skipPreflight:g=!0}=c||{};if(p&&u.forEach(y=>y.message.recentBlockhash=p),Xe(u),(b=this.owner)!=null&&b.isKeyPair){if(f){let y=[];for(let k of u){let T=await this.connection.sendTransaction(k,{skipPreflight:g});await Dt(this.connection,T),y.push(T)}return{txIds:y,signedTxs:u}}return{txIds:await Promise.all(u.map(async y=>await this.connection.sendTransaction(y,{skipPreflight:g}))),signedTxs:u}}if(this.signAllTransactions){let y=await this.signAllTransactions(u);if(f){let k=0,T=[],C=async()=>{if(!y[k])return;let O=await this.connection.sendTransaction(y[k],{skipPreflight:g});T.push({txId:O,status:"sent",signedTx:y[k]}),w==null||w([...T]),k++;let B=!1,x=null,S=null,R=N=>{x!==null&&clearInterval(x),S!==null&&this.connection.removeSignatureListener(S);let _=T.findIndex(ce=>ce.txId===O);if(_>-1){if(T[_].status==="error"||T[_].status==="success")return;T[_].status=N.err?"error":"success"}w==null||w([...T]),N.err||C()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var N;if(B){clearInterval(x);return}try{let _=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(B=!0,clearInterval(x),R({err:((N=_.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",O))}catch(_){B=!0,clearInterval(x),console.error("getTransaction timeout:",_,O)}},Wt)),S=this.connection.onSignature(O,N=>{if(B){this.connection.removeSignatureListener(S);return}B=!0,R(N)},"confirmed"),this.connection.getSignatureStatus(O)};return C(),{txIds:[],signedTxs:y}}else{let k=[];for(let T=0;T<y.length;T+=1){let C=await this.connection.sendTransaction(y[T],{skipPreflight:g});k.push(C)}return{txIds:k,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var w;let f=e||{},{splitIns:t=[],computeBudgetConfig:n}=f,i=Ce(f,["splitIns","computeBudgetConfig"]),a=n?Et(n):{instructions:[],instructionTypes:[]},u=this.signers.reduce((p,g)=>q(E({},p),{[g.publicKey.toBase58()]:g}),{}),r=[],l=[],d=[],c=0;if(this.allInstructions.forEach(p=>{let g=[...d,p],b=n?[...a.instructions,...g]:g,k=[...new Set(g.map(T=>T.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(T=>new Y.PublicKey(T));if(p!==t[c]&&d.length<12&&(Tt({instructions:b,payer:this.feePayer,signers:k})||Tt({instructions:g,payer:this.feePayer,signers:k})))d.push(p);else{if(d.length===0)throw Error("item ins too big");c+=p===t[c]?1:0,Tt({instructions:n?[...a.instructions,...d]:[...d],payer:this.feePayer,signers:k})?r.push(new Y.Transaction().add(...a.instructions,...d)):r.push(new Y.Transaction().add(...d)),l.push(Array.from(new Set(d.map(T=>T.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat())).map(T=>u[T]).filter(T=>T!==void 0)),d=[p]}}),d.length>0){let g=[...new Set(d.map(b=>b.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat()).values()].map(b=>u[b]).filter(b=>b!==void 0);Tt({instructions:n?[...a.instructions,...d]:[...d],payer:this.feePayer,signers:g.map(b=>b.publicKey)})?r.push(new Y.Transaction().add(...a.instructions,...d)):r.push(new Y.Transaction().add(...d)),l.push(g)}return r.forEach(p=>p.feePayer=this.feePayer),(w=this.owner)!=null&&w.signer&&l.forEach(p=>{p.some(g=>g.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),{builder:this,transactions:r,signers:l,instructionTypes:this.instructionTypes,execute:async p=>{var O;let{sequentially:g,onTxUpdate:b,skipTxCount:y=0,recentBlockHash:k,skipPreflight:T=!0}=p||{},C=k!=null?k:await ut(this.connection,this.blockhashCommitment);if(r.forEach(async(B,x)=>{B.recentBlockhash=C,l[x].length&&B.sign(...l[x])}),Xe(r),(O=this.owner)!=null&&O.isKeyPair){if(g){let B=0,x=[];for(let S of r){if(++B,B<=y){x.push("tx skipped");continue}let R=await(0,Y.sendAndConfirmTransaction)(this.connection,S,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:T});x.push(R)}return{txIds:x,signedTxs:r}}return{txIds:await Promise.all(r.map(async B=>await this.connection.sendRawTransaction(B.serialize(),{skipPreflight:T}))),signedTxs:r}}if(this.signAllTransactions){let B=await this.signAllTransactions(r.slice(y,r.length)),x=[...r.slice(0,y),...B];if(g){let S=0,R=[],N=async()=>{if(!x[S])return;S<y&&(R.push({txId:"",status:"success",signedTx:x[S]}),b==null||b([...R]),S++,N());let _=await this.connection.sendRawTransaction(x[S].serialize(),{skipPreflight:T});R.push({txId:_,status:"sent",signedTx:x[S]}),b==null||b([...R]),S++;let ce=!1,Q=null,W=null,oe=j=>{Q!==null&&clearInterval(Q),W!==null&&this.connection.removeSignatureListener(W);let Pe=R.findIndex(Ne=>Ne.txId===_);if(Pe>-1){if(R[Pe].status==="error"||R[Pe].status==="success")return;R[Pe].status=j.err?"error":"success"}b==null||b([...R]),j.err||N()};this.loopMultiTxStatus&&(Q=setInterval(async()=>{var j;if(ce){clearInterval(Q);return}try{let Pe=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});Pe&&(ce=!0,clearInterval(Q),oe({err:((j=Pe.meta)==null?void 0:j.err)||null}),console.log("tx status from getTransaction:",_))}catch(Pe){ce=!0,clearInterval(Q),console.error("getTransaction timeout:",Pe,_)}},Wt)),W=this.connection.onSignature(_,j=>{if(ce){this.connection.removeSignatureListener(W);return}ce=!0,oe(j)},"confirmed"),this.connection.getSignatureStatus(_)};return await N(),{txIds:R.map(_=>_.txId),signedTxs:x}}else{let S=[];for(let R=0;R<x.length;R+=1){let N=await this.connection.sendRawTransaction(x[R].serialize(),{skipPreflight:T});S.push(N)}return{txIds:S,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(e){var O;let C=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:i={},lookupTableAddress:a=[],insCountLimit:u=12}=C,r=Ce(C,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),l=E(E({},this.cluster==="devnet"?await wn(this.connection):await An(this.connection)),i),d=Array.from(new Set([...this.lookupTableAddress,...a])),c=[];for(let B of d)l[B]===void 0&&c.push(new Y.PublicKey(B));let f=await Pn({connection:this.connection,address:c});for(let[B,x]of Object.entries(f))l[B]=x;let w=t?Et(t):{instructions:[],instructionTypes:[]},p=await ut(this.connection,this.blockhashCommitment),g=this.signers.reduce((B,x)=>q(E({},B),{[x.publicKey.toBase58()]:x}),{}),b=[],y=[],k=[],T=0;if(this.allInstructions.forEach(B=>{let x=[...k,B],S=t?[...w.instructions,...x]:x;if(B!==n[T]&&k.length<u&&(ht({instructions:S,payer:this.feePayer,lookupTableAddressAccount:l})||ht({instructions:x,payer:this.feePayer,lookupTableAddressAccount:l})))k.push(B);else{if(k.length===0)throw Error("item ins too big");T+=B===n[T]?1:0;let R={};for(let N of[...new Set(d)])l[N]!==void 0&&(R[N]=l[N]);if(t&&ht({instructions:[...w.instructions,...k],payer:this.feePayer,lookupTableAddressAccount:l,recentBlockhash:p})){let N=new Y.TransactionMessage({payerKey:this.feePayer,recentBlockhash:p,instructions:[...w.instructions,...k]}).compileToV0Message(Object.values(l));b.push(new Y.VersionedTransaction(N))}else{let N=new Y.TransactionMessage({payerKey:this.feePayer,recentBlockhash:p,instructions:[...k]}).compileToV0Message(Object.values(l));b.push(new Y.VersionedTransaction(N))}y.push(Array.from(new Set(k.map(N=>N.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(N=>g[N]).filter(N=>N!==void 0)),k=[B]}}),k.length>0){let x=[...new Set(k.map(S=>S.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(S=>g[S]).filter(S=>S!==void 0);if(t&&ht({instructions:[...w.instructions,...k],payer:this.feePayer,lookupTableAddressAccount:l,recentBlockhash:p})){let S=new Y.TransactionMessage({payerKey:this.feePayer,recentBlockhash:p,instructions:[...w.instructions,...k]}).compileToV0Message(Object.values(l));b.push(new Y.VersionedTransaction(S))}else{let S=new Y.TransactionMessage({payerKey:this.feePayer,recentBlockhash:p,instructions:[...k]}).compileToV0Message(Object.values(l));b.push(new Y.VersionedTransaction(S))}y.push(x)}return(O=this.owner)!=null&&O.signer&&y.forEach(B=>{B.some(x=>x.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),b.forEach((B,x)=>{B.sign(y[x])}),{builder:this,transactions:b,buildProps:e,signers:y,instructionTypes:this.instructionTypes,execute:async B=>{var ce;let{sequentially:x,onTxUpdate:S,skipTxCount:R=0,recentBlockHash:N,skipPreflight:_=!0}=B||{};if(b.map(async(Q,W)=>{y[W].length&&Q.sign(y[W]),N&&(Q.message.recentBlockhash=N)}),Xe(b),(ce=this.owner)!=null&&ce.isKeyPair){if(x){let Q=0,W=[];for(let oe of b){if(++Q,Q<=R){console.log("skip tx: ",Q),W.push("tx skipped");continue}let j=await this.connection.sendTransaction(oe,{skipPreflight:_});await Dt(this.connection,j),W.push(j)}return{txIds:W,signedTxs:b}}return{txIds:await Promise.all(b.map(async Q=>await this.connection.sendTransaction(Q,{skipPreflight:_}))),signedTxs:b}}if(this.signAllTransactions){let Q=await this.signAllTransactions(b.slice(R,b.length)),W=[...b.slice(0,R),...Q];if(x){let oe=0,j=[],Pe=async()=>{if(!W[oe])return;if(oe<R){j.push({txId:"",status:"success",signedTx:W[oe]}),S==null||S([...j]),oe++,Pe();return}let Ne=await this.connection.sendTransaction(W[oe],{skipPreflight:_});j.push({txId:Ne,status:"sent",signedTx:W[oe]}),S==null||S([...j]),oe++;let yt=!1,ot=null,Ot=null,Yn=ze=>{ot!==null&&clearInterval(ot),Ot!==null&&this.connection.removeSignatureListener(Ot);let Me=j.findIndex(Mi=>Mi.txId===Ne);if(Me>-1){if(j[Me].status==="error"||j[Me].status==="success")return;j[Me].status=ze.err?"error":"success"}S==null||S([...j]),ze.err||Pe()};this.loopMultiTxStatus&&(ot=setInterval(async()=>{var ze;if(yt){clearInterval(ot);return}try{let Me=await this.connection.getTransaction(Ne,{commitment:"confirmed",maxSupportedTransactionVersion:0});Me&&(yt=!0,clearInterval(ot),Yn({err:((ze=Me.meta)==null?void 0:ze.err)||null}),console.log("tx status from getTransaction:",Ne))}catch(Me){yt=!0,clearInterval(ot),console.error("getTransaction timeout:",Me,Ne)}},Wt)),Ot=this.connection.onSignature(Ne,ze=>{if(yt){this.connection.removeSignatureListener(Ot);return}yt=!0,Yn(ze)},"confirmed"),this.connection.getSignatureStatus(Ne)};return Pe(),{txIds:[],signedTxs:W}}else{let oe=[];for(let j=0;j<W.length;j+=1){let Pe=await this.connection.sendTransaction(W[j],{skipPreflight:_});oe.push(Pe)}return{txIds:oe,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}};var Tn=(...s)=>s.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),we=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=G(t)}createTxBuilder(e){return this.scope.checkOwner(),new qt({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Tn(e))}logInfo(...e){this.logger.info(Tn(e))}logAndCreateError(...e){let t=Tn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var Bo=require("@solana/web3.js"),sr=L(require("bn.js"));var Qt=require("@solana/spl-token");var Io=require("@solana/web3.js"),rr=L(require("bn.js"));var ar=require("@solana/spl-token");var wo=require("@solana/web3.js"),ct=L(require("bn.js"));var M=require("@solana/buffer-layout"),Ut=M.Layout,yo=M.Structure;var hn=M.UInt;var bo=M.u8,me=M.u16;var Gt=M.u32;var go=M.nu64;var ae=M.s32;var Po=M.seq;var D=M.blob;var In=M.bits,Ao=M.offset;var Ze=class extends Ut{constructor(t,n,i){super(t,i);this.blob=D(t),this.signed=n}decode(t,n=0){let i=new ct.default(this.blob.decode(t,n),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(t,n,i=0){return typeof t=="number"&&(t=new ct.default(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,i)}},zt=class extends Ut{constructor(t){super(8,t);this._lower=In(Gt(),!1),this._upper=In(Gt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let i=this._lower.decode(t,n),a=this._upper.decode(t,n+this._lower.span);return E(E({},i),a)}encode(t,n,i=0){return this._lower.encode(t,n,i)+this._upper.encode(t,n,i+this._lower.span)}};function I(s){return new hn(1,s)}function te(s){return new hn(4,s)}function o(s){return new Ze(8,!1,s)}function V(s){return new Ze(16,!1,s)}function ko(s){return new Ze(1,!0,s)}function lt(s){return new Ze(8,!0,s)}function To(s){return new Ze(16,!0,s)}var It=class extends Ut{constructor(t,n,i,a){super(t.span,a);this.layout=t,this.decoder=n,this.encoder=i}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,i){return this.layout.encode(this.encoder(t),n,i)}getSpan(t,n){return this.layout.getSpan(t,n)}};function m(s){return new It(D(32),e=>new wo.PublicKey(e),e=>e.toBuffer(),s)}function ie(s){return new It(bo(),or,ir,s)}function or(s){if(s===0)return!1;if(s===1)return!0;throw new Error("Invalid bool: "+s)}function ir(s){return s?1:0}function ho(s,e){let t=Gt("length"),n=h([t,K(s,Ao(t,-t.span),"values")]);return new It(n,({values:i})=>i,i=>({values:i}),e)}var Bn=class extends yo{decode(e,t){return super.decode(e,t)}};function h(s,e,t){return new Bn(s,e,t)}function K(s,e,t){let n,i=typeof e=="number"?e:(0,ct.isBN)(e)?e.toNumber():new Proxy(e,{get(a,u){if(!n){let r=Reflect.get(a,"count");n=(0,ct.isBN)(r)?r.toNumber():r,Reflect.set(a,"count",n)}return Reflect.get(a,u)},set(a,u,r){return u==="count"&&(n=r),Reflect.set(a,u,r)}});return Po(s,i,t)}var Yt=h([m("mint"),m("owner"),o("amount"),te("delegateOption"),m("delegate"),I("state"),te("isNativeOption"),o("isNative"),o("delegatedAmount"),te("closeAuthorityOption"),m("closeAuthority")]);var di=require("@solana/web3.js"),Ya=require("@solana/spl-token");var Ko=require("@solana/web3.js"),Co=require("@solana/spl-token");function X(s,e,t){return ee([s.toBuffer(),(t!=null?t:Co.TOKEN_PROGRAM_ID).toBuffer(),e.toBuffer()],new Ko.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}var F=require("@solana/web3.js"),Ro=new F.PublicKey("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Lo=new F.PublicKey("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Oo=new F.PublicKey("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Sn=new F.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),fm=new F.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),cr=new F.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),No=new F.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Mo=new F.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ym=new F.PublicKey("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),lr=new F.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Fo=new F.PublicKey("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),mr=new F.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),dr=new F.PublicKey("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),vo=new F.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),bm=new F.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),pr=new F.PublicKey("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),fr=new F.PublicKey("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),yr=new F.PublicKey("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),br=new F.PublicKey("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),gr=new F.PublicKey("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),xn=new F.PublicKey("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Pr=new F.PublicKey("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),gm=new F.PublicKey("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ar=new F.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),wr=new F.PublicKey("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),kr=new F.PublicKey("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Pm=new F.PublicKey("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Am=new F.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),wm=new F.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),km=new F.PublicKey("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Tm=new F.PublicKey("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Bt={IDO_PROGRAM_ID_V1:fr,IDO_PROGRAM_ID_V2:yr,IDO_PROGRAM_ID_V3:br,IDO_PROGRAM_ID_V4:gr};var qe={OPEN_BOOK_PROGRAM:new F.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new F.PublicKey("Ray1111111111111111111111111111111111111111"),AMM_V4:new F.PublicKey("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new F.PublicKey("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new F.PublicKey("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new F.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new F.PublicKey("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new F.PublicKey("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new F.PublicKey("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new F.PublicKey("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new F.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new F.PublicKey("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:F.PublicKey.default,Router:new F.PublicKey("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new F.PublicKey("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new F.PublicKey("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new F.PublicKey("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new F.PublicKey("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new F.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new F.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new F.PublicKey("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new F.PublicKey("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new F.PublicKey("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new F.PublicKey("Ray1111111111111111111111111111111111111111")};var Xa=L(require("decimal.js"));var Fn=require("@solana/spl-token"),ua=require("@solana/web3.js"),ca=L(require("bn.js")),la=L(require("decimal.js"));var hr=require("@solana/spl-token"),Ir=require("@solana/web3.js");var Tr=h([te("mintAuthorityOption"),m("mintAuthority"),o("supply"),I("decimals"),I("isInitialized"),te("freezeAuthorityOption"),m("freezeAuthority")]);var U=L(require("bn.js")),re=new U.default(1).shln(64);var Br=new U.default(1).shln(128),He=new U.default(1).shln(64).subn(1),Sr=new U.default(1).shln(128).subn(1),ve=-443636,Ve=443636,je=new U.default("4295048016"),$e=new U.default("79226673521066979257578248091"),Vo=new U.default("59543866431248"),_o=new U.default("184467440737095516"),Eo=new U.default("15793534762490258745"),Do=16,Ht=512,ke=60,Xm=new U.default("18446743708227953217"),Wo=[{bit:0,factor:new U.default("fffcb933bd6fb800",16)},{bit:1,factor:new U.default("fff97272373d4000",16)},{bit:2,factor:new U.default("fff2e50f5f657000",16)},{bit:3,factor:new U.default("ffe5caca7e10f000",16)},{bit:4,factor:new U.default("ffcb9843d60f7000",16)},{bit:5,factor:new U.default("ff973b41fa98e800",16)},{bit:6,factor:new U.default("ff2ea16466c9b000",16)},{bit:7,factor:new U.default("fe5dee046a9a3800",16)},{bit:8,factor:new U.default("fcbe86c7900bb000",16)},{bit:9,factor:new U.default("f987a7253ac65800",16)},{bit:10,factor:new U.default("f3392b0822bb6000",16)},{bit:11,factor:new U.default("e7159475a2caf000",16)},{bit:12,factor:new U.default("d097f3bdfd2f2000",16)},{bit:13,factor:new U.default("a9f746462d9f8000",16)},{bit:14,factor:new U.default("70d869a156f31c00",16)},{bit:15,factor:new U.default("31be135f97ed3200",16)},{bit:16,factor:new U.default("9aa508b5b85a500",16)},{bit:17,factor:new U.default("5d6af8dedc582c",16)},{bit:18,factor:new U.default("2216e584f5fa",16)}];var St=3,qo=100;var Uo=10,Go=100,dt=14;var Z=new U.default(0),Je=new U.default(1),Qm=new U.default(-1);var Zm=new U.default("18446744073700000000");var xr=h([D(8),I("bump"),me("index"),m("owner"),te("protocolFeeRate"),te("tradeFeeRate"),me("tickSpacing"),te("fundFeeRate"),K(te(),1),m("fundOwner"),K(o(),3)]),Kr=h([te("blockTimestamp"),lt("tickCumulative"),K(o(),4)]),zo=h([D(8),ie("initialized"),o("recentEpoch"),me("observationIndex"),m("poolId"),K(Kr,qo,"observations"),K(o(),4)]),Cr=h([me("filterPeriod"),me("decayPeriod"),me("reductionFactor"),te("dynamicFeeControl"),te("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),te("volatilityReference"),te("volatilityAccumulator"),o("lastUpdateTimestamp"),K(I(),46)]),Rr=h([I("state"),o("openTime"),o("endTime"),o("lastUpdateTime"),V("emissionsPerSecondX64"),o("totalEmissioned"),o("claimed"),m("mint"),m("vault"),m("creator"),V("growthGlobalX64")]),Kn=h([D(8),I("bump"),m("configId"),m("creator"),m("mintA"),m("mintB"),m("vaultA"),m("vaultB"),m("observationId"),I("mintDecimalsA"),I("mintDecimalsB"),me("tickSpacing"),V("liquidity"),V("sqrtPriceX64"),ae("tickCurrent"),te(),V("feeGrowthGlobalX64A"),V("feeGrowthGlobalX64B"),o("protocolFeesTokenA"),o("protocolFeesTokenB"),K(V(),4),I("status"),I("feeOn"),D(6),K(Rr,St,"rewardInfos"),D(8*16,"tickArrayBitmap"),K(o(),4),o("fundFeesTokenA"),o("fundFeesTokenB"),o("startTime"),o("recentEpoch"),Cr.replicate("dynamicFeeInfo"),K(o(),46)]),Lr=h([V("growthInsideLastX64"),o("rewardAmountOwed")]),Or=h([D(8),I("bump"),m("nftMint"),m("poolId"),ae("tickLower"),ae("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),K(Lr,St,"rewardInfos"),o("recentEpoch"),K(o(),7)]),Jm=h([D(8),I("bump"),m("poolId"),ae("tickLower"),ae("tickUpper"),V("liquidity"),V("feeGrowthInsideLastX64A"),V("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),K(V(),St,"rewardGrowthInside"),o("recentEpoch"),K(o(),7)]),Nr=h([ae("tick"),To("liquidityNet"),V("liquidityGross"),V("feeGrowthOutsideX64A"),V("feeGrowthOutsideX64B"),K(V(),St,"rewardGrowthsOutsideX64"),o("orderPhase"),o("ordersAmount"),o("partFilledOrdersRemaining"),V("unfilledRatioX64"),K(te(),3)]),Yo=h([D(8),m("poolId"),ae("startTickIndex"),K(Nr,ke,"ticks"),I("initializedTickCount"),o("recentEpoch"),K(I(),107)]),Mr=h([D(8),I("bump"),K(m(),Uo,"operationOwners"),K(m(),Go,"whitelistMints")]),Fr=h([D(8),m("poolId"),m("owner"),ae("tick"),ie("zeroForOne"),o("orderPhase"),o("totalAmount"),o("filledAmount"),o("settleBase"),o("settleOutput"),o("openTime"),V("unfilledRatioX64"),K(o(),4)]),Xo=h([D(8),m("poolId"),D(8*8*dt,"positiveTickArrayBitmap"),D(8*8*dt,"negativeTickArrayBitmap")]),ed=h([D(8),me("index"),me("filterPeriod"),me("decayPeriod"),me("reductionFactor"),te("dynamicFeeControl"),te("maxVolatilityAccumulator"),K(o(),8)]),vr=h([D(8),m("wallet"),I("nonceIndex"),o("orderNonce"),K(o(),4)]),td=h([o(),I("bump"),m("owner"),m("poolId"),m("positionId"),m("nftAccount"),K(o(),8)]),Vr=h([D(8),I("bump"),m("lockOwner"),m("poolId"),m("positionId"),m("nftAccount"),m("lockNftMint"),o("recentEpoch"),K(o(),8)]);var Qo=L(require("bn.js")),Cn=L(require("decimal.js"));function Te(s,e,t){if(t.isZero())throw new Error("Division by zero");return s.mul(e).div(t)}function he(s,e,t){if(t.isZero())throw new Error("Division by zero");let n=s.mul(e),i=n.div(t);return n.mod(t).isZero()?i:i.addn(1)}var id=new Qo.default(1).shln(256).subn(1);function Zo(s){return s.isZero()?-1:s.bitLength()-1}function Ho(s,e){return new Cn.default(s.toString()).div(Cn.default.pow(2,64)).toDecimalPlaces(e)}var Gr=L(require("bn.js"));var se=L(require("bn.js")),tt=L(require("decimal.js"));var _r=L(require("bn.js"));function Rn(s){let e=Buffer.alloc(4);return e.writeInt32LE(s),e}function jo(s){let e=Buffer.alloc(4);return e.writeInt32BE(s),e}var fd=Buffer.from("amm_config","utf8"),$o=Buffer.from("pool","utf8"),Jo=Buffer.from("pool_vault","utf8"),Er=Buffer.from("pool_reward_vault","utf8"),ei=Buffer.from("position","utf8"),Dr=Buffer.from("tick_array","utf8"),Wr=Buffer.from("operation","utf8"),