UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 209 kB
var lr=Object.defineProperty,mr=Object.defineProperties;var dr=Object.getOwnPropertyDescriptors;var Pn=Object.getOwnPropertySymbols;var Mo=Object.prototype.hasOwnProperty,Fo=Object.prototype.propertyIsEnumerable;var No=(m,e,t)=>e in m?lr(m,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):m[e]=t,F=(m,e)=>{for(var t in e||(e={}))Mo.call(e,t)&&No(m,t,e[t]);if(Pn)for(var t of Pn(e))Fo.call(e,t)&&No(m,t,e[t]);return m},q=(m,e)=>mr(m,dr(e));var Je=(m,e)=>{var t={};for(var n in m)Mo.call(m,n)&&e.indexOf(n)<0&&(t[n]=m[n]);if(m!=null&&Pn)for(var n of Pn(m))e.indexOf(n)<0&&Fo.call(m,n)&&(t[n]=m[n]);return t};import{PublicKey as _o}from"@solana/web3.js";import{get as vo,set as pr}from"lodash";var Yn=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}},Vo={},fr={};function ee(m){let e=vo(Vo,m);if(!e){let t=vo(fr,m);e=new Yn({name:m,logLevel:t}),pr(Vo,m,e)}return e}import{MINT_SIZE as yr,TOKEN_PROGRAM_ID as br,getTransferFeeConfig as gr,unpackMint as Pr}from"@solana/spl-token";var Qn=ee("Raydium_accountInfo_util");async function Ve(m,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=F({batchRequest:!1},t),r=Zn(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=Zn(s,10);a=(await(await Promise.all(c.map(async p=>await m._rpcBatchRequest(p)))).flat()).map(p=>(p.error&&Qn.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"&&Qn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:f,lamports:y,owner:new _o(b),rentEpoch:w}}return null})))}else try{a=await Promise.all(r.map(s=>m.getMultipleAccountsInfo(s,o)))}catch(s){s instanceof Error&&Qn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${s.message}`)}return a.flat()}async function De(m,e,t){let n=await Ve(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 De(m,e.map(s=>({pubkey:at(s)})),t),o={};for(let s of n){if(!s.accountInfo||s.accountInfo.data.length<yr){console.log("invalid mint account",s.pubkey.toBase58());continue}let c=Pr(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)||br,feeConfig:(a=gr(c))!=null?a:void 0})}return o[_o.default.toBase58()]=o[Y.toBase58()],o}import Rt from"bn.js";import FC from"decimal.js";import Sr from"big.js";import kn from"bn.js";import Ar from"toformat";var wr=Ar,Ht=wr;import wn from"big.js";import Tr from"bn.js";import hr from"decimal.js-light";import jt from"bn.js";var Eo=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>=Eo||m<=-Eo)&&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 An=ee("module/fraction"),Hn=Ht(wn),$t=Ht(hr),Ir={[0]:$t.ROUND_DOWN,[1]:$t.ROUND_HALF_UP,[2]:$t.ROUND_UP},Br={[0]:wn.roundDown,[1]:wn.roundHalfUp,[2]:wn.roundUp},ie=class{constructor(e,t=new Tr(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)||An.logWithError(`${e} is not an integer.`),e<=0&&An.logWithError(`${e} is not positive.`),$t.set({precision:e+1,rounding:Ir[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)||An.logWithError(`${e} is not an integer.`),e<0&&An.logWithError(`${e} is negative.`),Hn.DP=e,Hn.RM=Br[n]||1,new Hn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var xr=ee("Raydium_amount"),Do=Ht(Sr);function Kr(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")):xr.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 kn(0),a=jn.pow(new kn(t.decimals));if(o)r=Te(n);else{let s=new kn(0),c=new kn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[u,p]=Kr(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 Do.DP=this.token.decimals,new Do(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Cr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Wo}from"@solana/spl-token";var Tn={chainId:101,address:Cr.default.toBase58(),programId:Wo.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:Wo.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 le,SystemProgram as qo,SYSVAR_RENT_PUBKEY as Rr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Lr}from"@solana/spl-token";function Lt({pubkey:m,isSigner:e=!1,isWritable:t=!0}){return{pubkey:m,isWritable:t,isSigner:e}}var Or=[Lt({pubkey:Lr,isWritable:!1}),Lt({pubkey:qo.programId,isWritable:!1}),Lt({pubkey:Rr,isWritable:!1})];function $n({publicKey:m,transformSol:e}){let t=Uo(m.toString());if(t instanceof le)return e&&t.equals(It)?Y:t;if(e&&t.toString()===It.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 Uo(m){try{return new le(m)}catch{return m}}var gt=new le("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),et=new le("SysvarRent111111111111111111111111111111111"),Gu=new le("SysvarC1ock11111111111111111111111111111111"),Pt=new le("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Nr=new le("Sysvar1nstructions1111111111111111111111111"),Mr=qo.programId,zu=new le("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Xu=new le("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Yu=new le("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Qu=new le("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Zu=new le("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Hu=new le("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ju=new le("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),$u=new le("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ju=new le("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ec=new le("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),tc=new le("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Y=new le("So11111111111111111111111111111111111111112"),It=le.default;function at(m){return $n({publicKey:m,transformSol:!0})}var eo=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===It.toBase58()||e instanceof Jn&&It.equals(e)){this.decimals=st.decimals,this.symbol=st.symbol,this.name=st.name,this.mint=new Jn(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?Jn.default:$n({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},xe=eo;xe.WSOL=new eo(q(F({},st),{mint:st.address}));var to=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},hn=to;hn.SOL=new to(Tn);import Fr from"bn.js";var Go=new ie(new Fr(100)),ut=class extends ie{toSignificant(e=5,t,n){return this.mul(Go).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(Go).toFixed(e,t,n)}};var vr=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(no(n.decimals),no(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&&vr.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 VK}from"lodash";import Bc from"axios";var zo={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_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",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"},Vr=q(F({},zo),{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 Qc=ee("Raydium_Api");import{PublicKey as pd,SystemProgram as fd}from"@solana/web3.js";import{AccountLayout as Ad,createAssociatedTokenAccountIdempotentInstruction as wd,TOKEN_PROGRAM_ID as kd,TOKEN_2022_PROGRAM_ID as Td}from"@solana/spl-token";import{PublicKey as vt,sendAndConfirmTransaction as uo,SystemProgram as Ur,Transaction as tn,TransactionMessage as nn,VersionedTransaction as on}from"@solana/web3.js";import Gr from"axios";import{PublicKey as oo,AddressLookupTableAccount as Mt}from"@solana/web3.js";async function io({connection:m,address:e,cluster:t="mainnet"}){let n=await Ve(m,[...new Set(e.map(i=>i.toString()))].map(i=>new oo(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={},ro=async m=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ot[e])return Ot;let t=new oo(e),n=await m.getAccountInfo(t);return n&&(Ot[e]=new Mt({key:t,state:Mt.deserialize(n.data)})),Ot},Nt={},ao=async m=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Nt[e])return Nt;let t=new oo(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 Xo,Keypair as Qo,PublicKey as _r,Transaction as Zo,TransactionMessage as Er,VersionedTransaction as Ho}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Dr}from"@solana/spl-token";var Yo=ee("Raydium_txUtil"),jo=1644;function In(m){let e=[],t=[];return m.microLamports&&(e.push(Xo.setComputeUnitPrice({microLamports:m.microLamports})),t.push(J.SetComputeUnitPrice)),m.units&&(e.push(Xo.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 Bn(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 so(m,e){m.length<1&&Yo.logWithError(`no instructions provided: ${m.toString()}`),e.length<1&&Yo.logWithError(`no signers provided:, ${e.toString()}`);let t=new Zo;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]=_r.findProgramAddressSync(m,e);return{publicKey:t,nonce:n}}function Jt({instructions:m,payer:e,signers:t}){return so(m,[e,...t])}function en({instructions:m,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Qo.generate().publicKey.toString()}){let i=new Er({payerKey:e,recentBlockhash:n,instructions:m}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Ho(i).serialize()).toString("base64").length<jo}catch{return!1}}var Wr=m=>Buffer.isBuffer(m)?m:m instanceof Uint8Array?Buffer.from(m.buffer,m.byteOffset,m.byteLength):Buffer.from(m),qr=m=>{let e=m.serialize({requireAllSignatures:!1,verifySignatures:!1});m instanceof Ho&&(e=Wr(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Bt(m){let e=[];return m.forEach(t=>{t instanceof Zo&&(t.recentBlockhash||(t.recentBlockhash=Dr.toBase58()),t.feePayer||(t.feePayer=Qo.generate().publicKey)),e.push(qr(t))}),console.log("simulate tx string:",e),e}var Sn=2e3,xn=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 Gr.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}=In(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Ur.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),Bt([t]),(u=this.owner)!=null&&u.isKeyPair)return{txId:a?await uo(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 uo(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));Bt(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,x=null,O=null,G=_=>{x!==null&&clearInterval(x),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&&(x=setInterval(async()=>{var _;if(S){clearInterval(x);return}try{let v=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(S=!0,clearInterval(x),G({err:((_=v.meta)==null?void 0:_.err)||null}),console.log("tx status from getTransaction:",B))}catch(v){S=!0,clearInterval(x),console.error("getTransaction timeout:",v,B)}},Sn)),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=Je(f,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=F(F({},this.cluster==="devnet"?await ao(this.connection):await ro(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 io({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(Bt([d]),(I=this.owner)!=null&&I.isKeyPair){let P=await this.connection.sendTransaction(d,{skipPreflight:w});return A&&await Bn(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),Bt(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 Bn(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=x=>{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=x.err?"error":"success"}g==null||g([...A]),x.err||T()};this.loopMultiTxStatus&&(k=setInterval(async()=>{var x;if(P){clearInterval(k);return}try{let O=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});O&&(P=!0,clearInterval(k),S({err:((x=O.meta)==null?void 0:x.err)||null}),console.log("tx status from getTransaction:",I))}catch(O){P=!0,clearInterval(k),console.error("getTransaction timeout:",O,I)}},Sn)),B=this.connection.onSignature(I,x=>{if(P){this.connection.removeSignatureListener(B);return}P=!0,S(x)},"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=Je(p,["splitIns","computeBudgetConfig"]),i=n?In(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])}),Bt(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 uo(this.connection,B,this.signers.find(x=>x.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=[],x=async()=>{if(!k[B])return;B<b&&(S.push({txId:"",status:"success",signedTx:k[B]}),y==null||y([...S]),B++,x());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||x()};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)}},Sn)),v=this.connection.onSignature(O,D=>{if(G){this.connection.removeSignatureListener(v);return}G=!0,V(D)},"confirmed"),this.connection.getSignatureStatus(O)};return await x(),{txIds:S.map(O=>O.txId),signedTxs:k}}else{let B=[];for(let S=0;S<k.length;S+=1){let x=await this.connection.sendRawTransaction(k[S].serialize(),{skipPreflight:A});B.push(x)}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 ao(this.connection):await ro(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 io({connection:this.connection,address:u});for(let[P,k]of Object.entries(p))s[P]=k;let g=t?In(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 x of[...new Set(c)])s[x]!==void 0&&(S[x]=s[x]);if(t&&en({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:d})){let x=new nn({payerKey:this.feePayer,recentBlockhash:d,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));y.push(new on(x))}else{let x=new nn({payerKey:this.feePayer,recentBlockhash:d,instructions:[...w]}).compileToV0Message(Object.values(s));y.push(new on(x))}b.push(Array.from(new Set(w.map(x=>x.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(x=>f[x]).filter(x=>x!==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:x,skipPreflight:O=!0}=P||{};if(y.map(async(_,v)=>{b[v].length&&_.sign(b[v]),x&&(_.message.recentBlockhash=x)}),Bt(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 Bn(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,bt=null,ve=Ne=>{Re!==null&&clearInterval(Re),bt!==null&&this.connection.removeSignatureListener(bt);let ke=D.findIndex(Xn=>Xn.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)}},Sn)),bt=this.connection.onSignature(pe,Ne=>{if(fe){this.connection.removeSignatureListener(bt);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 co=(...m)=>m.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),_e=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=ee(t)}createTxBuilder(e){return this.scope.checkOwner(),new xn({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(co(e))}logInfo(...e){this.logger.info(co(e))}logAndCreateError(...e){let t=co(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Gm,SystemProgram as Xm}from"@solana/web3.js";import Zm from"bn.js";import{createCloseAccountInstruction as Jm,createInitializeAccountInstruction as ed,createTransferInstruction as td,TOKEN_PROGRAM_ID as nd}from"@solana/spl-token";import{Keypair as Lm,PublicKey as Om}from"@solana/web3.js";import Fm from"bn.js";import{TOKEN_PROGRAM_ID as _m}from"@solana/spl-token";import{PublicKey as na}from"@solana/web3.js";import ni,{isBN as oi}from"bn.js";import{bits as zr,BitStructure as vl,blob as Xr,Blob as Vl,cstr as _l,f32 as El,f32be as Dl,f64 as Wl,f64be as ql,greedy as Ul,Layout as Yr,ns64 as Gl,ns64be as zl,nu64 as Xl,nu64be as Yl,offset as Qr,s16 as Ql,s16be as Zl,s24 as Hl,s24be as jl,s32 as Zr,s32be as $l,s40 as Jl,s40be as em,s48 as tm,s48be as nm,s8 as om,seq as Hr,struct as im,Structure as jr,u16 as $r,u16be as rm,u24 as am,u24be as sm,u32 as Jr,u32be as um,u40 as cm,u40be as lm,u48 as mm,u48be as dm,u8 as ea,UInt as ta,union as pm,Union as fm,unionLayoutDiscriminator as ym,utf8 as bm}from"@solana/buffer-layout";var Kn=Yr,$o=jr;var lo=ta;var Jo=ea,Ke=$r;var Cn=Jr;var Ae=Zr;var ei=Hr;var j=Xr;var mo=zr,ti=Qr;var xt=class extends Kn{constructor(t,n,o){super(t,o);this.blob=j(t),this.signed=n}decode(t,n=0){let o=new ni(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 ni(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},Rn=class extends Kn{constructor(t){super(8,t);this._lower=mo(Cn(),!1),this._upper=mo(Cn(),!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 lo(1,m)}function me(m){return new lo(4,m)}function l(m){return new xt(8,!1,m)}function z(m){return new xt(16,!1,m)}function ii(m){return new xt(1,!0,m)}function Vt(m){return new xt(8,!0,m)}function ri(m){return new xt(16,!0,m)}var rn=class extends Kn{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 na(e),e=>e.toBuffer(),m)}function ye(m){return new rn(Jo(),oa,ia,m)}function oa(m){if(m===0)return!1;if(m===1)return!0;throw new Error("Invalid bool: "+m)}function ia(m){return m?1:0}function ai(m,e){let t=Cn("length"),n=L([t,E(m,ti(t,-t.span),"values")]);return new rn(n,({values:o})=>o,o=>({values:o}),e)}var po=class extends $o{decode(e,t){return super.decode(e,t)}};function L(m,e,t){return new po(m,e,t)}function E(m,e,t){let n,o=typeof e=="number"?e:oi(e)?e.toNumber():new Proxy(e,{get(i,r){if(!n){let a=Reflect.get(i,"count");n=oi(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 ei(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 Ef,SystemProgram as Df}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as qf}from"@solana/spl-token";import{PublicKey as aa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as sa}from"@solana/spl-token";function Z(m,e,t){return re([m.toBuffer(),(t!=null?t:sa).toBuffer(),e.toBuffer()],new aa("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as X}from"@solana/web3.js";var ui=new X("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),ci=new X("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),li=new X("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),fo=new X("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Nd=new X("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ua=new X("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),mi=new X("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),di=new X("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Md=new X("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ca=new X("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),At=new X("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),an=new X("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),On=new X("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),pi=new X("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Fd=new X("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),la=new X("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),yo=new X("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ma=new X("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),vd=new X("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),da=new X("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),pa=new X("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),fa=new X("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Vd=new X("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),_d=new X("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Ed=new X("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Dd=new X("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Wd=new X("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var wt={OPEN_BOOK_PROGRAM:new X("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new X("Ray1111111111111111111111111111111111111111"),AMM_V4:new X("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new X("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new X("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new X("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new X("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new X("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new X("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new X("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new X("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new X("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:X.default,Router:new X("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new X("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new X("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new X("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new X("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new X("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new X("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new X("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new X("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new X("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new X("Ray1111111111111111111111111111111111111111")};import $f from"decimal.js";import{PublicKey as bo}from"@solana/web3.js";var ya=L([N("instruction")]),ba=L([N("instruction")]),ga=L([l("rewardState"),l("rewardOpenTime"),l("rewardEndTime"),l("rewardLastUpdateTime"),l("totalReward"),l("totalRewardEmissioned"),l("rewardClaimed"),l("rewardPerSecond"),z("accRewardPerShare"),h("rewardVault"),h("rewardMint"),h("rewardSender"),l("rewardType"),E(l(),15,"padding")]),Pa=L([l("state"),l("nonce"),h("lpVault"),h("rewardVault"),h(),h(),l(),l(),l("totalReward"),z("perShareReward"),l("lastSlot"),l("perSlotReward")]),Aa=L([l("state"),l("nonce"),h("lpVault"),h("rewardVaultA"),l("totalRewardA"),z("perShareRewardA"),l("perSlotRewardA"),N("option"),h("rewardVaultB"),j(7),l("totalRewardB"),z("perShareRewardB"),l("perSlotRewardB"),l("lastSlot"),h()]),wa=L([l(),l("state"),l("nonce"),l("validRewardTokenNum"),z("rewardMultiplier"),l("rewardPeriodMax"),l("rewardPeriodMin"),l("rewardPeriodExtend"),h("lpMint"),h("lpVault"),E(ga,5,"rewardInfos"),h("creator"),h(),E(l(),32,"padding")]),ka=new Proxy(Pa,{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)}}),Ta=new Proxy(Aa,{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)}}),fi=new Proxy(wa,{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(sn).find(a=>String(a[1])===i.rewardType.toString()))!=null?r:["Standard SPL"])[0]})})})}:Reflect.get(m,e,t)}}),ha=L([l("isSet"),l("rewardPerSecond"),l("rewardOpenTime"),l("rewardEndTime"),l("rewardType")]),Ia=L([N("instruction"),l("nonce"),E(ha,5,"rewardTimeInfo")]),Ba=L([N("instruction"),l("rewardReopenTime"),l("rewardEndTime"),l("rewardPerSecond")]),Sa=L([N("instruction"),l("isSet"),l("rewardPerSecond"),l("rewardOpenTime"),l("rewardEndTime"),l("rewardType")]),Qd=L([l("state"),h("id"),h("owner"),l("deposited"),E(l(),1,"rewardDebts")]),yi=L([l("state"),h("id"),h("owner"),l("deposited"),E(z(),1,"rewardDebts"),l(""),l("voteLockedBalance"),E(l(),15)]),Zd=L([l("state"),h("id"),h("owner"),l("deposited"),E(l(),2,"rewardDebts")]),xa=L([l("state"),h("id"),h("owner"),l("deposited"),E(z(),2,"rewardDebts"),E(l(),17)]),Ka=L([l(),l("state"),h("id"),h("owner"),l("deposited"),E(z(),5,"rewardDebts"),E(l(),16)]),Ca=L([N("instruction"),l("amount")]),Ra=L([h("mint"),h("grantAuthority"),l("baselineVoteWeightScaledFactor"),l("maxExtraLockupVoteWeightScaledFactor"),l("lockupSaturationSecs"),ii("digitShift"),E(N(),7,"reserved1"),E(l(),7,"reserved2")]),La=L([j(8),h("governanceProgramId"),h("realm"),h("realmGoverningTokenMint"),h("realmAuthority"),E(N(),32,"reserved1"),E(Ra,4,"votingMints"),Vt("timeOffset"),N("bump"),E(N(),7,"reserved2"),E(l(),11,"reserved3")]),Oa=L([Vt("startTime"),Vt("endTime"),N("kind"),E(N(),15,"reserved")]),Na=L([E(Oa,1,"lockup"),l("amountDeposited_native"),l("amountInitiallyLockedNative"),ye("isUsed"),ye("allowClawback"),N("votingMintConfigIdx"),E(N(),29,"reserved")]),Ma=L([j(8),h("voterAuthority"),h("registrar"),E(Na,32,"deposits"),N("voterBump"),N("voterWweightRecordBump"),E(N(),94,"reserved")]);import{NATIVE_MINT as ip}from"@solana/spl-token";var rp=ee("Raydium_farm_config"),Fa=new bo("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),va=new bo("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var ap=new bo("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var sn={"Standard SPL":0,"Option tokens":1},bi={[ui.toString()]:3,[ci.toString()]:4,[li.toString()]:5,[fo.toString()]:6,[wt.FARM_PROGRAM_ID_V3.toString()]:3,[wt.FARM_PROGRAM_ID_V4.toString()]:4,[wt.FARM_PROGRAM_ID_V5.toString()]:5,[wt.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKe