UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 209 kB
var pr=Object.defineProperty,fr=Object.defineProperties;var yr=Object.getOwnPropertyDescriptors;var Pn=Object.getOwnPropertySymbols;var Fo=Object.prototype.hasOwnProperty,vo=Object.prototype.propertyIsEnumerable;var Mo=(m,e,t)=>e in m?pr(m,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):m[e]=t,F=(m,e)=>{for(var t in e||(e={}))Fo.call(e,t)&&Mo(m,t,e[t]);if(Pn)for(var t of Pn(e))vo.call(e,t)&&Mo(m,t,e[t]);return m},q=(m,e)=>fr(m,yr(e));var tt=(m,e)=>{var t={};for(var n in m)Fo.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&&vo.call(m,n)&&(t[n]=m[n]);return t};import{PublicKey as Eo}from"@solana/web3.js";import{get as Vo,set as br}from"lodash";var 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}},_o={},gr={};function ee(m){let e=Vo(_o,m);if(!e){let t=Vo(gr,m);e=new Qn({name:m,logLevel:t}),br(_o,m,e)}return e}import{MINT_SIZE as Pr,TOKEN_PROGRAM_ID as Ar,getTransferFeeConfig as wr,unpackMint as kr}from"@solana/spl-token";var Zn=ee("Raydium_accountInfo_util");async function _e(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 Eo(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 Ee(m,e,t){let n=await _e(m,e.map(o=>o.pubkey),t);return e.map((o,i)=>q(F({},o),{accountInfo:n[i]}))}async function jt({connection:m,mints:e,config:t}){var i,r,a;if(e.length===0)return{};let n=await Ee(m,e.map(s=>({pubkey:at(s)})),t),o={};for(let s of n){if(!s.accountInfo||s.accountInfo.data.length<Pr){console.log("invalid mint account",s.pubkey.toBase58());continue}let c=kr(s.pubkey,s.accountInfo,(i=s.accountInfo)==null?void 0:i.owner);o[s.pubkey.toString()]=q(F({},c),{programId:((r=s.accountInfo)==null?void 0:r.owner)||Ar,feeConfig:(a=wr(c))!=null?a:void 0})}return o[Eo.default.toBase58()]=o[X.toBase58()],o}import Lt from"bn.js";import yR from"decimal.js";import Cr from"big.js";import kn from"bn.js";import Tr from"toformat";var hr=Tr,$t=hr;import wn from"big.js";import Br from"bn.js";import Sr from"decimal.js-light";import Jt from"bn.js";var Do=9007199254740991;function Te(m){let e=ee("Raydium_parseBigNumberish");if(m instanceof Jt)return m;if(typeof m=="string"){if(m.match(/^-?[0-9]+$/))return new Jt(m);e.logWithError(`invalid BigNumberish string: ${m}`)}return typeof m=="number"?(m%1&&e.logWithError(`BigNumberish number underflow: ${m}`),(m>=Do||m<=-Do)&&e.logWithError(`BigNumberish number overflow: ${m}`),new Jt(String(m))):typeof m=="bigint"?new Jt(m.toString()):(e.error(`invalid BigNumberish value: ${m}`),new Jt(0))}var An=ee("module/fraction"),jn=$t(wn),en=$t(Sr),xr={[0]:en.ROUND_DOWN,[1]:en.ROUND_HALF_UP,[2]:en.ROUND_UP},Kr={[0]:wn.roundDown,[1]:wn.roundHalfUp,[2]:wn.roundUp},re=class{constructor(e,t=new Br(1)){this.numerator=Te(e),this.denominator=Te(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new re(this.denominator,this.numerator)}add(e){let t=e instanceof re?e:new re(Te(e));return this.denominator.eq(t.denominator)?new re(this.numerator.add(t.numerator),this.denominator):new re(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof re?e:new re(Te(e));return this.denominator.eq(t.denominator)?new re(this.numerator.sub(t.numerator),this.denominator):new re(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof re?e:new re(Te(e));return new re(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof re?e:new re(Te(e));return new re(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.`),en.set({precision:e+1,rounding:xr[n]});let o=new en(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"),Wo=$t(Cr);function Lr(m,e){let t="0",n="0";if(m.includes(".")){let o=m.split(".");o.length===2?([t,n]=o,n=n.padEnd(e,"0")):Rr.logWithError(`invalid number string, num: ${m}`)}else t=m;return[t,n.slice(0,e)||n]}var he=class extends re{constructor(t,n,o=!0,i){let r=new kn(0),a=$n.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]=Lr(n.toString(),t.decimals);s=Te(u),c=Te(p)}s=s.mul(a),r=s.add(c)}super(r,a);this.logger=ee(i||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new he(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new he(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,o=0){return super.toSignificant(t,n,o)}toFixed(t=this.token.decimals,n,o=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,o)}toExact(t={groupSeparator:""}){return Wo.DP=this.token.decimals,new Wo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Or}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as qo}from"@solana/spl-token";var Tn={chainId:101,address:Or.default.toBase58(),programId:qo.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},st={chainId:101,address:"So11111111111111111111111111111111111111112",programId:qo.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as eo}from"@solana/web3.js";import{PublicKey as le,SystemProgram as Uo,SYSVAR_RENT_PUBKEY as Nr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Mr}from"@solana/spl-token";function 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:Uo.programId,isWritable:!1}),Ot({pubkey:Nr,isWritable:!1})];function Jn({publicKey:m,transformSol:e}){let t=Go(m.toString());if(t instanceof le)return e&&t.equals(It)?X:t;if(e&&t.toString()===It.toBase58())return X;if(typeof t=="string"){if(t===le.default.toBase58())return le.default;try{return new le(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Go(m){try{return new le(m)}catch{return m}}var yt=new le("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new le("SysvarRent111111111111111111111111111111111"),vr=new le("SysvarC1ock11111111111111111111111111111111"),bt=new le("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Vr=new le("Sysvar1nstructions1111111111111111111111111"),zo=Uo.programId,ec=new le("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),tc=new le("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),nc=new le("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),oc=new le("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ic=new le("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),rc=new le("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ac=new le("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),sc=new le("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),uc=new le("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),cc=new le("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),lc=new le("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),X=new le("So11111111111111111111111111111111111111112"),It=le.default;function at(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=st.decimals,this.symbol=st.symbol,this.name=st.name,this.mint=new eo(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?eo.default:Jn({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},xe=to;xe.WSOL=new to(q(F({},st),{mint:st.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 re(new _r(100)),ut=class extends re{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 re{constructor(t){let{baseToken:n,quoteToken:o,numerator:i,denominator:r}=t;super(i,r);this.baseToken=n,this.quoteToken=o,this.scalar=new re(oo(n.decimals),oo(o.decimals))}get raw(){return new re(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 yC}from"lodash";import Mc from"axios";var Xo={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Dr=q(F({},Xo),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var ol=ee("Raydium_Api");import{PublicKey as kd,SystemProgram as Td}from"@solana/web3.js";import{AccountLayout as xd,createAssociatedTokenAccountIdempotentInstruction as Kd,TOKEN_PROGRAM_ID as Cd,TOKEN_2022_PROGRAM_ID as Rd}from"@solana/spl-token";import{PublicKey as Vt,sendAndConfirmTransaction as co,SystemProgram as Yr,Transaction as on,TransactionMessage as rn,VersionedTransaction as an}from"@solana/web3.js";import Xr 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 _e(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 J={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as Qo,Keypair as Ho,PublicKey as Wr,Transaction as jo,TransactionMessage as qr,VersionedTransaction as $o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ur}from"@solana/spl-token";var Zo=ee("Raydium_txUtil"),Jo=1644;function In(m){let e=[],t=[];return m.microLamports&&(e.push(Qo.setComputeUnitPrice({microLamports:m.microLamports})),t.push(J.SetComputeUnitPrice)),m.units&&(e.push(Qo.setComputeUnitLimit({units:m.units})),t.push(J.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function 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&&Zo.logWithError(`no instructions provided: ${m.toString()}`),e.length<1&&Zo.logWithError(`no signers provided:, ${e.toString()}`);let t=new jo;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...m);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Jo}catch{return!1}}function ae(m,e){let[t,n]=Wr.findProgramAddressSync(m,e);return{publicKey:t,nonce:n}}function tn({instructions:m,payer:e,signers:t}){return uo(m,[e,...t])}function nn({instructions:m,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Ho.generate().publicKey.toString()}){let i=new qr({payerKey:e,recentBlockhash:n,instructions:m}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new $o(i).serialize()).toString("base64").length<Jo}catch{return!1}}var Gr=m=>Buffer.isBuffer(m)?m:m instanceof Uint8Array?Buffer.from(m.buffer,m.byteOffset,m.byteLength):Buffer.from(m),zr=m=>{let e=m.serialize({requireAllSignatures:!1,verifySignatures:!1});m instanceof $o&&(e=Gr(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Bt(m){let e=[];return m.forEach(t=>{t instanceof jo&&(t.recentBlockhash||(t.recentBlockhash=Ur.toBase58()),t.feePayer||(t.feePayer=Ho.generate().publicKey)),e.push(zr(t))}),console.log("simulate tx string:",e),e}var 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 Xr.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(Yr.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 on;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=[],k=0;for(let I of r){if(++k,k<=d)continue;let P=await co(this.connection,I,this.signers.find(T=>T.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 k=await this.signAllTransactions(A);if(p){let I=0,P=[],T=async()=>{if(!k[I])return;let B=await this.connection.sendRawTransaction(k[I].serialize(),{skipPreflight:y});P.push({txId:B,status:"sent",signedTx:k[I]}),g==null||g([...P]),I++;let S=!1,C=null,N=null,G=E=>{C!==null&&clearInterval(C),N!==null&&this.connection.removeSignatureListener(N);let v=P.findIndex(V=>V.txId===B);if(v>-1){if(P[v].status==="error"||P[v].status==="success")return;P[v].status=E.err?"error":"success"}g==null||g([...P]),E.err||T()};this.loopMultiTxStatus&&(C=setInterval(async()=>{var E;if(S){clearInterval(C);return}try{let v=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(S=!0,clearInterval(C),G({err:((E=v.meta)==null?void 0:E.err)||null}),console.log("tx status from getTransaction:",B))}catch(v){S=!0,clearInterval(C),console.error("getTransaction timeout:",v,B)}},Sn)),N=this.connection.onSignature(B,E=>{if(S){this.connection.removeSignatureListener(N);return}S=!0,G(E)},"confirmed"),this.connection.getSignatureStatus(B)};return await T(),{txIds:P.map(B=>B.txId),signedTxs:k}}else{let I=[];for(let P=0;P<k.length;P+=1){let T=await this.connection.sendRawTransaction(k[P].serialize(),{skipPreflight:y});I.push(T)}return{txIds:I,signedTxs:k}}}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=tt(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 rn({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 an(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:k}=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 T of P)try{T.sign(this.signers)}catch{}return{txId:k?"":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=[],k=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,T=null,B=null,S=C=>{T!==null&&clearInterval(T),B!==null&&this.connection.removeSignatureListener(B);let N=A.findIndex(G=>G.txId===I);if(N>-1){if(A[N].status==="error"||A[N].status==="success")return;A[N].status=C.err?"error":"success"}g==null||g([...A]),C.err||k()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var C;if(P){clearInterval(T);return}try{let N=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});N&&(P=!0,clearInterval(T),S({err:((C=N.meta)==null?void 0:C.err)||null}),console.log("tx status from getTransaction:",I))}catch(N){P=!0,clearInterval(T),console.error("getTransaction timeout:",N,I)}},Sn)),B=this.connection.onSignature(I,C=>{if(P){this.connection.removeSignatureListener(B);return}P=!0,S(C)},"confirmed"),this.connection.getSignatureStatus(I)};return k(),{txIds:[],signedTxs:b}}else{let w=[];for(let A=0;A<b.length;A+=1){let k=await this.connection.sendTransaction(b[A],{skipPreflight:f});w.push(k)}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=tt(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(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(A=>new Vt(A));if(d!==t[u]&&c.length<12&&(tn({instructions:y,payer:this.feePayer,signers:w})||tn({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,tn({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:w})?a.push(new on().add(...i.instructions,...c)):a.push(new on().add(...c)),s.push(Array.from(new Set(c.map(A=>A.keys.filter(k=>k.isSigner).map(k=>k.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);tn({instructions:n?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:f.map(y=>y.publicKey)})?a.push(new on().add(...i.instructions,...c)):a.push(new on().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||{},k=w!=null?w:await vt(this.connection,this.blockhashCommitment);if(a.forEach(async(P,T)=>{P.recentBlockhash=k,s[T].length&&P.sign(...s[T])}),Bt(a),(I=this.owner)!=null&&I.isKeyPair){if(f){let P=0,T=[];for(let B of a){if(++P,P<=b){T.push("tx skipped");continue}let S=await co(this.connection,B,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});T.push(S)}return{txIds:T,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)),T=[...a.slice(0,b),...P];if(f){let B=0,S=[],C=async()=>{if(!T[B])return;B<b&&(S.push({txId:"",status:"success",signedTx:T[B]}),y==null||y([...S]),B++,C());let N=await this.connection.sendRawTransaction(T[B].serialize(),{skipPreflight:A});S.push({txId:N,status:"sent",signedTx:T[B]}),y==null||y([...S]),B++;let G=!1,E=null,v=null,V=D=>{E!==null&&clearInterval(E),v!==null&&this.connection.removeSignatureListener(v);let H=S.findIndex(pe=>pe.txId===N);if(H>-1){if(S[H].status==="error"||S[H].status==="success")return;S[H].status=D.err?"error":"success"}y==null||y([...S]),D.err||C()};this.loopMultiTxStatus&&(E=setInterval(async()=>{var D;if(G){clearInterval(E);return}try{let H=await this.connection.getTransaction(N,{commitment:"confirmed",maxSupportedTransactionVersion:0});H&&(G=!0,clearInterval(E),V({err:((D=H.meta)==null?void 0:D.err)||null}),console.log("tx status from getTransaction:",N))}catch(H){G=!0,clearInterval(E),console.error("getTransaction timeout:",H,N)}},Sn)),v=this.connection.onSignature(N,D=>{if(G){this.connection.removeSignatureListener(v);return}G=!0,V(D)},"confirmed"),this.connection.getSignatureStatus(N)};return await C(),{txIds:S.map(N=>N.txId),signedTxs:T}}else{let B=[];for(let S=0;S<T.length;S+=1){let C=await this.connection.sendRawTransaction(T[S].serialize(),{skipPreflight:A});B.push(C)}return{txIds:B,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var I;let k=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:i=[],insCountLimit:r=12}=k,a=tt(k,["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,T]of Object.entries(p))s[P]=T;let g=t?In(t):{instructions:[],instructionTypes:[]},d=await vt(this.connection,this.blockhashCommitment),f=this.signers.reduce((P,T)=>q(F({},P),{[T.publicKey.toBase58()]:T}),{}),y=[],b=[],w=[],A=0;if(this.allInstructions.forEach(P=>{let T=[...w,P],B=t?[...g.instructions,...T]:T;if(P!==n[A]&&w.length<r&&(nn({instructions:B,payer:this.feePayer,lookupTableAddressAccount:s})||nn({instructions:T,payer:this.feePayer,lookupTableAddressAccount:s})))w.push(P);else{if(w.length===0)throw Error("item ins too big");A+=P===n[A]?1:0;let S={};for(let C of[...new Set(c)])s[C]!==void 0&&(S[C]=s[C]);if(t&&nn({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:d})){let C=new rn({payerKey:this.feePayer,recentBlockhash:d,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));y.push(new an(C))}else{let C=new rn({payerKey:this.feePayer,recentBlockhash:d,instructions:[...w]}).compileToV0Message(Object.values(s));y.push(new an(C))}b.push(Array.from(new Set(w.map(C=>C.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat())).map(C=>f[C]).filter(C=>C!==void 0)),w=[P]}}),w.length>0){let T=[...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&&nn({instructions:[...g.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:d})){let B=new rn({payerKey:this.feePayer,recentBlockhash:d,instructions:[...g.instructions,...w]}).compileToV0Message(Object.values(s));y.push(new an(B))}else{let B=new rn({payerKey:this.feePayer,recentBlockhash:d,instructions:[...w]}).compileToV0Message(Object.values(s));y.push(new an(B))}b.push(T)}return(I=this.owner)!=null&&I.signer&&b.forEach(P=>{P.some(T=>T.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),y.forEach((P,T)=>{P.sign(b[T])}),{builder:this,transactions:y,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async P=>{var G;let{sequentially:T,onTxUpdate:B,skipTxCount:S=0,recentBlockHash:C,skipPreflight:N=!0}=P||{};if(y.map(async(E,v)=>{b[v].length&&E.sign(b[v]),C&&(E.message.recentBlockhash=C)}),Bt(y),(G=this.owner)!=null&&G.isKeyPair){if(T){let E=0,v=[];for(let V of y){if(++E,E<=S){console.log("skip tx: ",E),v.push("tx skipped");continue}let D=await this.connection.sendTransaction(V,{skipPreflight:N});await Bn(this.connection,D),v.push(D)}return{txIds:v,signedTxs:y}}return{txIds:await Promise.all(y.map(async E=>await this.connection.sendTransaction(E,{skipPreflight:N}))),signedTxs:y}}if(this.signAllTransactions){let E=await this.signAllTransactions(y.slice(S,y.length)),v=[...y.slice(0,S),...E];if(T){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:N});D.push({txId:pe,status:"sent",signedTx:v[V]}),B==null||B([...D]),V++;let fe=!1,Re=null,ft=null,Ve=Ne=>{Re!==null&&clearInterval(Re),ft!==null&&this.connection.removeSignatureListener(ft);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)),ft=this.connection.onSignature(pe,Ne=>{if(fe){this.connection.removeSignatureListener(ft);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:N});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(", "),Me=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 $m,SystemProgram as ed}from"@solana/web3.js";import od from"bn.js";import{createCloseAccountInstruction as sd,createInitializeAccountInstruction as ud,createTransferInstruction as cd,TOKEN_PROGRAM_ID as ld}from"@solana/spl-token";import{Keypair as Em,PublicKey as Dm}from"@solana/web3.js";import Um from"bn.js";import{TOKEN_PROGRAM_ID as Ym}from"@solana/spl-token";import{PublicKey as aa}from"@solana/web3.js";import ri,{isBN as ai}from"bn.js";import{bits as Qr,BitStructure as zl,blob as Zr,Blob as Yl,cstr as Xl,f32 as Ql,f32be as Zl,f64 as Hl,f64be as jl,greedy as $l,Layout as Hr,ns64 as Jl,ns64be as em,nu64 as jr,nu64be as tm,offset as $r,s16 as nm,s16be as om,s24 as im,s24be as rm,s32 as Jr,s32be as am,s40 as sm,s40be as um,s48 as cm,s48be as lm,s8 as mm,seq as ea,struct as dm,Structure as ta,u16 as na,u16be as pm,u24 as fm,u24be as ym,u32 as oa,u32be as bm,u40 as gm,u40be as Pm,u48 as Am,u48be as wm,u8 as ia,UInt as ra,union as km,Union as Tm,unionLayoutDiscriminator as hm,utf8 as Im}from"@solana/buffer-layout";var Kn=Hr,ei=ta;var mo=ra;var ti=ia,Ke=na;var Cn=oa;var ni=jr;var Ae=Jr;var oi=ea;var j=Zr;var po=Qr,ii=$r;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 O(m){return new mo(1,m)}function me(m){return new mo(4,m)}function l(m){return new xt(8,!1,m)}function Y(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 sn=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 sn(j(32),e=>new aa(e),e=>e.toBuffer(),m)}function ye(m){return new sn(ti(),sa,ua,m)}function sa(m){if(m===0)return!1;if(m===1)return!0;throw new Error("Invalid bool: "+m)}function ua(m){return m?1:0}function ci(m,e){let t=Cn("length"),n=L([t,_(m,ii(t,-t.span),"values")]);return new sn(n,({values:o})=>o,o=>({values:o}),e)}var fo=class extends ei{decode(e,t){return super.decode(e,t)}};function L(m,e,t){return new fo(m,e,t)}function _(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=L([h("mint"),h("owner"),l("amount"),me("delegateOption"),h("delegate"),O("state"),me("isNativeOption"),l("isNative"),l("delegatedAmount"),me("closeAuthorityOption"),h("closeAuthority")]);import{PublicKey as Xf,SystemProgram as Qf}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Hf}from"@solana/spl-token";import{PublicKey as la}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ma}from"@solana/spl-token";function Z(m,e,t){return ae([m.toBuffer(),(t!=null?t:ma).toBuffer(),e.toBuffer()],new la("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as z}from"@solana/web3.js";var mi=new z("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),di=new z("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),pi=new z("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),yo=new z("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Wd=new z("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),da=new z("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),fi=new z("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),yi=new z("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),qd=new z("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),pa=new z("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),gt=new z("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),un=new z("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),On=new z("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),bi=new z("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ud=new z("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),fa=new z("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ya=new z("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ba=new z("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ga=new z("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Pa=new z("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),bo=new z("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Aa=new z("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Gd=new z("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),wa=new z("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ka=new z("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ta=new z("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),zd=new z("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Yd=new z("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Xd=new z("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Qd=new z("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Zd=new z("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),cn={IDO_PROGRAM_ID_V1:ya,IDO_PROGRAM_ID_V2:ba,IDO_PROGRAM_ID_V3:ga,IDO_PROGRAM_ID_V4:Pa};var Pt={OPEN_BOOK_PROGRAM:new z("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new z("Ray1111111111111111111111111111111111111111"),AMM_V4:new z("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new z("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new z("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new z("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new z("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new z("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new z("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new z("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new z("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new z("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:z.default,Router:new z("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new z("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new z("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new z("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new z("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new z("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new z("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new z("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new z("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new z("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new z("Ray1111111111111111111111111111111111111111")};import ay from"decimal.js";import{PublicKey as go}from"@solana/web3.js";var ha=L([O("instruction")]),Ia=L([O("instruction")]),Ba=L([l("rewardState"),l("rewardOpenTime"),l("rewardEndTime"),l("rewardLastUpdateTime"),l("totalReward"),l("totalRewardEmissioned"),l("rewardClaimed"),l("rewardPerSecond"),Y("accRewardPerShare"),h("rewardVault"),h("rewardMint"),h("rewardSender"),l("rewardType"),_(l(),15,"padding")]),Sa=L([l("state"),l("nonce"),h("lpVault"),h("rewardVault"),h(),h(),l(),l(),l("totalReward"),Y("perShareReward"),l("lastSlot"),l("perSlotReward")]),xa=L([l("state"),l("nonce"),h("lpVault"),h("rewardVaultA"),l("totalRewardA"),Y("perShareRewardA"),l("perSlotRewardA"),O("option"),h("rewardVaultB"),j(7),l("totalRewardB"),Y("perShareRewardB"),l("perSlotRewardB"),l("lastSlot"),h()]),Ka=L([l(),l("state"),l("nonce"),l("validRewardTokenNum"),Y("rewardMultiplier"),l("rewardPeriodMax"),l("rewardPeriodMin"),l("rewardPeriodExtend"),h("lpMint"),h("lpVault"),_(Ba,5,"rewardInfos"),h("creator"),h(),_(l(),32,"padding")]),Ca=new Proxy(Sa,{get(m,e,t){return e==="decode"?(...n)=>{let o=m.decode(...n);return q(F({},o),{version:3,rewardInfos:[{rewardVault:o.rewardVault,totalReward:o.totalReward,perSlotReward:o.perSlotReward,perShareReward:o.perShareReward}]})}:Reflect.get(m,e,t)}}),Ra=new Proxy(xa,{get(m,e,t){return e==="decode"?(...n)=>{let o=m.decode(...n);return q(F({},o),{version:5,rewardInfos:[{rewardVault:o.rewardVaultA,totalReward:o.totalRewardA,perSlotReward:o.perSlotRewardA,perShareReward:o.perShareRewardA},{rewardVault:o.rewardVaultB,totalReward:o.totalRewardB,perSlotReward:o.perSlotRewardB,perShareReward:o.perShareRewardB}]})}:Reflect.get(m,e,t)}}),gi=new Proxy(Ka,{get(m,e,t){return e==="decode"?(...n)=>{let o=m.decode(...n);return q(F({},o),{version:6,rewardInfos:o.rewardInfos.map(i=>{var r;return q(F({},i),{rewardType:((r=Object.entries(ln).find(a=>String(a[1])===i.rewardType.toString()))!=null?r:["Standard SPL"])[0]})})})}:Reflect.get(m,e,t)}}),La=L([l("isSet"),l("rewardPerSecond"),l("rewardOpenTime"),l("rewardEndTime"),l("rewardType")]),Oa=L([O("instruction"),l("nonce"),_(La,5,"rewardTimeInfo")]),Na=L([O("instruction"),l("rewardReopenTime"),l("rewardEndTime"),l("rewardPerSecond")]),Ma=L([O("instruction"),l("isSet"),l("rewardPerSecond"),l("rewardOpenTime"),l("rewardEndTime"),l("rewardType")]),np=L([l("state"),h("id"),h("owner"),l("deposited"),_(l(),1,"rewardDebts")]),Pi=L([l("state"),h("id"),h("owner"),l("deposited"),_(Y(),1,"rewardDebts"),l(""),l("voteLockedBalance"),_(l(),15)]),op=L([l("state"),h("id"),h("owner"),l("deposited"),_(l(),2,"rewardDebts")]),Fa=L([l("state"),h("id"),h("owner"),l("deposited"),_(Y(),2,"rewardDebts"),_(l(),17)]),va=L([l(),l("state"),h("id"),h("owner"),l("deposited"),_(Y(),5,"rewardDebts"),_(l(),16)]),Va=L([O("instruction"),l("amount")]),_a=L([h("mint"),h("grantAuthority"),l("baselineVoteWeightScaledFactor"),l("maxExtraLockupVoteWeightScaledFactor"),l("lockupSaturationSecs"),si("digitShift"),_(O(),7,"reserved1"),_(l(),7,"reserved2")]),Ea=L([j(8),h("governanceProgramId"),h("realm"),h("realmGoverningTokenMint"),h("realmAuthority"),_(O(),32,"reserved1"),_(_a,4,"votingMints"),_t("timeOffset"),O("bump"),_(O(),7,"reserved2"),_(l(),11,"reserved3")]),Da=L([_t("startTime"),_t("endTime"),O("kind"),_(O(),15,"reserved")]),Wa=L([_(Da,1,"lockup"),l("amountDeposited_native"),l("amountInitiallyLockedNative"),ye("isUsed"),ye("allowClawback"),O("votingMintConfigIdx"),_(O(),29,"reserved")]),qa=L([j(8),h("voterAuthority"),h("registrar"),_(Wa,32,"deposits"),O("voterBump"),O("voterWweightRecordBump"),_(O(),94,"reserved")]);import{NATIVE_MINT as dp}from"@solana/spl-token";var pp=ee("Raydium_farm_config"),Ua=new go("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ga=new go("FrspKwj8i3pN