@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 209 kB
JavaScript
var pr=Object.defineProperty,fr=Object.defineProperties;var yr=Object.getOwnPropertyDescriptors;var An=Object.getOwnPropertySymbols;var Fo=Object.prototype.hasOwnProperty,vo=Object.prototype.propertyIsEnumerable;var Mo=(m,e,t)=>e in m?pr(m,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):m[e]=t,F=(m,e)=>{for(var t in e||(e={}))Fo.call(e,t)&&Mo(m,t,e[t]);if(An)for(var t of An(e))vo.call(e,t)&&Mo(m,t,e[t]);return m},q=(m,e)=>fr(m,yr(e));var et=(m,e)=>{var t={};for(var n in m)Fo.call(m,n)&&e.indexOf(n)<0&&(t[n]=m[n]);if(m!=null&&An)for(var n of An(m))e.indexOf(n)<0&&vo.call(m,n)&&(t[n]=m[n]);return t};import{PublicKey as Eo}from"@solana/web3.js";import{get as Vo,set as br}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}},_o={},gr={};function ee(m){let e=Vo(_o,m);if(!e){let t=Vo(gr,m);e=new Zn({name:m,logLevel:t}),br(_o,m,e)}return e}import{MINT_SIZE as Pr,TOKEN_PROGRAM_ID as Ar,getTransferFeeConfig as wr,unpackMint as kr}from"@solana/spl-token";var Hn=ee("Raydium_accountInfo_util");async function _e(m,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=F({batchRequest:!1},t),r=jn(e,i),a=new Array(r.length).fill([]);if(n){let s=r.map(p=>{let g=m._buildArgs([p.map(d=>d.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:g}}),c=jn(s,10);a=(await(await Promise.all(c.map(async p=>await m._rpcBatchRequest(p)))).flat()).map(p=>(p.error&&Hn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${p.error.message}`),p.result.value.map(g=>{if(g){let{data:d,executable:f,lamports:y,owner:b,rentEpoch:w}=g;return d.length!==2&&d[1]!=="base64"&&Hn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:f,lamports:y,owner:new Eo(b),rentEpoch:w}}return null})))}else try{a=await Promise.all(r.map(s=>m.getMultipleAccountsInfo(s,o)))}catch(s){s instanceof Error&&Hn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${s.message}`)}return a.flat()}async function Ee(m,e,t){let n=await _e(m,e.map(o=>o.pubkey),t);return e.map((o,i)=>q(F({},o),{accountInfo:n[i]}))}async function Zt({connection:m,mints:e,config:t}){var i,r,a;if(e.length===0)return{};let n=await Ee(m,e.map(s=>({pubkey:at(s)})),t),o={};for(let s of n){if(!s.accountInfo||s.accountInfo.data.length<Pr){console.log("invalid mint account",s.pubkey.toBase58());continue}let c=kr(s.pubkey,s.accountInfo,(i=s.accountInfo)==null?void 0:i.owner);o[s.pubkey.toString()]=q(F({},c),{programId:((r=s.accountInfo)==null?void 0:r.owner)||Ar,feeConfig:(a=wr(c))!=null?a:void 0})}return o[Eo.default.toBase58()]=o[Y.toBase58()],o}import Rt from"bn.js";import AR from"decimal.js";import Cr from"big.js";import Tn from"bn.js";import Tr from"toformat";var hr=Tr,Ht=hr;import kn from"big.js";import Br from"bn.js";import Sr from"decimal.js-light";import jt from"bn.js";var Do=9007199254740991;function Te(m){let e=ee("Raydium_parseBigNumberish");if(m instanceof jt)return m;if(typeof m=="string"){if(m.match(/^-?[0-9]+$/))return new jt(m);e.logWithError(`invalid BigNumberish string: ${m}`)}return typeof m=="number"?(m%1&&e.logWithError(`BigNumberish number underflow: ${m}`),(m>=Do||m<=-Do)&&e.logWithError(`BigNumberish number overflow: ${m}`),new jt(String(m))):typeof m=="bigint"?new jt(m.toString()):(e.error(`invalid BigNumberish value: ${m}`),new jt(0))}var wn=ee("module/fraction"),$n=Ht(kn),$t=Ht(Sr),xr={[0]:$t.ROUND_DOWN,[1]:$t.ROUND_HALF_UP,[2]:$t.ROUND_UP},Kr={[0]:kn.roundDown,[1]:kn.roundHalfUp,[2]:kn.roundUp},ie=class{constructor(e,t=new Br(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)||wn.logWithError(`${e} is not an integer.`),e<=0&&wn.logWithError(`${e} is not positive.`),$t.set({precision:e+1,rounding:xr[n]});let o=new $t(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)||wn.logWithError(`${e} is not an integer.`),e<0&&wn.logWithError(`${e} is negative.`),$n.DP=e,$n.RM=Kr[n]||1,new $n(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Rr=ee("Raydium_amount"),Wo=Ht(Cr);function Lr(m,e){let t="0",n="0";if(m.includes(".")){let o=m.split(".");o.length===2?([t,n]=o,n=n.padEnd(e,"0")):Rr.logWithError(`invalid number string, num: ${m}`)}else t=m;return[t,n.slice(0,e)||n]}var he=class extends ie{constructor(t,n,o=!0,i){let r=new Tn(0),a=Jn.pow(new Tn(t.decimals));if(o)r=Te(n);else{let s=new Tn(0),c=new Tn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[u,p]=Lr(n.toString(),t.decimals);s=Te(u),c=Te(p)}s=s.mul(a),r=s.add(c)}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 Wo.DP=this.token.decimals,new Wo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Or}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as qo}from"@solana/spl-token";var hn={chainId:101,address:Or.default.toBase58(),programId:qo.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},st={chainId:101,address:"So11111111111111111111111111111111111111112",programId:qo.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 to}from"@solana/web3.js";import{PublicKey as le,SystemProgram as Uo,SYSVAR_RENT_PUBKEY as Nr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Mr}from"@solana/spl-token";function Lt({pubkey:m,isSigner:e=!1,isWritable:t=!0}){return{pubkey:m,isWritable:t,isSigner:e}}var Fr=[Lt({pubkey:Mr,isWritable:!1}),Lt({pubkey:Uo.programId,isWritable:!1}),Lt({pubkey:Nr,isWritable:!1})];function eo({publicKey:m,transformSol:e}){let t=Go(m.toString());if(t instanceof le)return e&&t.equals(ht)?Y:t;if(e&&t.toString()===ht.toBase58())return Y;if(typeof t=="string"){if(t===le.default.toBase58())return le.default;try{return new le(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Go(m){try{return new le(m)}catch{return m}}var bt=new le("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new le("SysvarRent111111111111111111111111111111111"),vr=new le("SysvarC1ock11111111111111111111111111111111"),gt=new le("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Vr=new le("Sysvar1nstructions1111111111111111111111111"),zo=Uo.programId,ec=new le("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),tc=new le("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),nc=new le("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),oc=new le("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ic=new le("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),rc=new le("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ac=new le("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),sc=new le("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),uc=new le("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),cc=new le("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),lc=new le("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Y=new le("So11111111111111111111111111111111111111112"),ht=le.default;function at(m){return eo({publicKey:m,transformSol:!0})}var no=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===ht.toBase58()||e instanceof to&&ht.equals(e)){this.decimals=st.decimals,this.symbol=st.symbol,this.name=st.name,this.mint=new to(st.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?to.default:eo({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},xe=no;xe.WSOL=new no(q(F({},st),{mint:st.address}));var oo=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},In=oo;In.SOL=new oo(hn);import _r from"bn.js";var Xo=new ie(new _r(100)),ut=class extends ie{toSignificant(e=5,t,n){return this.mul(Xo).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(Xo).toFixed(e,t,n)}};var Er=ee("Raydium_price"),Ye=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(io(n.decimals),io(o.decimals))}get raw(){return new ie(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Ye({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Er.logWithError("mul token not equals");let n=super.mul(t);return new Ye({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 AC}from"lodash";import Mc from"axios";var Yo={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"},Dr=q(F({},Yo),{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 ol=ee("Raydium_Api");import{PublicKey as kd,SystemProgram as Td}from"@solana/web3.js";import{AccountLayout as xd,createAssociatedTokenAccountIdempotentInstruction as Kd,TOKEN_PROGRAM_ID as Cd,TOKEN_2022_PROGRAM_ID as Rd}from"@solana/spl-token";import{PublicKey as vt,sendAndConfirmTransaction as lo,SystemProgram as Xr,Transaction as tn,TransactionMessage as nn,VersionedTransaction as on}from"@solana/web3.js";import Yr from"axios";import{PublicKey as ro,AddressLookupTableAccount as Mt}from"@solana/web3.js";async function ao({connection:m,address:e,cluster:t="mainnet"}){let n=await _e(m,[...new Set(e.map(i=>i.toString()))].map(i=>new ro(i))),o={};for(let i=0;i<e.length;i++){let r=n[i],a=e[i];if(!r)continue;let s=new Mt({key:a,state:Mt.deserialize(r.data)});o[a.toString()]=s,t==="devnet"?Nt[a.toString()]=s:Ot[a.toString()]=s}return o}var Ot={},so=async m=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ot[e])return Ot;let t=new ro(e),n=await m.getAccountInfo(t);return n&&(Ot[e]=new Mt({key:t,state:Mt.deserialize(n.data)})),Ot},Nt={},uo=async m=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Nt[e])return Nt;let t=new ro(e),n=await m.getAccountInfo(t);return n&&(Nt[e]=new Mt({key:t,state:Mt.deserialize(n.data)})),Nt};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 Qo,Keypair as Ho,PublicKey as Wr,Transaction as jo,TransactionMessage as qr,VersionedTransaction as $o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ur}from"@solana/spl-token";var Zo=ee("Raydium_txUtil"),Jo=1644;function Bn(m){let e=[],t=[];return m.microLamports&&(e.push(Qo.setComputeUnitPrice({microLamports:m.microLamports})),t.push(J.SetComputeUnitPrice)),m.units&&(e.push(Qo.setComputeUnitLimit({units:m.units})),t.push(J.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Ft(m,e){var n,o;let t=e!=null?e:"confirmed";return(o=await((n=m.getLatestBlockhash)==null?void 0:n.call(m,{commitment:t})))==null?void 0:o.blockhash}async function Sn(m,e){return m.getSignatureStatuses([e]),new Promise((t,n)=>{let o=setTimeout(n,6e4);m.onSignature(e,i=>{if(clearTimeout(o),!i.err){t("");return}n(Object.assign(i.err,{txId:e}))},"confirmed")})}function co(m,e){m.length<1&&Zo.logWithError(`no instructions provided: ${m.toString()}`),e.length<1&&Zo.logWithError(`no signers provided:, ${e.toString()}`);let t=new jo;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...m);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Jo}catch{return!1}}function re(m,e){let[t,n]=Wr.findProgramAddressSync(m,e);return{publicKey:t,nonce:n}}function Jt({instructions:m,payer:e,signers:t}){return co(m,[e,...t])}function en({instructions:m,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Ho.generate().publicKey.toString()}){let i=new qr({payerKey:e,recentBlockhash:n,instructions:m}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new $o(i).serialize()).toString("base64").length<Jo}catch{return!1}}var Gr=m=>Buffer.isBuffer(m)?m:m instanceof Uint8Array?Buffer.from(m.buffer,m.byteOffset,m.byteLength):Buffer.from(m),zr=m=>{let e=m.serialize({requireAllSignatures:!1,verifySignatures:!1});m instanceof $o&&(e=Gr(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function It(m){let e=[];return m.forEach(t=>{t instanceof jo&&(t.recentBlockhash||(t.recentBlockhash=Ur.toBase58()),t.feePayer||(t.feePayer=Ho.generate().publicKey)),e.push(zr(t))}),console.log("simulate tx string:",e),e}var xn=2e3,Kn=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 Yr.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}=Bn(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Xr.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new vt(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!==vt.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 tn;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||{},c=i!=null?i:await Ft(this.connection,this.blockhashCommitment);if(t.recentBlockhash=c,this.signers.length&&t.sign(...this.signers),It([t]),(u=this.owner)!=null&&u.isKeyPair)return{txId:a?await lo(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 p=await this.signAllTransactions([t]);if(this.signers.length)for(let g of p)try{g.sign(...this.signers)}catch{}return{txId:s?"":await this.connection.sendRawTransaction(p[0].serialize(),{skipPreflight:r}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var c;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(c=this.owner)!=null&&c.signer&&a.forEach(u=>{u.some(p=>p.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:p,onTxUpdate:g,skipTxCount:d=0,recentBlockHash:f,skipPreflight:y=!0}=u||{},b=f!=null?f:await Ft(this.connection,this.blockhashCommitment);if((w=this.owner)!=null&&w.isKeyPair){if(p){let A=[],T=0;for(let I of r){if(++T,T<=d)continue;let P=await lo(this.connection,I,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y});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:y})))),signedTxs:r}}if(this.signAllTransactions){let A=r.map((I,P)=>(I.recentBlockhash=b,a[P].length&&I.sign(...a[P]),I));It(A);let T=await this.signAllTransactions(A);if(p){let I=0,P=[],k=async()=>{if(!T[I])return;let B=await this.connection.sendRawTransaction(T[I].serialize(),{skipPreflight:y});P.push({txId:B,status:"sent",signedTx:T[I]}),g==null||g([...P]),I++;let S=!1,C=null,O=null,G=_=>{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),G({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)}},xn)),O=this.connection.onSignature(B,_=>{if(S){this.connection.removeSignatureListener(O);return}S=!0,G(_)},"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:y});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 y;let f=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:o,recentBlockhash:i}=f,r=et(f,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=F(F({},this.cluster==="devnet"?await uo(this.connection):await so(this.connection)),t),s=Array.from(new Set([...n,...this.lookupTableAddress])),c=[];for(let b of s)a[b]===void 0&&c.push(new vt(b));let u=await ao({connection:this.connection,address:c});for(let[b,w]of Object.entries(u))a[b]=w;let p=o?vt.default.toBase58():i!=null?i:await Ft(this.connection,this.blockhashCommitment),g=new nn({payerKey:this.feePayer,recentBlockhash:p,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((y=this.owner)==null?void 0:y.signer)&&!this.signers.some(b=>b.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let d=new on(g);return d.sign(this.signers),{builder:this,transaction:d,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var I;let{skipPreflight:w=!0,sendAndConfirm:A,notSendToRpc:T}=b||{};if(It([d]),(I=this.owner)!=null&&I.isKeyPair){let P=await this.connection.sendTransaction(d,{skipPreflight:w});return A&&await Sn(this.connection,P),{txId:P,signedTx:d}}if(this.signAllTransactions){let P=await this.signAllTransactions([d]);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 c;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(c=this.owner)!=null&&c.signer&&a.forEach(u=>{u.some(p=>p.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),r.forEach(async(u,p)=>{u.sign(a[p])}),{builder:this,transactions:r,signers:a,instructionTypes:s,buildProps:n,execute:async u=>{var y;let{sequentially:p,onTxUpdate:g,recentBlockHash:d,skipPreflight:f=!0}=u||{};if(d&&r.forEach(b=>b.message.recentBlockhash=d),It(r),(y=this.owner)!=null&&y.isKeyPair){if(p){let b=[];for(let w of r){let A=await this.connection.sendTransaction(w,{skipPreflight:f});await Sn(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:f}))),signedTxs:r}}if(this.signAllTransactions){let b=await this.signAllTransactions(r);if(p){let w=0,A=[],T=async()=>{if(!b[w])return;let I=await this.connection.sendTransaction(b[w],{skipPreflight:f});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(G=>G.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)}},xn)),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:f});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 p=e||{},{splitIns:t=[],computeBudgetConfig:n}=p,o=et(p,["splitIns","computeBudgetConfig"]),i=n?Bn(n):{instructions:[],instructionTypes:[]},r=this.signers.reduce((d,f)=>q(F({},d),{[f.publicKey.toBase58()]:f}),{}),a=[],s=[],c=[],u=0;if(this.allInstructions.forEach(d=>{let f=[...c,d],y=n?[...i.instructions,...f]:f,w=[...new Set(f.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>new vt(A));if(d!==t[u]&&c.length<12&&(Jt({instructions:y,payer:this.feePayer,signers:w})||Jt({instructions:f,payer:this.feePayer,signers:w})))c.push(d);else{if(c.length===0)throw Error("item ins too big");u+=d===t[u]?1:0,Jt({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:w})?a.push(new tn().add(...i.instructions,...c)):a.push(new tn().add(...c)),s.push(Array.from(new Set(c.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat())).map(A=>r[A]).filter(A=>A!==void 0)),c=[d]}}),c.length>0){let f=[...new Set(c.map(y=>y.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(y=>r[y]).filter(y=>y!==void 0);Jt({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:f.map(y=>y.publicKey)})?a.push(new tn().add(...i.instructions,...c)):a.push(new tn().add(...c)),s.push(f)}return a.forEach(d=>d.feePayer=this.feePayer),(g=this.owner)!=null&&g.signer&&s.forEach(d=>{d.some(f=>f.publicKey.equals(this.owner.publicKey))||d.push(this.owner.signer)}),{builder:this,transactions:a,signers:s,instructionTypes:this.instructionTypes,execute:async d=>{var I;let{sequentially:f,onTxUpdate:y,skipTxCount:b=0,recentBlockHash:w,skipPreflight:A=!0}=d||{},T=w!=null?w:await Ft(this.connection,this.blockhashCommitment);if(a.forEach(async(P,k)=>{P.recentBlockhash=T,s[k].length&&P.sign(...s[k])}),It(a),(I=this.owner)!=null&&I.isKeyPair){if(f){let P=0,k=[];for(let B of a){if(++P,P<=b){k.push("tx skipped");continue}let S=await lo(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(f){let B=0,S=[],C=async()=>{if(!k[B])return;B<b&&(S.push({txId:"",status:"success",signedTx:k[B]}),y==null||y([...S]),B++,C());let O=await this.connection.sendRawTransaction(k[B].serialize(),{skipPreflight:A});S.push({txId:O,status:"sent",signedTx:k[B]}),y==null||y([...S]),B++;let G=!1,_=null,v=null,V=D=>{_!==null&&clearInterval(_),v!==null&&this.connection.removeSignatureListener(v);let H=S.findIndex(pe=>pe.txId===O);if(H>-1){if(S[H].status==="error"||S[H].status==="success")return;S[H].status=D.err?"error":"success"}y==null||y([...S]),D.err||C()};this.loopMultiTxStatus&&(_=setInterval(async()=>{var D;if(G){clearInterval(_);return}try{let H=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});H&&(G=!0,clearInterval(_),V({err:((D=H.meta)==null?void 0:D.err)||null}),console.log("tx status from getTransaction:",O))}catch(H){G=!0,clearInterval(_),console.error("getTransaction timeout:",H,O)}},xn)),v=this.connection.onSignature(O,D=>{if(G){this.connection.removeSignatureListener(v);return}G=!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=et(T,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),s=F(F({},this.cluster==="devnet"?await uo(this.connection):await so(this.connection)),o),c=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let P of c)s[P]===void 0&&u.push(new vt(P));let p=await ao({connection:this.connection,address:u});for(let[P,k]of Object.entries(p))s[P]=k;let g=t?Bn(t):{instructions:[],instructionTypes:[]},d=await Ft(this.connection,this.blockhashCommitment),f=this.signers.reduce((P,k)=>q(F({},P),{[k.publicKey.toBase58()]:k}),{}),y=[],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&&(en({instructions:B,payer:this.feePayer,lookupTableAddressAccount:s})||en({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(c)])s[C]!==void 0&&(S[C]=s[C]);if(t&&en({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:d})){let C=new nn({payerKey:this.feePayer,recentBlockhash:d,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));y.push(new on(C))}else{let C=new nn({payerKey:this.feePayer,recentBlockhash:d,instructions:[...w]}).compileToV0Message(Object.values(s));y.push(new on(C))}b.push(Array.from(new Set(w.map(C=>C.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(C=>f[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=>f[B]).filter(B=>B!==void 0);if(t&&en({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:d})){let B=new nn({payerKey:this.feePayer,recentBlockhash:d,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));y.push(new on(B))}else{let B=new nn({payerKey:this.feePayer,recentBlockhash:d,instructions:[...w]}).compileToV0Message(Object.values(s));y.push(new on(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)}),y.forEach((P,k)=>{P.sign(b[k])}),{builder:this,transactions:y,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async P=>{var G;let{sequentially:k,onTxUpdate:B,skipTxCount:S=0,recentBlockHash:C,skipPreflight:O=!0}=P||{};if(y.map(async(_,v)=>{b[v].length&&_.sign(b[v]),C&&(_.message.recentBlockhash=C)}),It(y),(G=this.owner)!=null&&G.isKeyPair){if(k){let _=0,v=[];for(let V of y){if(++_,_<=S){console.log("skip tx: ",_),v.push("tx skipped");continue}let D=await this.connection.sendTransaction(V,{skipPreflight:O});await Sn(this.connection,D),v.push(D)}return{txIds:v,signedTxs:y}}return{txIds:await Promise.all(y.map(async _=>await this.connection.sendTransaction(_,{skipPreflight:O}))),signedTxs:y}}if(this.signAllTransactions){let _=await this.signAllTransactions(y.slice(S,y.length)),v=[...y.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 pe=await this.connection.sendTransaction(v[V],{skipPreflight:O});D.push({txId:pe,status:"sent",signedTx:v[V]}),B==null||B([...D]),V++;let fe=!1,Re=null,yt=null,Ve=Ne=>{Re!==null&&clearInterval(Re),yt!==null&&this.connection.removeSignatureListener(yt);let ke=D.findIndex(Qn=>Qn.txId===pe);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(fe){clearInterval(Re);return}try{let ke=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ke&&(fe=!0,clearInterval(Re),Ve({err:((Ne=ke.meta)==null?void 0:Ne.err)||null}),console.log("tx status from getTransaction:",pe))}catch(ke){fe=!0,clearInterval(Re),console.error("getTransaction timeout:",ke,pe)}},xn)),yt=this.connection.onSignature(pe,Ne=>{if(fe){this.connection.removeSignatureListener(yt);return}fe=!0,Ve(Ne)},"confirmed"),this.connection.getSignatureStatus(pe)};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 mo=(...m)=>m.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 Kn({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(mo(e))}logInfo(...e){this.logger.info(mo(e))}logAndCreateError(...e){let t=mo(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as $m,SystemProgram as ed}from"@solana/web3.js";import od from"bn.js";import{createCloseAccountInstruction as sd,createInitializeAccountInstruction as ud,createTransferInstruction as cd,TOKEN_PROGRAM_ID as ld}from"@solana/spl-token";import{Keypair as Em,PublicKey as Dm}from"@solana/web3.js";import Um from"bn.js";import{TOKEN_PROGRAM_ID as Xm}from"@solana/spl-token";import{PublicKey as aa}from"@solana/web3.js";import ri,{isBN as ai}from"bn.js";import{bits as Qr,BitStructure as zl,blob as Zr,Blob as Xl,cstr as Yl,f32 as Ql,f32be as Zl,f64 as Hl,f64be as jl,greedy as $l,Layout as Hr,ns64 as Jl,ns64be as em,nu64 as jr,nu64be as tm,offset as $r,s16 as nm,s16be as om,s24 as im,s24be as rm,s32 as Jr,s32be as am,s40 as sm,s40be as um,s48 as cm,s48be as lm,s8 as mm,seq as ea,struct as dm,Structure as ta,u16 as na,u16be as pm,u24 as fm,u24be as ym,u32 as oa,u32be as bm,u40 as gm,u40be as Pm,u48 as Am,u48be as wm,u8 as ia,UInt as ra,union as km,Union as Tm,unionLayoutDiscriminator as hm,utf8 as Im}from"@solana/buffer-layout";var Cn=Hr,ei=ta;var po=ra;var ti=ia,Ke=na;var Rn=oa;var ni=jr;var Ae=Jr;var oi=ea;var j=Zr;var fo=Qr,ii=$r;var St=class extends Cn{constructor(t,n,o){super(t,o);this.blob=j(t),this.signed=n}decode(t,n=0){let o=new ri(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 ri(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},Ln=class extends Cn{constructor(t){super(8,t);this._lower=fo(Rn(),!1),this._upper=fo(Rn(),!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(m){return new po(1,m)}function me(m){return new po(4,m)}function l(m){return new St(8,!1,m)}function X(m){return new St(16,!1,m)}function si(m){return new St(1,!0,m)}function Vt(m){return new St(8,!0,m)}function ui(m){return new St(16,!0,m)}var rn=class extends Cn{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(m){return new rn(j(32),e=>new aa(e),e=>e.toBuffer(),m)}function ye(m){return new rn(ti(),sa,ua,m)}function sa(m){if(m===0)return!1;if(m===1)return!0;throw new Error("Invalid bool: "+m)}function ua(m){return m?1:0}function ci(m,e){let t=Rn("length"),n=L([t,E(m,ii(t,-t.span),"values")]);return new rn(n,({values:o})=>o,o=>({values:o}),e)}var yo=class extends ei{decode(e,t){return super.decode(e,t)}};function L(m,e,t){return new yo(m,e,t)}function E(m,e,t){let n,o=typeof e=="number"?e:ai(e)?e.toNumber():new Proxy(e,{get(i,r){if(!n){let a=Reflect.get(i,"count");n=ai(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 oi(m,o,t)}var _t=L([h("mint"),h("owner"),l("amount"),me("delegateOption"),h("delegate"),N("state"),me("isNativeOption"),l("isNative"),l("delegatedAmount"),me("closeAuthorityOption"),h("closeAuthority")]);import{PublicKey as Yf,SystemProgram as Qf}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Hf}from"@solana/spl-token";import{PublicKey as la}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ma}from"@solana/spl-token";function Z(m,e,t){return re([m.toBuffer(),(t!=null?t:ma).toBuffer(),e.toBuffer()],new la("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as z}from"@solana/web3.js";var mi=new z("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),di=new z("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),pi=new z("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),bo=new z("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Wd=new z("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),da=new z("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),fi=new z("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),yi=new z("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),qd=new z("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),pa=new z("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Pt=new z("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),an=new z("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Nn=new z("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),bi=new z("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ud=new z("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),fa=new z("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ya=new z("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ba=new z("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ga=new z("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Pa=new z("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),go=new z("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Aa=new z("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Gd=new z("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),wa=new z("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ka=new z("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ta=new z("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),zd=new z("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Xd=new z("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Yd=new z("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Qd=new z("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Zd=new z("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),sn={IDO_PROGRAM_ID_V1:ya,IDO_PROGRAM_ID_V2:ba,IDO_PROGRAM_ID_V3:ga,IDO_PROGRAM_ID_V4:Pa};var At={OPEN_BOOK_PROGRAM:new z("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new z("Ray1111111111111111111111111111111111111111"),AMM_V4:new z("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new z("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new z("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new z("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new z("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new z("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new z("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new z("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new z("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new z("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:z.default,Router:new z("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new z("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new z("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new z("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new z("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new z("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new z("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new z("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new z("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new z("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new z("Ray1111111111111111111111111111111111111111")};import ay from"decimal.js";import{PublicKey as Po}from"@solana/web3.js";var ha=L([N("instruction")]),Ia=L([N("instruction")]),Ba=L([l("rewardState"),l("rewardOpenTime"),l("rewardEndTime"),l("rewardLastUpdateTime"),l("totalReward"),l("totalRewardEmissioned"),l("rewardClaimed"),l("rewardPerSecond"),X("accRewardPerShare"),h("rewardVault"),h("rewardMint"),h("rewardSender"),l("rewardType"),E(l(),15,"padding")]),Sa=L([l("state"),l("nonce"),h("lpVault"),h("rewardVault"),h(),h(),l(),l(),l("totalReward"),X("perShareReward"),l("lastSlot"),l("perSlotReward")]),xa=L([l("state"),l("nonce"),h("lpVault"),h("rewardVaultA"),l("totalRewardA"),X("perShareRewardA"),l("perSlotRewardA"),N("option"),h("rewardVaultB"),j(7),l("totalRewardB"),X("perShareRewardB"),l("perSlotRewardB"),l("lastSlot"),h()]),Ka=L([l(),l("state"),l("nonce"),l("validRewardTokenNum"),X("rewardMultiplier"),l("rewardPeriodMax"),l("rewardPeriodMin"),l("rewardPeriodExtend"),h("lpMint"),h("lpVault"),E(Ba,5,"rewardInfos"),h("creator"),h(),E(l(),32,"padding")]),Ca=new Proxy(Sa,{get(m,e,t){return e==="decode"?(...n)=>{let o=m.decode(...n);return q(F({},o),{version:3,rewardInfos:[{rewardVault:o.rewardVault,totalReward:o.totalReward,perSlotReward:o.perSlotReward,perShareReward:o.perShareReward}]})}:Reflect.get(m,e,t)}}),Ra=new Proxy(xa,{get(m,e,t){return e==="decode"?(...n)=>{let o=m.decode(...n);return q(F({},o),{version:5,rewardInfos:[{rewardVault:o.rewardVaultA,totalReward:o.totalRewardA,perSlotReward:o.perSlotRewardA,perShareReward:o.perShareRewardA},{rewardVault:o.rewardVaultB,totalReward:o.totalRewardB,perSlotReward:o.perSlotRewardB,perShareReward:o.perShareRewardB}]})}:Reflect.get(m,e,t)}}),gi=new Proxy(Ka,{get(m,e,t){return e==="decode"?(...n)=>{let o=m.decode(...n);return q(F({},o),{version:6,rewardInfos:o.rewardInfos.map(i=>{var r;return q(F({},i),{rewardType:((r=Object.entries(un).find(a=>String(a[1])===i.rewardType.toString()))!=null?r:["Standard SPL"])[0]})})})}:Reflect.get(m,e,t)}}),La=L([l("isSet"),l("rewardPerSecond"),l("rewardOpenTime"),l("rewardEndTime"),l("rewardType")]),Oa=L([N("instruction"),l("nonce"),E(La,5,"rewardTimeInfo")]),Na=L([N("instruction"),l("rewardReopenTime"),l("rewardEndTime"),l("rewardPerSecond")]),Ma=L([N("instruction"),l("isSet"),l("rewardPerSecond"),l("rewardOpenTime"),l("rewardEndTime"),l("rewardType")]),np=L([l("state"),h("id"),h("owner"),l("deposited"),E(l(),1,"rewardDebts")]),Pi=L([l("state"),h("id"),h("owner"),l("deposited"),E(X(),1,"rewardDebts"),l(""),l("voteLockedBalance"),E(l(),15)]),op=L([l("state"),h("id"),h("owner"),l("deposited"),E(l(),2,"rewardDebts")]),Fa=L([l("state"),h("id"),h("owner"),l("deposited"),E(X(),2,"rewardDebts"),E(l(),17)]),va=L([l(),l("state"),h("id"),h("owner"),l("deposited"),E(X(),5,"rewardDebts"),E(l(),16)]),Va=L([N("instruction"),l("amount")]),_a=L([h("mint"),h("grantAuthority"),l("baselineVoteWeightScaledFactor"),l("maxExtraLockupVoteWeightScaledFactor"),l("lockupSaturationSecs"),si("digitShift"),E(N(),7,"reserved1"),E(l(),7,"reserved2")]),Ea=L([j(8),h("governanceProgramId"),h("realm"),h("realmGoverningTokenMint"),h("realmAuthority"),E(N(),32,"reserved1"),E(_a,4,"votingMints"),Vt("timeOffset"),N("bump"),E(N(),7,"reserved2"),E(l(),11,"reserved3")]),Da=L([Vt("startTime"),Vt("endTime"),N("kind"),E(N(),15,"reserved")]),Wa=L([E(Da,1,"lockup"),l("amountDeposited_native"),l("amountInitiallyLockedNative"),ye("isUsed"),ye("allowClawback"),N("votingMintConfigIdx"),E(N(),29,"reserved")]),qa=L([j(8),h("voterAuthority"),h("registrar"),E(Wa,32,"deposits"),N("voterBump"),N("voterWweightRecordBump"),E(N(),94,"reserved")]);import{NATIVE_MINT as dp}from"@solana/spl-token";var pp=ee("Raydium_farm_config"),Ua=new Po("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ga=new Po("FrspKwj8i3pN