@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 201 kB
JavaScript
var rr=Object.defineProperty,ar=Object.defineProperties;var sr=Object.getOwnPropertyDescriptors;var bn=Object.getOwnPropertySymbols;var xo=Object.prototype.hasOwnProperty,Ko=Object.prototype.propertyIsEnumerable;var So=(y,e,t)=>e in y?rr(y,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):y[e]=t,F=(y,e)=>{for(var t in e||(e={}))xo.call(e,t)&&So(y,t,e[t]);if(bn)for(var t of bn(e))Ko.call(e,t)&&So(y,t,e[t]);return y},q=(y,e)=>ar(y,sr(e));var Je=(y,e)=>{var t={};for(var n in y)xo.call(y,n)&&e.indexOf(n)<0&&(t[n]=y[n]);if(y!=null&&bn)for(var n of bn(y))e.indexOf(n)<0&&Ko.call(y,n)&&(t[n]=y[n]);return t};import{PublicKey as Lo}from"@solana/web3.js";import{get as Co,set as ur}from"lodash";var zn=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}},Ro={},cr={};function ee(y){let e=Co(Ro,y);if(!e){let t=Co(cr,y);e=new zn({name:y,logLevel:t}),ur(Ro,y,e)}return e}import{MINT_SIZE as lr,TOKEN_PROGRAM_ID as mr,getTransferFeeConfig as dr,unpackMint as pr}from"@solana/spl-token";var Xn=ee("Raydium_accountInfo_util");async function Ve(y,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=F({batchRequest:!1},t),r=Yn(e,i),a=new Array(r.length).fill([]);if(n){let s=r.map(d=>{let g=y._buildArgs([d.map(m=>m.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:g}}),l=Yn(s,10);a=(await(await Promise.all(l.map(async d=>await y._rpcBatchRequest(d)))).flat()).map(d=>(d.error&&Xn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${d.error.message}`),d.result.value.map(g=>{if(g){let{data:m,executable:p,lamports:f,owner:b,rentEpoch:w}=g;return m.length!==2&&m[1]!=="base64"&&Xn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:p,lamports:f,owner:new Lo(b),rentEpoch:w}}return null})))}else try{a=await Promise.all(r.map(s=>y.getMultipleAccountsInfo(s,o)))}catch(s){s instanceof Error&&Xn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${s.message}`)}return a.flat()}async function _e(y,e,t){let n=await Ve(y,e.map(o=>o.pubkey),t);return e.map((o,i)=>q(F({},o),{accountInfo:n[i]}))}async function Xt({connection:y,mints:e,config:t}){var i,r,a;if(e.length===0)return{};let n=await _e(y,e.map(s=>({pubkey:it(s)})),t),o={};for(let s of n){if(!s.accountInfo||s.accountInfo.data.length<lr){console.log("invalid mint account",s.pubkey.toBase58());continue}let l=pr(s.pubkey,s.accountInfo,(i=s.accountInfo)==null?void 0:i.owner);o[s.pubkey.toString()]=q(F({},l),{programId:((r=s.accountInfo)==null?void 0:r.owner)||mr,feeConfig:(a=dr(l))!=null?a:void 0})}return o[Lo.default.toBase58()]=o[Y.toBase58()],o}import Kt from"bn.js";import HC from"decimal.js";import kr from"big.js";import An from"bn.js";import fr from"toformat";var yr=fr,Yt=yr;import Pn from"big.js";import gr from"bn.js";import Pr from"decimal.js-light";import Qt from"bn.js";var Oo=9007199254740991;function Te(y){let e=ee("Raydium_parseBigNumberish");if(y instanceof Qt)return y;if(typeof y=="string"){if(y.match(/^-?[0-9]+$/))return new Qt(y);e.logWithError(`invalid BigNumberish string: ${y}`)}return typeof y=="number"?(y%1&&e.logWithError(`BigNumberish number underflow: ${y}`),(y>=Oo||y<=-Oo)&&e.logWithError(`BigNumberish number overflow: ${y}`),new Qt(String(y))):typeof y=="bigint"?new Qt(y.toString()):(e.error(`invalid BigNumberish value: ${y}`),new Qt(0))}var gn=ee("module/fraction"),Qn=Yt(Pn),Zt=Yt(Pr),Ar={[0]:Zt.ROUND_DOWN,[1]:Zt.ROUND_HALF_UP,[2]:Zt.ROUND_UP},wr={[0]:Pn.roundDown,[1]:Pn.roundHalfUp,[2]:Pn.roundUp},ie=class{constructor(e,t=new gr(1)){this.numerator=Te(e),this.denominator=Te(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new ie(this.denominator,this.numerator)}add(e){let t=e instanceof ie?e:new ie(Te(e));return this.denominator.eq(t.denominator)?new ie(this.numerator.add(t.numerator),this.denominator):new ie(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof ie?e:new ie(Te(e));return this.denominator.eq(t.denominator)?new ie(this.numerator.sub(t.numerator),this.denominator):new ie(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof ie?e:new ie(Te(e));return new ie(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof ie?e:new ie(Te(e));return new ie(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||gn.logWithError(`${e} is not an integer.`),e<=0&&gn.logWithError(`${e} is not positive.`),Zt.set({precision:e+1,rounding:Ar[n]});let o=new Zt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||gn.logWithError(`${e} is not an integer.`),e<0&&gn.logWithError(`${e} is negative.`),Qn.DP=e,Qn.RM=wr[n]||1,new Qn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Tr=ee("Raydium_amount"),No=Yt(kr);function hr(y,e){let t="0",n="0";if(y.includes(".")){let o=y.split(".");o.length===2?([t,n]=o,n=n.padEnd(e,"0")):Tr.logWithError(`invalid number string, num: ${y}`)}else t=y;return[t,n.slice(0,e)||n]}var he=class extends ie{constructor(t,n,o=!0,i){let r=new An(0),a=Zn.pow(new An(t.decimals));if(o)r=Te(n);else{let s=new An(0),l=new An(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[u,d]=hr(n.toString(),t.decimals);s=Te(u),l=Te(d)}s=s.mul(a),r=s.add(l)}super(r,a);this.logger=ee(i||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new he(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new he(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,o=0){return super.toSignificant(t,n,o)}toFixed(t=this.token.decimals,n,o=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,o)}toExact(t={groupSeparator:""}){return No.DP=this.token.decimals,new No(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Ir}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Mo}from"@solana/spl-token";var wn={chainId:101,address:Ir.default.toBase58(),programId:Mo.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},rt={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Mo.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 jn}from"@solana/web3.js";import{PublicKey as ce,SystemProgram as Fo,SYSVAR_RENT_PUBKEY as Br}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Sr}from"@solana/spl-token";function Ct({pubkey:y,isSigner:e=!1,isWritable:t=!0}){return{pubkey:y,isWritable:t,isSigner:e}}var xr=[Ct({pubkey:Sr,isWritable:!1}),Ct({pubkey:Fo.programId,isWritable:!1}),Ct({pubkey:Br,isWritable:!1})];function Hn({publicKey:y,transformSol:e}){let t=vo(y.toString());if(t instanceof ce)return e&&t.equals(kt)?Y:t;if(e&&t.toString()===kt.toBase58())return Y;if(typeof t=="string"){if(t===ce.default.toBase58())return ce.default;try{return new ce(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function vo(y){try{return new ce(y)}catch{return y}}var ft=new ce("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ze=new ce("SysvarRent111111111111111111111111111111111"),Kr=new ce("SysvarC1ock11111111111111111111111111111111"),yt=new ce("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Cr=new ce("Sysvar1nstructions1111111111111111111111111"),Vo=Fo.programId,Wu=new ce("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),qu=new ce("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Uu=new ce("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Gu=new ce("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),zu=new ce("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Xu=new ce("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Yu=new ce("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Qu=new ce("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Zu=new ce("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Hu=new ce("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ju=new ce("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Y=new ce("So11111111111111111111111111111111111111112"),kt=ce.default;function it(y){return Hn({publicKey:y,transformSol:!0})}var $n=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===kt.toBase58()||e instanceof jn&&kt.equals(e)){this.decimals=rt.decimals,this.symbol=rt.symbol,this.name=rt.name,this.mint=new jn(rt.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=i?jn.default:Hn({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},xe=$n;xe.WSOL=new $n(q(F({},rt),{mint:rt.address}));var Jn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},kn=Jn;kn.SOL=new Jn(wn);import Rr from"bn.js";var _o=new ie(new Rr(100)),at=class extends ie{toSignificant(e=5,t,n){return this.mul(_o).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(_o).toFixed(e,t,n)}};var Lr=ee("Raydium_price"),Xe=class extends ie{constructor(t){let{baseToken:n,quoteToken:o,numerator:i,denominator:r}=t;super(i,r);this.baseToken=n,this.quoteToken=o,this.scalar=new ie(eo(n.decimals),eo(o.decimals))}get raw(){return new ie(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Xe({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Lr.logWithError("mul token not equals");let n=super.mul(t);return new Xe({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,o){return this.adjusted.toSignificant(t,n,o)}toFixed(t=this.quoteToken.decimals,n,o){return this.adjusted.toFixed(t,n,o)}};import{merge as HK}from"lodash";import kc from"axios";var Eo={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"},Or=q(F({},Eo),{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 Gc=ee("Raydium_Api");import{PublicKey as ud,SystemProgram as cd}from"@solana/web3.js";import{AccountLayout as fd,createAssociatedTokenAccountIdempotentInstruction as yd,TOKEN_PROGRAM_ID as bd,TOKEN_2022_PROGRAM_ID as gd}from"@solana/spl-token";import{PublicKey as Mt,sendAndConfirmTransaction as ao,SystemProgram as _r,Transaction as $t,TransactionMessage as Jt,VersionedTransaction as en}from"@solana/web3.js";import Er from"axios";import{PublicKey as to,AddressLookupTableAccount as Ot}from"@solana/web3.js";async function no({connection:y,address:e,cluster:t="mainnet"}){let n=await Ve(y,[...new Set(e.map(i=>i.toString()))].map(i=>new to(i))),o={};for(let i=0;i<e.length;i++){let r=n[i],a=e[i];if(!r)continue;let s=new Ot({key:a,state:Ot.deserialize(r.data)});o[a.toString()]=s,t==="devnet"?Lt[a.toString()]=s:Rt[a.toString()]=s}return o}var Rt={},oo=async y=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Rt[e])return Rt;let t=new to(e),n=await y.getAccountInfo(t);return n&&(Rt[e]=new Ot({key:t,state:Ot.deserialize(n.data)})),Rt},Lt={},io=async y=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Lt[e])return Lt;let t=new to(e),n=await y.getAccountInfo(t);return n&&(Lt[e]=new Ot({key:t,state:Ot.deserialize(n.data)})),Lt};var J={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 Do,Keypair as qo,PublicKey as Nr,Transaction as Uo,TransactionMessage as Mr,VersionedTransaction as Go}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fr}from"@solana/spl-token";var Wo=ee("Raydium_txUtil"),zo=1644;function Tn(y){let e=[],t=[];return y.microLamports&&(e.push(Do.setComputeUnitPrice({microLamports:y.microLamports})),t.push(J.SetComputeUnitPrice)),y.units&&(e.push(Do.setComputeUnitLimit({units:y.units})),t.push(J.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Nt(y,e){var n,o;let t=e!=null?e:"confirmed";return(o=await((n=y.getLatestBlockhash)==null?void 0:n.call(y,{commitment:t})))==null?void 0:o.blockhash}async function hn(y,e){return y.getSignatureStatuses([e]),new Promise((t,n)=>{let o=setTimeout(n,6e4);y.onSignature(e,i=>{if(clearTimeout(o),!i.err){t("");return}n(Object.assign(i.err,{txId:e}))},"confirmed")})}function ro(y,e){y.length<1&&Wo.logWithError(`no instructions provided: ${y.toString()}`),e.length<1&&Wo.logWithError(`no signers provided:, ${e.toString()}`);let t=new Uo;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...y);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<zo}catch{return!1}}function ae(y,e){let[t,n]=Nr.findProgramAddressSync(y,e);return{publicKey:t,nonce:n}}function Ht({instructions:y,payer:e,signers:t}){return ro(y,[e,...t])}function jt({instructions:y,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=qo.generate().publicKey.toString()}){let i=new Mr({payerKey:e,recentBlockhash:n,instructions:y}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Go(i).serialize()).toString("base64").length<zo}catch{return!1}}var vr=y=>Buffer.isBuffer(y)?y:y instanceof Uint8Array?Buffer.from(y.buffer,y.byteOffset,y.byteLength):Buffer.from(y),Vr=y=>{let e=y.serialize({requireAllSignatures:!1,verifySignatures:!1});y instanceof Go&&(e=vr(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Tt(y){let e=[];return y.forEach(t=>{t instanceof Uo&&(t.recentBlockhash||(t.recentBlockhash=Fr.toBase58()),t.feePayer||(t.feePayer=qo.generate().publicKey)),e.push(Vr(t))}),console.log("simulate tx string:",e),e}var In=2e3,Bn=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 Er.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}=Tn(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(_r.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Mt(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(J.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:o=[],endInstructionTypes:i=[],lookupTableAddress:r=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...o),this.endInstructionTypes.push(...i),this.lookupTableAddress.push(...r.filter(a=>a!==Mt.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(q(F({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new $t;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(o=>o.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 o=>{var u;let{recentBlockHash:i,skipPreflight:r=!0,sendAndConfirm:a,notSendToRpc:s}=o||{},l=i!=null?i:await Nt(this.connection,this.blockhashCommitment);if(t.recentBlockhash=l,this.signers.length&&t.sign(...this.signers),Tt([t]),(u=this.owner)!=null&&u.isKeyPair)return{txId:a?await ao(this.connection,t,this.signers.find(g=>g.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:r}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:r}),signedTx:t};if(this.signAllTransactions){let d=await this.signAllTransactions([t]);if(this.signers.length)for(let g of d)try{g.sign(...this.signers)}catch{}return{txId:s?"":await this.connection.sendRawTransaction(d[0].serialize(),{skipPreflight:r}),signedTx:d[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var l;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:o}=this.build(n),i=t.filter(u=>u.transaction.instructions.length>0),r=[o,...i.map(u=>u.transaction)],a=[this.signers,...i.map(u=>u.signers)],s=[...this.instructionTypes,...i.map(u=>u.instructionTypes).flat()];return(l=this.owner)!=null&&l.signer&&a.forEach(u=>{u.some(d=>d.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:r,signers:a,instructionTypes:s,execute:async u=>{var w;let{sequentially:d,onTxUpdate:g,skipTxCount:m=0,recentBlockHash:p,skipPreflight:f=!0}=u||{},b=p!=null?p:await Nt(this.connection,this.blockhashCommitment);if((w=this.owner)!=null&&w.isKeyPair){if(d){let A=[],T=0;for(let I of r){if(++T,T<=m)continue;let P=await ao(this.connection,I,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f});A.push(P)}return{txIds:A,signedTxs:r}}return{txIds:await await Promise.all(r.map(async A=>(A.recentBlockhash=b,await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:f})))),signedTxs:r}}if(this.signAllTransactions){let A=r.map((I,P)=>(I.recentBlockhash=b,a[P].length&&I.sign(...a[P]),I));Tt(A);let T=await this.signAllTransactions(A);if(d){let I=0,P=[],k=async()=>{if(!T[I])return;let B=await this.connection.sendRawTransaction(T[I].serialize(),{skipPreflight:f});P.push({txId:B,status:"sent",signedTx:T[I]}),g==null||g([...P]),I++;let S=!1,C=null,O=null,U=_=>{C!==null&&clearInterval(C),O!==null&&this.connection.removeSignatureListener(O);let v=P.findIndex(V=>V.txId===B);if(v>-1){if(P[v].status==="error"||P[v].status==="success")return;P[v].status=_.err?"error":"success"}g==null||g([...P]),_.err||k()};this.loopMultiTxStatus&&(C=setInterval(async()=>{var _;if(S){clearInterval(C);return}try{let v=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(S=!0,clearInterval(C),U({err:((_=v.meta)==null?void 0:_.err)||null}),console.log("tx status from getTransaction:",B))}catch(v){S=!0,clearInterval(C),console.error("getTransaction timeout:",v,B)}},In)),O=this.connection.onSignature(B,_=>{if(S){this.connection.removeSignatureListener(O);return}S=!0,U(_)},"confirmed"),this.connection.getSignatureStatus(B)};return await k(),{txIds:P.map(B=>B.txId),signedTxs:T}}else{let I=[];for(let P=0;P<T.length;P+=1){let k=await this.connection.sendRawTransaction(T[P].serialize(),{skipPreflight:f});I.push(k)}return{txIds:I,signedTxs:T}}}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 f;let p=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:o,recentBlockhash:i}=p,r=Je(p,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=F(F({},this.cluster==="devnet"?await io(this.connection):await oo(this.connection)),t),s=Array.from(new Set([...n,...this.lookupTableAddress])),l=[];for(let b of s)a[b]===void 0&&l.push(new Mt(b));let u=await no({connection:this.connection,address:l});for(let[b,w]of Object.entries(u))a[b]=w;let d=o?Mt.default.toBase58():i!=null?i:await Nt(this.connection,this.blockhashCommitment),g=new Jt({payerKey:this.feePayer,recentBlockhash:d,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((f=this.owner)==null?void 0:f.signer)&&!this.signers.some(b=>b.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let m=new en(g);return m.sign(this.signers),{builder:this,transaction:m,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var I;let{skipPreflight:w=!0,sendAndConfirm:A,notSendToRpc:T}=b||{};if(Tt([m]),(I=this.owner)!=null&&I.isKeyPair){let P=await this.connection.sendTransaction(m,{skipPreflight:w});return A&&await hn(this.connection,P),{txId:P,signedTx:m}}if(this.signAllTransactions){let P=await this.signAllTransactions([m]);if(this.signers.length)for(let k of P)try{k.sign(this.signers)}catch{}return{txId:T?"":await this.connection.sendTransaction(P[0],{skipPreflight:w}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async buildV0MultiTx(e){var l;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:o}=await this.buildV0(n),i=t.filter(u=>u.builder.instructions.length>0),r=[o,...i.map(u=>u.transaction)],a=[this.signers,...i.map(u=>u.signers)],s=[...this.instructionTypes,...i.map(u=>u.instructionTypes).flat()];return(l=this.owner)!=null&&l.signer&&a.forEach(u=>{u.some(d=>d.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),r.forEach(async(u,d)=>{u.sign(a[d])}),{builder:this,transactions:r,signers:a,instructionTypes:s,buildProps:n,execute:async u=>{var f;let{sequentially:d,onTxUpdate:g,recentBlockHash:m,skipPreflight:p=!0}=u||{};if(m&&r.forEach(b=>b.message.recentBlockhash=m),Tt(r),(f=this.owner)!=null&&f.isKeyPair){if(d){let b=[];for(let w of r){let A=await this.connection.sendTransaction(w,{skipPreflight:p});await hn(this.connection,A),b.push(A)}return{txIds:b,signedTxs:r}}return{txIds:await Promise.all(r.map(async b=>await this.connection.sendTransaction(b,{skipPreflight:p}))),signedTxs:r}}if(this.signAllTransactions){let b=await this.signAllTransactions(r);if(d){let w=0,A=[],T=async()=>{if(!b[w])return;let I=await this.connection.sendTransaction(b[w],{skipPreflight:p});A.push({txId:I,status:"sent",signedTx:b[w]}),g==null||g([...A]),w++;let P=!1,k=null,B=null,S=C=>{k!==null&&clearInterval(k),B!==null&&this.connection.removeSignatureListener(B);let O=A.findIndex(U=>U.txId===I);if(O>-1){if(A[O].status==="error"||A[O].status==="success")return;A[O].status=C.err?"error":"success"}g==null||g([...A]),C.err||T()};this.loopMultiTxStatus&&(k=setInterval(async()=>{var C;if(P){clearInterval(k);return}try{let O=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});O&&(P=!0,clearInterval(k),S({err:((C=O.meta)==null?void 0:C.err)||null}),console.log("tx status from getTransaction:",I))}catch(O){P=!0,clearInterval(k),console.error("getTransaction timeout:",O,I)}},In)),B=this.connection.onSignature(I,C=>{if(P){this.connection.removeSignatureListener(B);return}P=!0,S(C)},"confirmed"),this.connection.getSignatureStatus(I)};return T(),{txIds:[],signedTxs:b}}else{let w=[];for(let A=0;A<b.length;A+=1){let T=await this.connection.sendTransaction(b[A],{skipPreflight:p});w.push(T)}return{txIds:w,signedTxs:b}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var g;let d=e||{},{splitIns:t=[],computeBudgetConfig:n}=d,o=Je(d,["splitIns","computeBudgetConfig"]),i=n?Tn(n):{instructions:[],instructionTypes:[]},r=this.signers.reduce((m,p)=>q(F({},m),{[p.publicKey.toBase58()]:p}),{}),a=[],s=[],l=[],u=0;if(this.allInstructions.forEach(m=>{let p=[...l,m],f=n?[...i.instructions,...p]:p,w=[...new Set(p.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>new Mt(A));if(m!==t[u]&&l.length<12&&(Ht({instructions:f,payer:this.feePayer,signers:w})||Ht({instructions:p,payer:this.feePayer,signers:w})))l.push(m);else{if(l.length===0)throw Error("item ins too big");u+=m===t[u]?1:0,Ht({instructions:n?[...i.instructions,...l]:[...l],payer:this.feePayer,signers:w})?a.push(new $t().add(...i.instructions,...l)):a.push(new $t().add(...l)),s.push(Array.from(new Set(l.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat())).map(A=>r[A]).filter(A=>A!==void 0)),l=[m]}}),l.length>0){let p=[...new Set(l.map(f=>f.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(f=>r[f]).filter(f=>f!==void 0);Ht({instructions:n?[...i.instructions,...l]:[...l],payer:this.feePayer,signers:p.map(f=>f.publicKey)})?a.push(new $t().add(...i.instructions,...l)):a.push(new $t().add(...l)),s.push(p)}return a.forEach(m=>m.feePayer=this.feePayer),(g=this.owner)!=null&&g.signer&&s.forEach(m=>{m.some(p=>p.publicKey.equals(this.owner.publicKey))||m.push(this.owner.signer)}),{builder:this,transactions:a,signers:s,instructionTypes:this.instructionTypes,execute:async m=>{var I;let{sequentially:p,onTxUpdate:f,skipTxCount:b=0,recentBlockHash:w,skipPreflight:A=!0}=m||{},T=w!=null?w:await Nt(this.connection,this.blockhashCommitment);if(a.forEach(async(P,k)=>{P.recentBlockhash=T,s[k].length&&P.sign(...s[k])}),Tt(a),(I=this.owner)!=null&&I.isKeyPair){if(p){let P=0,k=[];for(let B of a){if(++P,P<=b){k.push("tx skipped");continue}let S=await ao(this.connection,B,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});k.push(S)}return{txIds:k,signedTxs:a}}return{txIds:await Promise.all(a.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:A}))),signedTxs:a}}if(this.signAllTransactions){let P=await this.signAllTransactions(a.slice(b,a.length)),k=[...a.slice(0,b),...P];if(p){let B=0,S=[],C=async()=>{if(!k[B])return;B<b&&(S.push({txId:"",status:"success",signedTx:k[B]}),f==null||f([...S]),B++,C());let O=await this.connection.sendRawTransaction(k[B].serialize(),{skipPreflight:A});S.push({txId:O,status:"sent",signedTx:k[B]}),f==null||f([...S]),B++;let U=!1,_=null,v=null,V=D=>{_!==null&&clearInterval(_),v!==null&&this.connection.removeSignatureListener(v);let H=S.findIndex(de=>de.txId===O);if(H>-1){if(S[H].status==="error"||S[H].status==="success")return;S[H].status=D.err?"error":"success"}f==null||f([...S]),D.err||C()};this.loopMultiTxStatus&&(_=setInterval(async()=>{var D;if(U){clearInterval(_);return}try{let H=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});H&&(U=!0,clearInterval(_),V({err:((D=H.meta)==null?void 0:D.err)||null}),console.log("tx status from getTransaction:",O))}catch(H){U=!0,clearInterval(_),console.error("getTransaction timeout:",H,O)}},In)),v=this.connection.onSignature(O,D=>{if(U){this.connection.removeSignatureListener(v);return}U=!0,V(D)},"confirmed"),this.connection.getSignatureStatus(O)};return await C(),{txIds:S.map(O=>O.txId),signedTxs:k}}else{let B=[];for(let S=0;S<k.length;S+=1){let C=await this.connection.sendRawTransaction(k[S].serialize(),{skipPreflight:A});B.push(C)}return{txIds:B,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var I;let T=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:i=[],insCountLimit:r=12}=T,a=Je(T,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),s=F(F({},this.cluster==="devnet"?await io(this.connection):await oo(this.connection)),o),l=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let P of l)s[P]===void 0&&u.push(new Mt(P));let d=await no({connection:this.connection,address:u});for(let[P,k]of Object.entries(d))s[P]=k;let g=t?Tn(t):{instructions:[],instructionTypes:[]},m=await Nt(this.connection,this.blockhashCommitment),p=this.signers.reduce((P,k)=>q(F({},P),{[k.publicKey.toBase58()]:k}),{}),f=[],b=[],w=[],A=0;if(this.allInstructions.forEach(P=>{let k=[...w,P],B=t?[...g.instructions,...k]:k;if(P!==n[A]&&w.length<r&&(jt({instructions:B,payer:this.feePayer,lookupTableAddressAccount:s})||jt({instructions:k,payer:this.feePayer,lookupTableAddressAccount:s})))w.push(P);else{if(w.length===0)throw Error("item ins too big");A+=P===n[A]?1:0;let S={};for(let C of[...new Set(l)])s[C]!==void 0&&(S[C]=s[C]);if(t&&jt({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let C=new Jt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));f.push(new en(C))}else{let C=new Jt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...w]}).compileToV0Message(Object.values(s));f.push(new en(C))}b.push(Array.from(new Set(w.map(C=>C.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(C=>p[C]).filter(C=>C!==void 0)),w=[P]}}),w.length>0){let k=[...new Set(w.map(B=>B.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(B=>p[B]).filter(B=>B!==void 0);if(t&&jt({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let B=new Jt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));f.push(new en(B))}else{let B=new Jt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...w]}).compileToV0Message(Object.values(s));f.push(new en(B))}b.push(k)}return(I=this.owner)!=null&&I.signer&&b.forEach(P=>{P.some(k=>k.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),f.forEach((P,k)=>{P.sign(b[k])}),{builder:this,transactions:f,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async P=>{var U;let{sequentially:k,onTxUpdate:B,skipTxCount:S=0,recentBlockHash:C,skipPreflight:O=!0}=P||{};if(f.map(async(_,v)=>{b[v].length&&_.sign(b[v]),C&&(_.message.recentBlockhash=C)}),Tt(f),(U=this.owner)!=null&&U.isKeyPair){if(k){let _=0,v=[];for(let V of f){if(++_,_<=S){console.log("skip tx: ",_),v.push("tx skipped");continue}let D=await this.connection.sendTransaction(V,{skipPreflight:O});await hn(this.connection,D),v.push(D)}return{txIds:v,signedTxs:f}}return{txIds:await Promise.all(f.map(async _=>await this.connection.sendTransaction(_,{skipPreflight:O}))),signedTxs:f}}if(this.signAllTransactions){let _=await this.signAllTransactions(f.slice(S,f.length)),v=[...f.slice(0,S),..._];if(k){let V=0,D=[],H=async()=>{if(!v[V])return;if(V<S){D.push({txId:"",status:"success",signedTx:v[V]}),B==null||B([...D]),V++,H();return}let de=await this.connection.sendTransaction(v[V],{skipPreflight:O});D.push({txId:de,status:"sent",signedTx:v[V]}),B==null||B([...D]),V++;let pe=!1,Re=null,pt=null,ve=Ne=>{Re!==null&&clearInterval(Re),pt!==null&&this.connection.removeSignatureListener(pt);let ke=D.findIndex(Gn=>Gn.txId===de);if(ke>-1){if(D[ke].status==="error"||D[ke].status==="success")return;D[ke].status=Ne.err?"error":"success"}B==null||B([...D]),Ne.err||H()};this.loopMultiTxStatus&&(Re=setInterval(async()=>{var Ne;if(pe){clearInterval(Re);return}try{let ke=await this.connection.getTransaction(de,{commitment:"confirmed",maxSupportedTransactionVersion:0});ke&&(pe=!0,clearInterval(Re),ve({err:((Ne=ke.meta)==null?void 0:Ne.err)||null}),console.log("tx status from getTransaction:",de))}catch(ke){pe=!0,clearInterval(Re),console.error("getTransaction timeout:",ke,de)}},In)),pt=this.connection.onSignature(de,Ne=>{if(pe){this.connection.removeSignatureListener(pt);return}pe=!0,ve(Ne)},"confirmed"),this.connection.getSignatureStatus(de)};return H(),{txIds:[],signedTxs:v}}else{let V=[];for(let D=0;D<v.length;D+=1){let H=await this.connection.sendTransaction(v[D],{skipPreflight:O});V.push(H)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};var so=(...y)=>y.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Me=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=ee(t)}createTxBuilder(e){return this.scope.checkOwner(),new Bn({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(so(e))}logInfo(...e){this.logger.info(so(e))}logAndCreateError(...e){let t=so(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Em,SystemProgram as Wm}from"@solana/web3.js";import Gm from"bn.js";import{createCloseAccountInstruction as Qm,createInitializeAccountInstruction as Zm,createTransferInstruction as Hm,TOKEN_PROGRAM_ID as jm}from"@solana/spl-token";import{Keypair as Sm,PublicKey as xm}from"@solana/web3.js";import Rm from"bn.js";import{TOKEN_PROGRAM_ID as Nm}from"@solana/spl-token";import{PublicKey as $r}from"@solana/web3.js";import jo,{isBN as $o}from"bn.js";import{bits as Dr,BitStructure as Ol,blob as Wr,Blob as Nl,cstr as Ml,f32 as Fl,f32be as vl,f64 as Vl,f64be as _l,greedy as El,Layout as qr,ns64 as Dl,ns64be as Wl,nu64 as Ur,nu64be as ql,offset as Gr,s16 as Ul,s16be as Gl,s24 as zl,s24be as Xl,s32 as zr,s32be as Yl,s40 as Ql,s40be as Zl,s48 as Hl,s48be as jl,s8 as $l,seq as Xr,struct as Jl,Structure as Yr,u16 as Qr,u16be as em,u24 as tm,u24be as nm,u32 as Zr,u32be as om,u40 as im,u40be as rm,u48 as am,u48be as sm,u8 as Hr,UInt as jr,union as um,Union as cm,unionLayoutDiscriminator as lm,utf8 as mm}from"@solana/buffer-layout";var Sn=qr,Xo=Yr;var uo=jr;var Yo=Hr,Ke=Qr;var xn=Zr;var Qo=Ur;var Ae=zr;var Zo=Xr;var j=Wr;var co=Dr,Ho=Gr;var It=class extends Sn{constructor(t,n,o){super(t,o);this.blob=j(t),this.signed=n}decode(t,n=0){let o=new jo(this.blob.decode(t,n),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,n,o=0){return typeof t=="number"&&(t=new jo(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},Kn=class extends Sn{constructor(t){super(8,t);this._lower=co(xn(),!1),this._upper=co(xn(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let o=this._lower.decode(t,n),i=this._upper.decode(t,n+this._lower.span);return F(F({},o),i)}encode(t,n,o=0){return this._lower.encode(t,n,o)+this._upper.encode(t,n,o+this._lower.span)}};function N(y){return new uo(1,y)}function le(y){return new uo(4,y)}function c(y){return new It(8,!1,y)}function X(y){return new It(16,!1,y)}function Jo(y){return new It(1,!0,y)}function Ft(y){return new It(8,!0,y)}function ei(y){return new It(16,!0,y)}var tn=class extends Sn{constructor(t,n,o,i){super(t.span,i);this.layout=t,this.decoder=n,this.encoder=o}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,o){return this.layout.encode(this.encoder(t),n,o)}getSpan(t,n){return this.layout.getSpan(t,n)}};function h(y){return new tn(j(32),e=>new $r(e),e=>e.toBuffer(),y)}function ye(y){return new tn(Yo(),Jr,ea,y)}function Jr(y){if(y===0)return!1;if(y===1)return!0;throw new Error("Invalid bool: "+y)}function ea(y){return y?1:0}function ti(y,e){let t=xn("length"),n=L([t,E(y,Ho(t,-t.span),"values")]);return new tn(n,({values:o})=>o,o=>({values:o}),e)}var lo=class extends Xo{decode(e,t){return super.decode(e,t)}};function L(y,e,t){return new lo(y,e,t)}function E(y,e,t){let n,o=typeof e=="number"?e:$o(e)?e.toNumber():new Proxy(e,{get(i,r){if(!n){let a=Reflect.get(i,"count");n=$o(a)?a.toNumber():a,Reflect.set(i,"count",n)}return Reflect.get(i,r)},set(i,r,a){return r==="count"&&(n=a),Reflect.set(i,r,a)}});return Zo(y,o,t)}var vt=L([h("mint"),h("owner"),c("amount"),le("delegateOption"),h("delegate"),N("state"),le("isNativeOption"),c("isNative"),c("delegatedAmount"),le("closeAuthorityOption"),h("closeAuthority")]);import{PublicKey as ig,SystemProgram as rg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as sg}from"@solana/spl-token";import{PublicKey as na}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as oa}from"@solana/spl-token";function Z(y,e,t){return ae([y.toBuffer(),(t!=null?t:oa).toBuffer(),e.toBuffer()],new na("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as G}from"@solana/web3.js";var oi=new G("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),ii=new G("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),ri=new G("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),mo=new G("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Kd=new G("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ia=new G("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ai=new G("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),si=new G("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Cd=new G("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ra=new G("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),bt=new G("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),nn=new G("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Rn=new G("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ui=new G("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Rd=new G("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),aa=new G("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),sa=new G("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ua=new G("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ca=new G("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),la=new G("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),po=new G("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ma=new G("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ld=new G("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),da=new G("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),pa=new G("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),fa=new G("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Od=new G("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Nd=new G("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Md=new G("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Fd=new G("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vd=new G("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),on={IDO_PROGRAM_ID_V1:sa,IDO_PROGRAM_ID_V2:ua,IDO_PROGRAM_ID_V3:ca,IDO_PROGRAM_ID_V4:la};var gt={OPEN_BOOK_PROGRAM:new G("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new G("Ray1111111111111111111111111111111111111111"),AMM_V4:new G("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new G("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new G("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new G("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new G("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new G("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new G("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new G("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new G("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new G("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:G.default,Router:new G("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new G("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new G("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new G("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new G("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new G("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new G("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new G("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new G("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new G("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new G("Ray1111111111111111111111111111111111111111")};import gg from"decimal.js";import ne from"bn.js";var se=new ne(1).shln(64),Vt=64,ya=new ne(1).shln(128),ct=new ne(1).shln(64).subn(1),ba=new ne(1).shln(128).subn(1),Ye=-443636,Qe=443636,Ze=new ne("4295048016"),He=new ne("79226673521066979257578248091"),ci=new ne("59543866431248"),li=new ne("184467440737095516"),mi=new ne("15793534762490258745"),di=16,Ln=512,Ee=60,Gd=new ne("18446743708227953217"),pi=[{bit:0,factor:new ne("fffcb933bd6fb800",16)},{bit:1,factor:new ne("fff97272373d4000",16)},{bit:2,factor:new ne("fff2e50f5f657000",16)},{bit:3,factor:new ne("ffe5caca7e10f000",16)},{bit:4,factor:new ne("ffcb9843d60f7000",16)},{bit:5,factor:new ne("ff973b41fa98e800",16)},{bit:6,factor:new ne("ff2ea16466c9b000",16)},{bit:7,factor:new ne("fe5dee046a9a3800",16)},{bit:8,factor:new ne("fcbe86c7900bb000",16)},{bit:9,factor:new ne("f987a7253ac65800",16)},{bit:10,factor:new ne("f3392b0822bb6000",16)},{bit:11,factor:new ne("e7159475a2caf000",16)},{bit:12,factor:new ne("d097f3bdfd2f2000",16)},{bit:13,factor:new ne("a9f746462d9f8000",16)},{bit:14,factor:new ne("70d869a156f31c00",16)},{bit:15,factor:new ne("31be135f97ed3200",16)},{bit:16,factor:new ne("9aa508b5b85a500",16)},{bit:17,factor:new ne("5d6af8dedc582c",16)},{bit:18,factor:new ne("2216e584f5fa",16)}],lt=1e6;var On=1e5,rn=1e4,fi=1e4,yi=1e5;var an=3,bi=100;var gi=10,Pi=100,_t=14;var W=new ne(0),je=new ne(1),zd=new ne(-1),fo={tvl:0,volumeQuote:0,mintAmountA:0,mintAmountB:0,rewardDefaultInfos:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,day:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},week:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},month:{volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[0]},pooltype:[]};var Xd=new ne("18446744073700000000");var yo=L([j(8),N("bump"),Ke("index"),h("owner"),le("protocolFeeRate"),le("tradeFeeRate"),Ke("tickSpacing"),le("fundFeeRate"),E(le(),1),h("fundOwner"),E(c(),3)]),ga=L([le("blockTimestamp"),Ft("tickCumulative"),E(c(),4)]),Ai=L([j(8),ye("initialized"),c("recentEpoch"),Ke("observationIndex"),h("poolId"),E(ga,bi,"observations"),E(c(),4)]),Pa=L([Ke("filterPeriod"),Ke("decayPeriod"),Ke("reductionFactor"),le("dynamicFeeControl"),le("maxVolatilityAccumulator"),Ae("tickSpacingIndexReference"),le("volatilityReference"),le("volatilityAccumulator"),c("lastUpdateTimestamp"),E(N(),46)]),Aa=L([N("state"),c("openTime"),c("endTime"),c("lastUpdateTime"),X("emissionsPerSecondX64"),c("totalEmissioned"),c("claimed"),h("mint"),h("vault"),h("creator"),X("growthGlobalX64")]),sn=L([j(8),N("bump"),h("configId"),h("creator"),h("mintA"),h("mintB"),h("vaultA"),h("vaultB"),h("observationId"),N("mintDecimalsA"),N("mintDecimalsB"),Ke("tickSpacing"),X("liquidity"),X("sqrtPriceX64"),Ae("tickCurrent"),le(),X("feeGrowthGlobalX64A"),X("feeGrowthGlobalX64B"),c("protocolFeesTokenA"),c("protocolFeesTokenB"),E(X(),4),N("status"),N("feeOn"),j(6),E(Aa,an,"rewardInfos"),j(8*16,"tickArrayBitmap"),E(c(),4),c("fundFeesTokenA"),c("fundFeesTokenB"),c("startTime"),c("recentEpoch"),Pa.replicate("dynamicFeeInfo"),E(c(),46)]),wa=L([X("growthInsideLastX64"),c("rewardAmountOwed")]),Nn=L([j(8),N("bump"),h("nftMint"),h("poolId"),Ae("tickLower"),Ae("tickUpper"),X("liquidity"),X("feeGrowthInsideLastX64A"),X("feeGrowthInsideLastX64B"),c("tokenFeesOwedA"),c("tokenFeesOwedB"),E(wa,an,"rewardInfos"),c("recentEpoch"),E(c(),7)]),Hd=L([j(8),N("bump"),h("poolId"),Ae("tickLower"),Ae("tickUpper"),X("liquidity"),X("feeGrowthInsideLastX64A"),X("feeGrowthInsideLastX64B"),c("tokenFeesOwedA"),c("tokenFeesOwedB"),E(X(),an,"rewardGrowthInside"),c("recentEpoch"),E(c(),7)]),ka=L([Ae("tick"),ei("liquidityNet"),X("liquidityGross"),X("feeGrowthOutsi