UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 214 kB
var pr=Object.defineProperty,fr=Object.defineProperties;var yr=Object.getOwnPropertyDescriptors;var Pn=Object.getOwnPropertySymbols;var Vo=Object.prototype.hasOwnProperty,_o=Object.prototype.propertyIsEnumerable;var vo=(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={}))Vo.call(e,t)&&vo(m,t,e[t]);if(Pn)for(var t of Pn(e))_o.call(e,t)&&vo(m,t,e[t]);return m},q=(m,e)=>fr(m,yr(e));var nt=(m,e)=>{var t={};for(var n in m)Vo.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&&_o.call(m,n)&&(t[n]=m[n]);return t};import{PublicKey as Wo}from"@solana/web3.js";import{get as Eo,set as br}from"lodash";var Qn=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}},Do={},gr={};function ee(m){let e=Eo(Do,m);if(!e){let t=Eo(gr,m);e=new Qn({name:m,logLevel:t}),br(Do,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 Zn=ee("Raydium_accountInfo_util");async function Ve(m,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:i=100}=F({batchRequest:!1},t),r=Hn(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=Hn(s,10);a=(await(await Promise.all(c.map(async p=>await m._rpcBatchRequest(p)))).flat()).map(p=>(p.error&&Zn.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"&&Zn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:f,lamports:y,owner:new Wo(b),rentEpoch:w}}return null})))}else try{a=await Promise.all(r.map(s=>m.getMultipleAccountsInfo(s,o)))}catch(s){s instanceof Error&&Zn.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 Ht({connection:m,mints:e,config:t}){var i,r,a;if(e.length===0)return{};let n=await De(m,e.map(s=>({pubkey:ut(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[Wo.default.toBase58()]=o[Y.toBase58()],o}import Lt from"bn.js";import _C from"decimal.js";import Cr from"big.js";import kn from"bn.js";import Tr from"toformat";var hr=Tr,jt=hr;import wn from"big.js";import Br from"bn.js";import Sr from"decimal.js-light";import $t from"bn.js";var qo=9007199254740991;function Be(m){let e=ee("Raydium_parseBigNumberish");if(m instanceof $t)return m;if(typeof m=="string"){if(m.match(/^-?[0-9]+$/))return new $t(m);e.logWithError(`invalid BigNumberish string: ${m}`)}return typeof m=="number"?(m%1&&e.logWithError(`BigNumberish number underflow: ${m}`),(m>=qo||m<=-qo)&&e.logWithError(`BigNumberish number overflow: ${m}`),new $t(String(m))):typeof m=="bigint"?new $t(m.toString()):(e.error(`invalid BigNumberish value: ${m}`),new $t(0))}var An=ee("module/fraction"),jn=jt(wn),Jt=jt(Sr),xr={[0]:Jt.ROUND_DOWN,[1]:Jt.ROUND_HALF_UP,[2]:Jt.ROUND_UP},Kr={[0]:wn.roundDown,[1]:wn.roundHalfUp,[2]:wn.roundUp},ie=class{constructor(e,t=new Br(1)){this.numerator=Be(e),this.denominator=Be(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(Be(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(Be(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(Be(e));return new ie(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof ie?e:new ie(Be(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.`),Jt.set({precision:e+1,rounding:xr[n]});let o=new Jt(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.`),jn.DP=e,jn.RM=Kr[n]||1,new jn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Rr=ee("Raydium_amount"),Uo=jt(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 Se=class extends ie{constructor(t,n,o=!0,i){let r=new kn(0),a=$n.pow(new kn(t.decimals));if(o)r=Be(n);else{let s=new kn(0),c=new kn(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[u,p]=Lr(n.toString(),t.decimals);s=Be(u),c=Be(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 Se(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new Se(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 Uo.DP=this.token.decimals,new Uo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Or}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Go}from"@solana/spl-token";var Tn={chainId:101,address:Or.default.toBase58(),programId:Go.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ct={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Go.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 eo}from"@solana/web3.js";import{PublicKey as fe,SystemProgram as zo,SYSVAR_RENT_PUBKEY as Nr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Mr}from"@solana/spl-token";function Ot({pubkey:m,isSigner:e=!1,isWritable:t=!0}){return{pubkey:m,isWritable:t,isSigner:e}}var Fr=[Ot({pubkey:Mr,isWritable:!1}),Ot({pubkey:zo.programId,isWritable:!1}),Ot({pubkey:Nr,isWritable:!1})];function Jn({publicKey:m,transformSol:e}){let t=Xo(m.toString());if(t instanceof fe)return e&&t.equals(It)?Y:t;if(e&&t.toString()===It.toBase58())return Y;if(typeof t=="string"){if(t===fe.default.toBase58())return fe.default;try{return new fe(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Xo(m){try{return new fe(m)}catch{return m}}var At=new fe("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ye=new fe("SysvarRent111111111111111111111111111111111"),Yu=new fe("SysvarC1ock11111111111111111111111111111111"),wt=new fe("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),vr=new fe("Sysvar1nstructions1111111111111111111111111"),Vr=zo.programId,Qu=new fe("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Zu=new fe("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Hu=new fe("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ju=new fe("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),$u=new fe("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ju=new fe("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ec=new fe("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),tc=new fe("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),nc=new fe("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),oc=new fe("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ic=new fe("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Y=new fe("So11111111111111111111111111111111111111112"),It=fe.default;function ut(m){return Jn({publicKey:m,transformSol:!0})}var to=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:i=!1,isToken2022:r=!1}){if(e===It.toBase58()||e instanceof eo&&It.equals(e)){this.decimals=ct.decimals,this.symbol=ct.symbol,this.name=ct.name,this.mint=new eo(ct.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?eo.default:Jn({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Ce=to;Ce.WSOL=new to(q(F({},ct),{mint:ct.address}));var no=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=no;hn.SOL=new no(Tn);import _r from"bn.js";var Yo=new ie(new _r(100)),lt=class extends ie{toSignificant(e=5,t,n){return this.mul(Yo).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(Yo).toFixed(e,t,n)}};var Er=ee("Raydium_price"),Qe=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(oo(n.decimals),oo(o.decimals))}get raw(){return new ie(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Qe({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 Qe({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 DK}from"lodash";import Kc from"axios";var Qo={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"},Dr=q(F({},Qo),{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 jc=ee("Raydium_Api");import{PublicKey as bd,SystemProgram as gd}from"@solana/web3.js";import{AccountLayout as Td,createAssociatedTokenAccountIdempotentInstruction as hd,TOKEN_PROGRAM_ID as Id,TOKEN_2022_PROGRAM_ID as Bd}from"@solana/spl-token";import{PublicKey as Vt,sendAndConfirmTransaction as co,SystemProgram as Xr,Transaction as nn,TransactionMessage as on,VersionedTransaction as rn}from"@solana/web3.js";import Yr from"axios";import{PublicKey as io,AddressLookupTableAccount as Ft}from"@solana/web3.js";async function ro({connection:m,address:e,cluster:t="mainnet"}){let n=await Ve(m,[...new Set(e.map(i=>i.toString()))].map(i=>new io(i))),o={};for(let i=0;i<e.length;i++){let r=n[i],a=e[i];if(!r)continue;let s=new Ft({key:a,state:Ft.deserialize(r.data)});o[a.toString()]=s,t==="devnet"?Mt[a.toString()]=s:Nt[a.toString()]=s}return o}var Nt={},ao=async m=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Nt[e])return Nt;let t=new io(e),n=await m.getAccountInfo(t);return n&&(Nt[e]=new Ft({key:t,state:Ft.deserialize(n.data)})),Nt},Mt={},so=async m=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Mt[e])return Mt;let t=new io(e),n=await m.getAccountInfo(t);return n&&(Mt[e]=new Ft({key:t,state:Ft.deserialize(n.data)})),Mt};var $={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 Zo,Keypair as jo,PublicKey as Wr,Transaction as $o,TransactionMessage as qr,VersionedTransaction as Jo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ur}from"@solana/spl-token";var Ho=ee("Raydium_txUtil"),ei=1644;function In(m){let e=[],t=[];return m.microLamports&&(e.push(Zo.setComputeUnitPrice({microLamports:m.microLamports})),t.push($.SetComputeUnitPrice)),m.units&&(e.push(Zo.setComputeUnitLimit({units:m.units})),t.push($.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function vt(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 uo(m,e){m.length<1&&Ho.logWithError(`no instructions provided: ${m.toString()}`),e.length<1&&Ho.logWithError(`no signers provided:, ${e.toString()}`);let t=new $o;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...m);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<ei}catch{return!1}}function re(m,e){let[t,n]=Wr.findProgramAddressSync(m,e);return{publicKey:t,nonce:n}}function en({instructions:m,payer:e,signers:t}){return uo(m,[e,...t])}function tn({instructions:m,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=jo.generate().publicKey.toString()}){let i=new qr({payerKey:e,recentBlockhash:n,instructions:m}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Jo(i).serialize()).toString("base64").length<ei}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 Jo&&(e=Gr(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 $o&&(t.recentBlockhash||(t.recentBlockhash=Ur.toBase58()),t.feePayer||(t.feePayer=jo.generate().publicKey)),e.push(zr(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 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}=In(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($.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 nn;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 vt(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 co(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 vt(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 co(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,L=null,U=_=>{x!==null&&clearInterval(x),L!==null&&this.connection.removeSignatureListener(L);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),U({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)),L=this.connection.onSignature(B,_=>{if(S){this.connection.removeSignatureListener(L);return}S=!0,U(_)},"confirmed"),this.connection.getSignatureStatus(B)};return await k(),{txIds:P.map(B=>B.txId),signedTxs:T}}else{let I=[];for(let P=0;P<T.length;P+=1){let k=await this.connection.sendRawTransaction(T[P].serialize(),{skipPreflight: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=nt(f,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=F(F({},this.cluster==="devnet"?await so(this.connection):await ao(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 ro({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 vt(this.connection,this.blockhashCommitment),g=new on({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 rn(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 L=A.findIndex(U=>U.txId===I);if(L>-1){if(A[L].status==="error"||A[L].status==="success")return;A[L].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 L=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});L&&(P=!0,clearInterval(k),S({err:((x=L.meta)==null?void 0:x.err)||null}),console.log("tx status from getTransaction:",I))}catch(L){P=!0,clearInterval(k),console.error("getTransaction timeout:",L,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=nt(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&&(en({instructions:y,payer:this.feePayer,signers:w})||en({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,en({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:w})?a.push(new nn().add(...i.instructions,...c)):a.push(new nn().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);en({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:f.map(y=>y.publicKey)})?a.push(new nn().add(...i.instructions,...c)):a.push(new nn().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 vt(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 co(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 L=await this.connection.sendRawTransaction(k[B].serialize(),{skipPreflight:A});S.push({txId:L,status:"sent",signedTx:k[B]}),y==null||y([...S]),B++;let U=!1,_=null,v=null,V=E=>{_!==null&&clearInterval(_),v!==null&&this.connection.removeSignatureListener(v);let H=S.findIndex(me=>me.txId===L);if(H>-1){if(S[H].status==="error"||S[H].status==="success")return;S[H].status=E.err?"error":"success"}y==null||y([...S]),E.err||x()};this.loopMultiTxStatus&&(_=setInterval(async()=>{var E;if(U){clearInterval(_);return}try{let H=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});H&&(U=!0,clearInterval(_),V({err:((E=H.meta)==null?void 0:E.err)||null}),console.log("tx status from getTransaction:",L))}catch(H){U=!0,clearInterval(_),console.error("getTransaction timeout:",H,L)}},Sn)),v=this.connection.onSignature(L,E=>{if(U){this.connection.removeSignatureListener(v);return}U=!0,V(E)},"confirmed"),this.connection.getSignatureStatus(L)};return await x(),{txIds:S.map(L=>L.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=nt(T,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),s=F(F({},this.cluster==="devnet"?await so(this.connection):await ao(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 ro({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 vt(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&&(tn({instructions:B,payer:this.feePayer,lookupTableAddressAccount:s})||tn({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&&tn({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:d})){let x=new on({payerKey:this.feePayer,recentBlockhash:d,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));y.push(new rn(x))}else{let x=new on({payerKey:this.feePayer,recentBlockhash:d,instructions:[...w]}).compileToV0Message(Object.values(s));y.push(new rn(x))}b.push(Array.from(new Set(w.map(x=>x.keys.filter(L=>L.isSigner).map(L=>L.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&&tn({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:d})){let B=new on({payerKey:this.feePayer,recentBlockhash:d,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));y.push(new rn(B))}else{let B=new on({payerKey:this.feePayer,recentBlockhash:d,instructions:[...w]}).compileToV0Message(Object.values(s));y.push(new rn(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 U;let{sequentially:k,onTxUpdate:B,skipTxCount:S=0,recentBlockHash:x,skipPreflight:L=!0}=P||{};if(y.map(async(_,v)=>{b[v].length&&_.sign(b[v]),x&&(_.message.recentBlockhash=x)}),Bt(y),(U=this.owner)!=null&&U.isKeyPair){if(k){let _=0,v=[];for(let V of y){if(++_,_<=S){console.log("skip tx: ",_),v.push("tx skipped");continue}let E=await this.connection.sendTransaction(V,{skipPreflight:L});await Bn(this.connection,E),v.push(E)}return{txIds:v,signedTxs:y}}return{txIds:await Promise.all(y.map(async _=>await this.connection.sendTransaction(_,{skipPreflight:L}))),signedTxs:y}}if(this.signAllTransactions){let _=await this.signAllTransactions(y.slice(S,y.length)),v=[...y.slice(0,S),..._];if(k){let V=0,E=[],H=async()=>{if(!v[V])return;if(V<S){E.push({txId:"",status:"success",signedTx:v[V]}),B==null||B([...E]),V++,H();return}let me=await this.connection.sendTransaction(v[V],{skipPreflight:L});E.push({txId:me,status:"sent",signedTx:v[V]}),B==null||B([...E]),V++;let ue=!1,pe=null,Pt=null,ve=Ne=>{pe!==null&&clearInterval(pe),Pt!==null&&this.connection.removeSignatureListener(Pt);let Ie=E.findIndex(Yn=>Yn.txId===me);if(Ie>-1){if(E[Ie].status==="error"||E[Ie].status==="success")return;E[Ie].status=Ne.err?"error":"success"}B==null||B([...E]),Ne.err||H()};this.loopMultiTxStatus&&(pe=setInterval(async()=>{var Ne;if(ue){clearInterval(pe);return}try{let Ie=await this.connection.getTransaction(me,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ie&&(ue=!0,clearInterval(pe),ve({err:((Ne=Ie.meta)==null?void 0:Ne.err)||null}),console.log("tx status from getTransaction:",me))}catch(Ie){ue=!0,clearInterval(pe),console.error("getTransaction timeout:",Ie,me)}},Sn)),Pt=this.connection.onSignature(me,Ne=>{if(ue){this.connection.removeSignatureListener(Pt);return}ue=!0,ve(Ne)},"confirmed"),this.connection.getSignatureStatus(me)};return H(),{txIds:[],signedTxs:v}}else{let V=[];for(let E=0;E<v.length;E+=1){let H=await this.connection.sendTransaction(v[E],{skipPreflight:L});V.push(H)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};var lo=(...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(lo(e))}logInfo(...e){this.logger.info(lo(e))}logAndCreateError(...e){let t=lo(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Ym,SystemProgram as Zm}from"@solana/web3.js";import $m from"bn.js";import{createCloseAccountInstruction as nd,createInitializeAccountInstruction as od,createTransferInstruction as id,TOKEN_PROGRAM_ID as rd}from"@solana/spl-token";import{Keypair as Mm,PublicKey as Fm}from"@solana/web3.js";import _m from"bn.js";import{TOKEN_PROGRAM_ID as Wm}from"@solana/spl-token";import{PublicKey as ra}from"@solana/web3.js";import ri,{isBN as ai}from"bn.js";import{bits as Qr,BitStructure as El,blob as Zr,Blob as Dl,cstr as Wl,f32 as ql,f32be as Ul,f64 as Gl,f64be as zl,greedy as Xl,Layout as Hr,ns64 as Yl,ns64be as Ql,nu64 as Zl,nu64be as Hl,offset as jr,s16 as jl,s16be as $l,s24 as Jl,s24be as em,s32 as $r,s32be as tm,s40 as nm,s40be as om,s48 as im,s48be as rm,s8 as am,seq as Jr,struct as sm,Structure as ea,u16 as ta,u16be as um,u24 as cm,u24be as lm,u32 as na,u32be as mm,u40 as dm,u40be as pm,u48 as fm,u48be as ym,u8 as oa,UInt as ia,union as bm,Union as gm,unionLayoutDiscriminator as Pm,utf8 as Am}from"@solana/buffer-layout";var Kn=Hr,ti=ea;var mo=ia;var ni=oa,ke=ta;var Cn=na;var Te=$r;var oi=Jr;var J=Zr;var po=Qr,ii=jr;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 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)}},Rn=class extends Kn{constructor(t){super(8,t);this._lower=po(Cn(),!1),this._upper=po(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 mo(1,m)}function ye(m){return new mo(4,m)}function l(m){return new xt(8,!1,m)}function z(m){return new xt(16,!1,m)}function si(m){return new xt(1,!0,m)}function _t(m){return new xt(8,!0,m)}function ui(m){return new xt(16,!0,m)}var an=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 an(J(32),e=>new ra(e),e=>e.toBuffer(),m)}function be(m){return new an(ni(),aa,sa,m)}function aa(m){if(m===0)return!1;if(m===1)return!0;throw new Error("Invalid bool: "+m)}function sa(m){return m?1:0}function ci(m,e){let t=Cn("length"),n=O([t,D(m,ii(t,-t.span),"values")]);return new an(n,({values:o})=>o,o=>({values:o}),e)}var fo=class extends ti{decode(e,t){return super.decode(e,t)}};function O(m,e,t){return new fo(m,e,t)}function D(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 Et=O([h("mint"),h("owner"),l("amount"),ye("delegateOption"),h("delegate"),N("state"),ye("isNativeOption"),l("isNative"),l("delegatedAmount"),ye("closeAuthorityOption"),h("closeAuthority")]);import{PublicKey as qf,SystemProgram as Uf}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as zf}from"@solana/spl-token";import{PublicKey as ca}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as la}from"@solana/spl-token";function Z(m,e,t){return re([m.toBuffer(),(t!=null?t:la).toBuffer(),e.toBuffer()],new ca("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as X}from"@solana/web3.js";var mi=new X("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),di=new X("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),pi=new X("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),yo=new X("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),vd=new X("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ma=new X("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),fi=new X("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),yi=new X("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Vd=new X("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),da=new X("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),kt=new X("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),sn=new X("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),On=new X("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),bi=new X("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),_d=new X("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),pa=new X("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),bo=new X("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),fa=new X("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ed=new X("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ya=new X("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ba=new X("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ga=new X("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Dd=new X("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Wd=new X("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),qd=new X("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Ud=new X("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Gd=new X("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Tt={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 ty from"decimal.js";import{PublicKey as go}from"@solana/web3.js";var Pa=O([N("instruction")]),Aa=O([N("instruction")]),wa=O([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"),D(l(),15,"padding")]),ka=O([l("state"),l("nonce"),h("lpVault"),h("rewardVault"),h(),h(),l(),l(),l("totalReward"),z("perShareReward"),l("lastSlot"),l("perSlotReward")]),Ta=O([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()]),ha=O([l(),l("state"),l("nonce"),l("validRewardTokenNum"),z("rewardMultiplier"),l("rewardPeriodMax"),l("rewardPeriodMin"),l("rewardPeriodExtend"),h("lpMint"),h("lpVault"),D(wa,5,"rewardInfos"),h("creator"),h(),D(l(),32,"padding")]),Ia=new Proxy(ka,{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)}}),Ba=new Proxy(Ta,{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(ha,{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)}}),Sa=O([l("isSet"),l("rewardPerSecond"),l("rewardOpenTime"),l("rewardEndTime"),l("rewardType")]),xa=O([N("instruction"),l("nonce"),D(Sa,5,"rewardTimeInfo")]),Ka=O([N("instruction"),l("rewardReopenTime"),l("rewardEndTime"),l("rewardPerSecond")]),Ca=O([N("instruction"),l("isSet"),l("rewardPerSecond"),l("rewardOpenTime"),l("rewardEndTime"),l("rewardType")]),jd=O([l("state"),h("id"),h("owner"),l("deposited"),D(l(),1,"rewardDebts")]),Pi=O([l("state"),h("id"),h("owner"),l("deposited"),D(z(),1,"rewardDebts"),l(""),l("voteLockedBalance"),D(l(),15)]),$d=O([l("state"),h("id"),h("owner"),l("deposited"),D(l(),2,"rewardDebts")]),Ra=O([l("state"),h("id"),h("owner"),l("deposited"),D(z(),2,"rewardDebts"),D(l(),17)]),La=O([l(),l("state"),h("id"),h("owner"),l("deposited"),D(z(),5,"rewardDebts"),D(l(),16)]),Oa=O([N("instruction"),l("amount")]),Na=O([h("mint"),h("grantAuthority"),l("baselineVoteWeightScaledFactor"),l("maxExtraLockupVoteWeightScaledFactor"),l("lockupSaturationSecs"),si("digitShift"),D(N(),7,"reserved1"),D(l(),7,"reserved2")]),Ma=O([J(8),h("governanceProgramId"),h("realm"),h("realmGoverningTokenMint"),h("realmAuthority"),D(N(),32,"reserved1"),D(Na,4,"votingMints"),_t("timeOffset"),N("bump"),D(N(),7,"reserved2"),D(l(),11,"reserved3")]),Fa=O([_t("startTime"),_t("endTime"),N("kind"),D(N(),15,"reserved")]),va=O([D(Fa,1,"lockup"),l("amountDeposited_native"),l("amountInitiallyLockedNative"),be("isUsed"),be("allowClawback"),N("votingMintConfigIdx"),D(N(),29,"reserved")]),Va=O([J(8),h("voterAuthority"),h("registrar"),D(va,32,"deposits"),N("voterBump"),N("voterWweightRecordBump"),D(N(),94,"reserved")]);import{NATIVE_MINT as sp}from"@solana/spl-token";var up=ee("Raydium_farm_config"),_a=new go("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ea=new go("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var cp=new go("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var un={"Standard SPL":0,"Option tokens":1},Ai={[mi.toString()]:3,[di.toString()]:4,[pi.toString()]:5,[yo.toString()]:6,[Tt.FARM_PROGRAM_ID_V3.toString()]:3,[Tt.FARM_PROGRAM_ID_V4.toString()]:4,[Tt.FARM_PROGRAM_ID_V5.toString()]:5,[Tt.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKe