@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 76.4 kB
JavaScript
var mo=Object.defineProperty,po=Object.defineProperties;var fo=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(i,t,n)=>t in i?mo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,I=(i,t)=>{for(var n in t||(t={}))sn.call(t,n)&&an(i,n,t[n]);if(nt)for(var n of nt(t))un.call(t,n)&&an(i,n,t[n]);return i},N=(i,t)=>po(i,fo(t));var ue=(i,t)=>{var n={};for(var r in i)sn.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&nt)for(var r of nt(i))t.indexOf(r)<0&&un.call(i,r)&&(n[r]=i[r]);return n};import{PublicKey as co}from"@solana/web3.js";import{getTransferFeeConfig as Aa,MintLayout as wa,TOKEN_2022_PROGRAM_ID as nn,TOKEN_PROGRAM_ID as on,unpackMint as ka}from"@solana/spl-token";import{get as cn,set as yo}from"lodash";var Bt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},ln={},bo={};function E(i){let t=cn(ln,i);if(!t){let n=cn(bo,i);t=new Bt({name:i,logLevel:n}),yo(ln,i,t)}return t}import{PublicKey as Ve,sendAndConfirmTransaction as en,SystemProgram as ga,Transaction as je,TransactionMessage as Je,VersionedTransaction as et}from"@solana/web3.js";import Pa from"axios";import{PublicKey as Zt,AddressLookupTableAccount as _e}from"@solana/web3.js";import{PublicKey as ba}from"@solana/web3.js";import he from"bn.js";import LC from"decimal.js";import Io from"big.js";import Wa from"bn.js";import go from"toformat";var Po=go,De=Po;import it from"big.js";import wo from"bn.js";import ko from"decimal.js-light";import We from"bn.js";var mn=9007199254740991;function ne(i){let t=E("Raydium_parseBigNumberish");if(i instanceof We)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new We(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=mn||i<=-mn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new We(String(i))):typeof i=="bigint"?new We(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new We(0))}var ot=E("module/fraction"),St=De(it),qe=De(ko),To={[0]:qe.ROUND_DOWN,[1]:qe.ROUND_HALF_UP,[2]:qe.ROUND_UP},ho={[0]:it.roundDown,[1]:it.roundHalfUp,[2]:it.roundUp},U=class{constructor(t,n=new wo(1)){this.numerator=ne(t),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||ot.logWithError(`${t} is not an integer.`),t<=0&&ot.logWithError(`${t} is not positive.`),qe.set({precision:t+1,rounding:To[r]});let u=new qe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||ot.logWithError(`${t} is not an integer.`),t<0&&ot.logWithError(`${t} is negative.`),St.DP=t,St.RM=ho[r]||1,new St(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Za=E("Raydium_amount"),$a=De(Io);import{PublicKey as So}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as dn}from"@solana/spl-token";var be={chainId:101,address:So.default.toBase58(),programId:dn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ce={chainId:101,address:"So11111111111111111111111111111111111111112",programId:dn.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 xt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as pn,SYSVAR_RENT_PUBKEY as Ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as xo}from"@solana/spl-token";function Be({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Co=[Be({pubkey:xo,isWritable:!1}),Be({pubkey:pn.programId,isWritable:!1}),Be({pubkey:Ko,isWritable:!1})];function fn({publicKey:i,transformSol:t}){let n=yn(i.toString());if(n instanceof z)return t&&n.equals(Ae)?fe:n;if(t&&n.toString()===Ae.toBase58())return fe;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function yn(i){try{return new z(i)}catch{return i}}var Kt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ue=new z("SysvarRent111111111111111111111111111111111"),rs=new z("SysvarC1ock11111111111111111111111111111111"),rt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ro=new z("Sysvar1nstructions1111111111111111111111111"),Lo=pn.programId,as=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ss=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),us=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),cs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ls=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ms=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ds=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ps=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),fs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ys=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),bs=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),fe=new z("So11111111111111111111111111111111111111112"),Ae=z.default;var Ct=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:y=!1}){if(t===Ae.toBase58()||t instanceof xt&&Ae.equals(t)){this.decimals=ce.decimals,this.symbol=ce.symbol,this.name=ce.name,this.mint=new xt(ce.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=d?xt.default:fn({publicKey:t}),this.isToken2022=y}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ct;J.WSOL=new Ct(N(I({},ce),{mint:ce.address}));var Rt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},at=Rt;at.SOL=new Rt(be);import Oo from"bn.js";var xs=new U(new Oo(100));var Ms=E("Raydium_price");import{merge as Nx}from"lodash";import qs from"axios";var bn={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"},No=N(I({},bn),{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 mu=E("Raydium_Api");import{PublicKey as el,SystemProgram as tl}from"@solana/web3.js";import{AccountLayout as al,createAssociatedTokenAccountIdempotentInstruction as sl,TOKEN_PROGRAM_ID as ul,TOKEN_2022_PROGRAM_ID as cl}from"@solana/spl-token";import{PublicKey as Lc,SystemProgram as Nc}from"@solana/web3.js";import vc from"bn.js";import{createCloseAccountInstruction as Dc,createInitializeAccountInstruction as Wc,createTransferInstruction as qc,TOKEN_PROGRAM_ID as Uc}from"@solana/spl-token";var Q={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{Keypair as Pc,PublicKey as Ac}from"@solana/web3.js";import Tc from"bn.js";import{TOKEN_PROGRAM_ID as Bc}from"@solana/spl-token";import{PublicKey as zo}from"@solana/web3.js";import kn,{isBN as Tn}from"bn.js";import{bits as Mo,BitStructure as hu,blob as Fo,Blob as Iu,cstr as Bu,f32 as Su,f32be as Ku,f64 as xu,f64be as Cu,greedy as Ru,Layout as vo,ns64 as Lu,ns64be as Ou,nu64 as Nu,nu64be as Mu,offset as _o,s16 as Fu,s16be as vu,s24 as _u,s24be as Vu,s32 as Vo,s32be as Eu,s40 as Du,s40be as Wu,s48 as qu,s48be as Uu,s8 as Gu,seq as Eo,struct as zu,Structure as Do,u16 as Wo,u16be as Xu,u24 as Yu,u24be as Hu,u32 as qo,u32be as Qu,u40 as Zu,u40be as $u,u48 as ju,u48be as Ju,u8 as Uo,UInt as Go,union as ec,Union as tc,unionLayoutDiscriminator as nc,utf8 as oc}from"@solana/buffer-layout";var st=vo,gn=Do;var Lt=Go;var Pn=Uo,Y=Wo;var ut=qo;var ae=Vo;var An=Eo;var M=Fo;var Ot=Mo,wn=_o;var we=class extends st{constructor(n,r,u){super(n,u);this.blob=M(n),this.signed=r}decode(n,r=0){let u=new kn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new kn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},ct=class extends st{constructor(n){super(8,n);this._lower=Ot(ut(),!1),this._upper=Ot(ut(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),d=this._upper.decode(n,r+this._lower.span);return I(I({},u),d)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(i){return new Lt(1,i)}function X(i){return new Lt(4,i)}function e(i){return new we(8,!1,i)}function C(i){return new we(16,!1,i)}function hn(i){return new we(1,!0,i)}function Se(i){return new we(8,!0,i)}function In(i){return new we(16,!0,i)}var ze=class extends st{constructor(n,r,u,d){super(n.span,d);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function o(i){return new ze(M(32),t=>new zo(t),t=>t.toBuffer(),i)}function re(i){return new ze(Pn(),Xo,Yo,i)}function Xo(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Yo(i){return i?1:0}function Mt(i,t){let n=ut("length"),r=l([n,m(i,wn(n,-n.span),"values")]);return new ze(r,({values:u})=>u,u=>({values:u}),t)}var Nt=class extends gn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Nt(i,t,n)}function m(i,t,n){let r,u=typeof t=="number"?t:Tn(t)?t.toNumber():new Proxy(t,{get(d,y){if(!r){let b=Reflect.get(d,"count");r=Tn(b)?b.toNumber():b,Reflect.set(d,"count",r)}return Reflect.get(d,y)},set(d,y,b){return y==="count"&&(r=b),Reflect.set(d,y,b)}});return An(i,u,n)}var lt=l([o("mint"),o("owner"),e("amount"),X("delegateOption"),o("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as lg,SystemProgram as mg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as pg}from"@solana/spl-token";import{PublicKey as Sl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as xl}from"@solana/spl-token";import{ComputeBudgetProgram as Sn,Keypair as xn,PublicKey as Qo,Transaction as Cn,TransactionMessage as Zo,VersionedTransaction as Rn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as $o}from"@solana/spl-token";var Kn=E("Raydium_txUtil"),Ln=1644;function dt(i){let t=[],n=[];return i.microLamports&&(t.push(Sn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(Sn.setComputeUnitLimit({units:i.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ke(i,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=i.getLatestBlockhash)==null?void 0:r.call(i,{commitment:n})))==null?void 0:u.blockhash}async function pt(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,d=>{if(clearTimeout(u),!d.err){n("");return}r(Object.assign(d.err,{txId:t}))},"confirmed")})}function Ft(i,t){i.length<1&&Kn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&Kn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Cn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Ln}catch{return!1}}function me(i,t){let[n,r]=Qo.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Xe({instructions:i,payer:t,signers:n}){return Ft(i,[t,...n])}function Ye({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=xn.generate().publicKey.toString()}){let d=new Zo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Rn(d).serialize()).toString("base64").length<Ln}catch{return!1}}var jo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Jo=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Rn&&(t=jo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(i){let t=[];return i.forEach(n=>{n instanceof Cn&&(n.recentBlockhash||(n.recentBlockhash=$o.toBase58()),n.feePayer||(n.feePayer=xn.generate().publicKey)),t.push(Jo(n))}),console.log("simulate tx string:",t),t}import{PublicKey as T}from"@solana/web3.js";var On=new T("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Nn=new T("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Mn=new T("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),vt=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Ol=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ei=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Fn=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),vn=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Nl=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ti=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),_n=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ni=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),oi=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Vn=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ml=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ii=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),_t=new T("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ri=new T("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Fl=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ai=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),si=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ui=new T("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),vl=new T("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),_l=new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Vl=new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),El=new T("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Dl=new T("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ge={OPEN_BOOK_PROGRAM:new T("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new T("Ray1111111111111111111111111111111111111111"),AMM_V4:new T("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new T("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new T("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new T("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new T("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new T("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new T("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new T("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:T.default,Router:new T("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new T("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new T("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new T("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new T("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new T("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new T("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new T("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new T("Ray1111111111111111111111111111111111111111")};import hg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as zf,TOKEN_2022_PROGRAM_ID as Xf,TOKEN_PROGRAM_ID as Yf}from"@solana/spl-token";import{PublicKey as Qf}from"@solana/web3.js";import $f from"bn.js";import Jf from"decimal.js";import{TOKEN_PROGRAM_ID as em}from"@solana/spl-token";import{PublicKey as im}from"@solana/web3.js";var ci=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);var ft=i=>i?N(I({},i),{transferFeeConfigAuthority:i.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:i.withdrawWithheldAuthority.toBase58(),withheldAmount:i.withheldAmount.toString(),olderTransferFee:N(I({},i.olderTransferFee),{epoch:i.olderTransferFee.epoch.toString(),maximumFee:i.olderTransferFee.maximumFee.toString()}),newerTransferFee:N(I({},i.newerTransferFee),{epoch:i.newerTransferFee.epoch.toString(),maximumFee:i.newerTransferFee.maximumFee.toString()})}):void 0;import{ASSOCIATED_TOKEN_PROGRAM_ID as df,TOKEN_2022_PROGRAM_ID as pf,TOKEN_PROGRAM_ID as ff}from"@solana/spl-token";import{Keypair as gf,PublicKey as Pf,SystemProgram as wf,TransactionInstruction as kf}from"@solana/web3.js";import hf from"bn.js";import D from"bn.js";var Ce=new D(1).shln(64);var li=new D(1).shln(128),Vt=new D(1).shln(64).subn(1),mi=new D(1).shln(128).subn(1);var Re=new D("4295048016"),Le=new D("79226673521066979257578248091"),di=new D("59543866431248"),pi=new D("184467440737095516"),fi=new D("15793534762490258745");var Et=60,bm=new D("18446743708227953217"),yi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var He=3,En=100;var Dn=10,Wn=100,yt=14;var Z=new D(0),Oe=new D(1),gm=new D(-1);var Pm=new D("18446744073700000000");var bi=l([M(8),c("bump"),Y("index"),o("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Y("tickSpacing"),X("fundFeeRate"),m(X(),1),o("fundOwner"),m(e(),3)]),gi=l([X("blockTimestamp"),Se("tickCumulative"),m(e(),4)]),qn=l([M(8),re("initialized"),e("recentEpoch"),Y("observationIndex"),o("poolId"),m(gi,En,"observations"),m(e(),4)]),Pi=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Ai=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),C("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),C("growthGlobalX64")]),Dt=l([M(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Y("tickSpacing"),C("liquidity"),C("sqrtPriceX64"),ae("tickCurrent"),X(),C("feeGrowthGlobalX64A"),C("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(C(),4),c("status"),c("feeOn"),M(6),m(Ai,He,"rewardInfos"),M(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Pi.replicate("dynamicFeeInfo"),m(e(),46)]),wi=l([C("growthInsideLastX64"),e("rewardAmountOwed")]),ki=l([M(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),C("liquidity"),C("feeGrowthInsideLastX64A"),C("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(wi,He,"rewardInfos"),e("recentEpoch"),m(e(),7)]),Tm=l([M(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),C("liquidity"),C("feeGrowthInsideLastX64A"),C("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(C(),He,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),Ti=l([ae("tick"),In("liquidityNet"),C("liquidityGross"),C("feeGrowthOutsideX64A"),C("feeGrowthOutsideX64B"),m(C(),He,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),C("unfilledRatioX64"),m(X(),3)]),Un=l([M(8),o("poolId"),ae("startTickIndex"),m(Ti,Et,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),hi=l([M(8),c("bump"),m(o(),Dn,"operationOwners"),m(o(),Wn,"whitelistMints")]),Ii=l([M(8),o("poolId"),o("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),C("unfilledRatioX64"),m(e(),4)]),Gn=l([M(8),o("poolId"),M(8*8*yt,"positiveTickArrayBitmap"),M(8*8*yt,"negativeTickArrayBitmap")]),hm=l([M(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),m(e(),8)]),Bi=l([M(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),Im=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Si=l([M(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import Km from"bn.js";var Vm=Buffer.from("amm_config","utf8"),xi=Buffer.from("pool","utf8"),Ci=Buffer.from("pool_vault","utf8"),Em=Buffer.from("pool_reward_vault","utf8"),Dm=Buffer.from("position","utf8"),Wm=Buffer.from("tick_array","utf8"),qm=Buffer.from("operation","utf8"),Um=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Gm=Buffer.from("observation","utf8"),zm=Buffer.from("support_mint","utf8"),Xm=Buffer.from("dynamic_fee_config","utf8"),Ym=Buffer.from("permission","utf8");var Hm=Buffer.from("locked_position","utf8");import{sha256 as Gi}from"js-sha256";import Ri from"bn.js";import jm from"decimal.js";var ed=new Ri(1).shln(256).subn(1);import Pd from"bn.js";import sd from"bn.js";import cd from"decimal.js";import hd from"bn.js";import Bd from"decimal.js";import{PublicKey as mp}from"@solana/web3.js";import pp from"bn.js";import{TOKEN_2022_PROGRAM_ID as kp,TOKEN_PROGRAM_ID as Tp}from"@solana/spl-token";import Sp from"decimal.js";import ep from"bn.js";import Wd from"bn.js";import _p from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(Gi.digest(t)).slice(0,8)}qn.span;var Of=E("Raydium_Clmm"),Nf={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),createPermissionedPool:$("create_permissioned_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{PublicKey as Gt}from"@solana/web3.js";var Hi=l([c("instruction")]),Qi=l([c("instruction")]),Zi=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),C("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),m(e(),15,"padding")]),$i=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),C("perShareReward"),e("lastSlot"),e("perSlotReward")]),ji=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),C("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),M(7),e("totalRewardB"),C("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),Ji=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),C("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),m(Zi,5,"rewardInfos"),o("creator"),o(),m(e(),32,"padding")]),er=new Proxy($i,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return N(I({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(i,t,n)}}),tr=new Proxy(ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return N(I({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perShareRewardB}]})}:Reflect.get(i,t,n)}}),Zn=new Proxy(Ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return N(I({},u),{version:6,rewardInfos:u.rewardInfos.map(d=>{var y;return N(I({},d),{rewardType:((y=Object.entries($e).find(b=>String(b[1])===d.rewardType.toString()))!=null?y:["Standard SPL"])[0]})})})}:Reflect.get(i,t,n)}}),nr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),or=l([c("instruction"),e("nonce"),m(nr,5,"rewardTimeInfo")]),ir=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),rr=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),xy=l([e("state"),o("id"),o("owner"),e("deposited"),m(e(),1,"rewardDebts")]),$n=l([e("state"),o("id"),o("owner"),e("deposited"),m(C(),1,"rewardDebts"),e(""),e("voteLockedBalance"),m(e(),15)]),Cy=l([e("state"),o("id"),o("owner"),e("deposited"),m(e(),2,"rewardDebts")]),ar=l([e("state"),o("id"),o("owner"),e("deposited"),m(C(),2,"rewardDebts"),m(e(),17)]),sr=l([e(),e("state"),o("id"),o("owner"),e("deposited"),m(C(),5,"rewardDebts"),m(e(),16)]),ur=l([c("instruction"),e("amount")]),cr=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),hn("digitShift"),m(c(),7,"reserved1"),m(e(),7,"reserved2")]),lr=l([M(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),m(c(),32,"reserved1"),m(cr,4,"votingMints"),Se("timeOffset"),c("bump"),m(c(),7,"reserved2"),m(e(),11,"reserved3")]),mr=l([Se("startTime"),Se("endTime"),c("kind"),m(c(),15,"reserved")]),dr=l([m(mr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),c("votingMintConfigIdx"),m(c(),29,"reserved")]),pr=l([M(8),o("voterAuthority"),o("registrar"),m(dr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),m(c(),94,"reserved")]);import{NATIVE_MINT as Vy}from"@solana/spl-token";var Ey=E("Raydium_farm_config"),fr=new Gt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),yr=new Gt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Dy=new Gt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var $e={"Standard SPL":0,"Option tokens":1},jn={[On.toString()]:3,[Nn.toString()]:4,[Mn.toString()]:5,[vt.toString()]:6,[ge.FARM_PROGRAM_ID_V3.toString()]:3,[ge.FARM_PROGRAM_ID_V4.toString()]:4,[ge.FARM_PROGRAM_ID_V5.toString()]:5,[ge.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Bb,SystemProgram as Sb,SYSVAR_CLOCK_PUBKEY as Kb,SYSVAR_RENT_PUBKEY as xb,TransactionInstruction as Cb}from"@solana/web3.js";import Lb from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Nb,createAssociatedTokenAccountIdempotentInstruction as Mb,TOKEN_PROGRAM_ID as Fb}from"@solana/spl-token";import tb from"bn.js";import{PublicKey as Xy}from"@solana/web3.js";import Hy from"bn.js";var fb=E("Raydium.farm.util");var Xb=E("Raydium_farm_instruction"),Yb={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};import Mg from"bn.js";import{PublicKey as qA}from"@solana/web3.js";import{AccountLayout as zA,MintLayout as XA,NATIVE_MINT as YA,TOKEN_PROGRAM_ID as QA}from"@solana/spl-token";import _g from"bn.js";import eo from"bn.js";var hr=new eo(25),Ir=new eo(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as rP,TOKEN_PROGRAM_ID as aP}from"@solana/spl-token";import{PublicKey as uP,SystemProgram as cP,SYSVAR_RENT_PUBKEY as lP,TransactionInstruction as mP}from"@solana/web3.js";import AP from"bn.js";var Br=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Sr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),tP=l([c("instruction"),c("nonce")]),Kr=l([c("instruction"),c("nonce"),e("startTime")]),to=l([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),C("swapBaseInAmount"),C("swapQuoteOutAmount"),e("swapBase2QuoteFee"),C("swapQuoteInAmount"),C("swapBaseOutAmount"),e("swapQuote2BaseFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("withdrawQueue"),o("lpVault"),o("owner"),e("lpReserve"),m(e(),3,"padding")]),nP=l([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),C("swapBaseInAmount"),C("swapQuoteOutAmount"),C("swapQuoteInAmount"),C("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("modelDataAccount"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("owner"),m(e(),64,"padding")]),xr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Cr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Rr=l([e("fee")]);var TP=E("Raydium_liquidity_instruction");var Lr=5e4,Or=l([e("x"),e("y"),e("price")]),SP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),m(Or,Lr,"DataElement")]);import{PublicKey as VP}from"@solana/web3.js";import DP from"decimal.js";import{TOKEN_PROGRAM_ID as qP}from"@solana/spl-token";import{PublicKey as RP}from"@solana/web3.js";var NP=E("Raydium_liquidity_serum");import yw from"bn.js";import gw from"decimal.js";import{TOKEN_PROGRAM_ID as yA}from"@solana/spl-token";import{PublicKey as gA}from"@solana/web3.js";import AA from"bn.js";import{SystemProgram as nA,SYSVAR_RENT_PUBKEY as oA,Transaction as iA,TransactionInstruction as rA}from"@solana/web3.js";import{createInitializeAccountInstruction as sA,TOKEN_PROGRAM_ID as uA}from"@solana/spl-token";function Nr(i="accountFlags"){let t=new ct(i);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var Mr=l([M(5),Nr("accountFlags"),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as zk}from"@solana/web3.js";import{AccountLayout as Yk,NATIVE_MINT as Hk,TOKEN_2022_PROGRAM_ID as Qk,TOKEN_PROGRAM_ID as Zk,createAssociatedTokenAccountIdempotentInstruction as $k}from"@solana/spl-token";import Ww from"bn.js";import Wr from"bn.js";var Kw=new Wr(0);import Nw from"bn.js";import qr from"bn.js";var Pt=new qr(1e6);import rT from"bn.js";import sT from"decimal.js";import{PublicKey as sk,TransactionInstruction as uk,Keypair as lk,SystemProgram as mk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as pk,TOKEN_2022_PROGRAM_ID as fk,TOKEN_PROGRAM_ID as yk}from"@solana/spl-token";var Xw=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Yw=Buffer.from("amm_config","utf8"),Hw=Buffer.from("pool","utf8"),Qw=Buffer.from("pool_lp_mint","utf8"),Zw=Buffer.from("pool_vault","utf8"),$w=Buffer.from("observation","utf8"),jw=Buffer.from("permission","utf8"),Jw=Buffer.from("support_mint","utf8"),ek=Buffer.from("creator_fee_share","utf8");var tk=Buffer.from("locked_liquidity","utf8");var Tk=E("Raydium_cpmm"),hk={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132]),collectCreatorFeePermissionless:Buffer.from([202,202,34,83,226,122,145,229])};var zr=l([M(8),c("bump"),re("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),m(e(),14)]),no=l([M(8),o("configId"),o("poolCreator"),o("vaultA"),o("vaultB"),o("mintLp"),o("mintA"),o("mintB"),o("mintProgramA"),o("mintProgramB"),o("observationId"),c("bump"),c("status"),c("lpDecimals"),c("mintDecimalA"),c("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),c("feeOn"),re("enableCreatorFee"),m(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),m(e(),28)]),Sk=l([M(8),o("configId"),m(e(),30)]),Kk=l([M(8),c("bump"),o("creator"),o("ammConfig"),e("shareRate"),m(e(),8)]);import{PublicKey as AK,SystemProgram as wK}from"@solana/web3.js";import{createTransferInstruction as TK,TOKEN_PROGRAM_ID as hK,TOKEN_2022_PROGRAM_ID as IK,createAssociatedTokenAccountIdempotentInstruction as BK,createSyncNativeInstruction as KK,createTransferCheckedInstruction as xK}from"@solana/spl-token";import da from"bn.js";import LK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as yh,TOKEN_2022_PROGRAM_ID as bh,TOKEN_PROGRAM_ID as gh}from"@solana/spl-token";import{SystemProgram as kh,TransactionInstruction as Th}from"@solana/web3.js";import Hr from"bn.js";var eh=Buffer.from("vault_auth_seed","utf8"),th=Buffer.from("global_config","utf8"),nh=Buffer.from("pool_vesting","utf8"),oh=Buffer.from("platform_config","utf8"),ih=Buffer.from("platform_fee_vault_auth_seed","utf8"),rh=Buffer.from("creator_fee_vault_auth_seed","utf8"),ah=Buffer.from("platform_global_access","utf8"),sh=Buffer.from("platform_allow_config","utf8"),uh=Buffer.from("platform_curve_rule","utf8");var Bh={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var Sh=new Hr("18446744073709551615");var Qr=l([e(),e("epoch"),c("curveType"),Y("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),o("mintB"),o("protocolFeeOwner"),o("migrateFeeOwner"),o("migrateToAmmWallet"),o("migrateToCpmmWallet"),m(e(),16)]),Zr=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),$r=l([e(),e("epoch"),c("bump"),c("status"),c("mintDecimalsA"),c("mintDecimalsB"),c("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),Zr.replicate("vestingSchedule"),o("configId"),o("platformId"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),m(c(),54)]),Rh=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),m(e(),8)]),jr=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),Lh=l([e("epoch"),c("index"),o("configId"),jr.replicate("bondingCurveParam"),m(e(),50)]),io=l([e(),e("epoch"),o("platformClaimFeeWallet"),o("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),m(c(),64,"name"),m(c(),256,"web"),m(c(),256,"img"),o("cpConfigId"),e("creatorFeeRate"),o("transferFeeExtensionAuth"),o("platformVestingWallet"),e("platformVestingScale"),o("platformCpCreator"),c("restrictGlobalConfig"),c("restrictCurveParam"),o("curveRuleManager"),m(c(),78)]),Jr=l([c("field"),c("op"),C("value")]),ea=l([Y("groupId"),e("epoch"),Mt(Jr,"constraints")]),ta=l([e(),c("bump"),c("version"),o("platformId"),o("configId"),e("epoch"),m(e(),8),Mt(ea,"groups")]);import{TOKEN_2022_PROGRAM_ID as Mh,TOKEN_PROGRAM_ID as Fh}from"@solana/spl-token";import na from"bn.js";var Yh=new na(1e6);import $h from"bn.js";import Jh from"decimal.js";import LI from"bn.js";import NI from"decimal.js";import rI from"bn.js";import sI from"decimal.js";import gI from"bn.js";import AI from"decimal.js";import so from"bn.js";import Xt from"decimal.js";var kt=class{static _multipler(t){return new Xt(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new Xt(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(r))}static getPriceX64({price:t,decimalA:n,decimalB:r}){let u=t.mul(this._multipler(r)).div(this._multipler(n));return new so(u.mul(this._Q64).toFixed(0))}};kt._Q64=new Xt(new so(1).shln(64).toString());import{NATIVE_MINT as HB,TOKEN_2022_PROGRAM_ID as QB,TOKEN_PROGRAM_ID as ZB,createAssociatedTokenAccountIdempotentInstruction as jB,createSyncNativeInstruction as JB,getTransferFeeConfig as eS,unpackMint as tS}from"@solana/spl-token";import H from"bn.js";import{PublicKey as ca,SystemProgram as iS}from"@solana/web3.js";import mS from"decimal.js";var dS={initPriceX64:new H("515752397214619"),supply:new H(1e15),totalSellA:new H(7931e11),totalFundRaisingB:new H(85e9),totalFundRaisingBUSD:new H(125e8),totalLockedAmount:new H("0"),cliffPeriod:new H("0"),unlockPeriod:new H("0"),decimals:6,virtualA:new H("1073471847374405"),virtualB:new H("30050573465"),realA:new H(0),realB:new H(0),protocolFee:new H(0),platformId:new ca("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new H(0),cliffPeriod:new H(0),unlockPeriod:new H(0),startTime:new H(0),totalAllocatedShare:new H(0)}},pS=new H(1e4);var la={[Fn.toBase58()]:3};var ma=l([M(5),M(8),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as _S}from"@solana/web3.js";var qS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as $S,TOKEN_2022_PROGRAM_ID as jS,TOKEN_PROGRAM_ID as JS}from"@solana/spl-token";import{PublicKey as tK,SystemProgram as nK,TransactionInstruction as oK}from"@solana/web3.js";import rK from"bn.js";var sx=new da(0);import{PublicKey as pa,Transaction as Yt,TransactionInstruction as fa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ya}from"@solana/spl-token";import uo from"bn.js";var ee=class extends oe{static getPdaPoolId(t,n){return me([ee.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,u){return me([ee.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new uo(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:u,chainTime:d}){if(r.length===0)return[];let y=r.map(f=>ee.getPdaPoolId(n,f).publicKey),b=[];for(let f=0;f<ee.VERSION_PROJECT.length;f++)b.push(...y.map(O=>ee.getPdaOwnerId(n,O,u,f).publicKey));let P=await ye(t,[...y,...b]),p=[];for(let f=0;f<P.length;f++){let O=Math.floor(f/r.length),R=f%r.length,K=y[R],F=b[f],A=P[R],h=P[r.length+f];if(!(A&&h)||A.data.length!==ee.POOL_LAYOUT.span||h.data.length!==ee.OWNER_LAYOUT.span)continue;let S=ee.POOL_LAYOUT.decode(A.data),B=ee.OWNER_LAYOUT.decode(h.data),v=S.openTime.toNumber(),_=S.endTime.toNumber(),g=B.tokenInfo.map(x=>x.debtAmount.gt(new uo(0))).filter(x=>!x).length!==3,w=d>v&&d<_&&S.status===1,k=g&&w;p.push({programId:n,poolId:K,ammId:S.ammId,ownerAccountId:F,snapshotLpAmount:B.lpAmount,project:ee.VERSION_PROJECT[O],openTime:v,endTime:_,canClaim:k,canClaimErrorType:g?w?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:S.tokenInfo.map((x,L)=>({mintAddress:x.mintAddress,mintVault:x.mintVault,mintDecimals:x.mintDecimals,perLpLoss:x.perLpLoss,debtAmount:B.tokenInfo[L].debtAmount.add(B.tokenInfo[L].claimedAmount)}))})}return p}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),d=n.wallet||this.scope.ownerPubKey,y=[];for(let p of t.tokenInfo){let{account:f,instructionParams:O}=await this.scope.account.getOrCreateTokenAccount({mint:p.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:p.mintAddress.equals(J.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!p.mintAddress.equals(J.WSOL.mint),associatedOnly:p.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});O&&u.addInstruction(O),y.push(f)}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:d,ownerPda:t.ownerAccountId,claimAddress:y}})]});let{transaction:b,signers:P}=u.build();return[{transaction:b,signer:P}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let u=this.createTxBuilder(r),d=n.wallet||this.scope.ownerPubKey,y={};for(let f of t){let O=[];for(let R of f.tokenInfo){let{account:K,instructionParams:F}=await this.scope.account.getOrCreateTokenAccount({mint:R.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:R.mintAddress.equals(J.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!R.mintAddress.equals(J.WSOL.mint),associatedOnly:R.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});F&&u.addInstruction(F),K&&(y[R.mintAddress.toString()]=K,O.push(K))}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:f.programId,poolInfo:f,ownerInfo:{wallet:d,ownerPda:f.ownerAccountId,claimAddress:O}})]})}let{transaction:b,signers:P}=u.build(),p=u.allInstructions;return Ft(p,[d,...P.map(f=>f.publicKey)])?[{transaction:b,signer:P}]:[{transaction:new Yt().add(...p.slice(0,u.AllTxData.instructions.length-1)),signer:P},{transaction:new Yt().add(...p.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new Yt().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let u=l([]),d=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(P=>({pubkey:P,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:P})=>({pubkey:P,isSigner:!1,isWritable:!0})),{pubkey:ya,isSigner:!1,isWritable:!1}],y=Buffer.alloc(u.span);u.encode({},y);let b=Buffer.from([10,66,208,184,161,6,191,98,...y]);return new fa({keys:d,programId:t,data:b})}},se=ee;se.CLAIMED_NUM=3,se.POOL_LAYOUT=l([M(8),c("bump"),c("status"),e("openTime"),e("endTime"),o("ammId"),m(l([c("mintDecimals"),o("mintAddress"),o("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),m(e(),10,"padding")]),se.OWNER_LAYOUT=l([M(8),c("bump"),c("version"),o("poolId"),o("owner"),e("lpAmount"),m(l([o("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),m(e(),4,"padding")]),se.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new pa(t)),se.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},se.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];var WC=new he(2),qC=new he(3),UC=new he(5),Bo=new he(10),GC=new he(100),zC=new he(1e3),XC=new he(1e4);function Ht(i,t=1,n=[]){let r=[...i];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import{MINT_SIZE as kR,TOKEN_PROGRAM_ID as TR,getTransferFeeConfig as hR,unpackMint as IR}from"@solana/spl-token";var Qt=E("Raydium_accountInfo_util");async function ye(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=I({batchRequest:!1},n),y=Ht(t,d),b=new Array(y.length).fill([]);if(r){let P=y.map(O=>{let R=i._buildArgs([O.map(K=>K.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:R}}),p=Ht(P,10);b=(await(await Promise.all(p.map(async O=>await i._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&Qt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(R=>{if(R){let{data:K,executable:F,lamports:A,owner:h,rentEpoch:S}=R;return K.length!==2&&K[1]!=="base64"&&Qt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(K[0],"base64"),executable:F,lamports:A,owner:new ba(h),rentEpoch:S}}return null})))}else try{b=await Promise.all(y.map(P=>i.getMultipleAccountsInfo(P,u)))}catch(P){P instanceof Error&&Qt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.message}`)}return b.flat()}async function $t({connection:i,address:t,cluster:n="mainnet"}){let r=await ye(i,[...new Set(t.map(d=>d.toString()))].map(d=>new Zt(d))),u={};for(let d=0;d<t.length;d++){let y=r[d],b=t[d];if(!y)continue;let P=new _e({key:b,state:_e.deserialize(y.data)});u[b.toString()]=P,n==="devnet"?ve[b.toString()]=P:Fe[b.toString()]=P}return u}var Fe={},jt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Fe[t])return Fe;let n=new Zt(t),r=await i.getAccountInfo(n);return r&&(Fe[t]=new _e({key:n,state:_e.deserialize(r.data)})),Fe},ve={},Jt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(ve[t])return ve;let n=new Zt(t),r=await i.getAccountInfo(n);return r&&(ve[t]=new _e({key:n,state:_e.deserialize(r.data)})),ve};var ht=2e3,It=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.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 r;let t=(await Pa.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=dt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ga.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ve(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:d=[],lookupTableAddress:y=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...y.filter(b=>b!==Ve.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(N(I({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new je;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var f;let{recentBlockHash:d,skipPreflight:y=!0,sendAndConfirm:b,notSendToRpc:P}=u||{},p=d!=null?d:await Ke(this.connection,this.blockhashCommitment);if(n.recentBlockhash=p,this.signers.length&&n.sign(...this.signers),ke([n]),(f=this.owner)!=null&&f.isKeyPair)return{txId:b?await en(this.connection,n,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:y}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let R of O)try{R.sign(...this.signers)}catch{}return{txId:P?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:y}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var p;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),d=n.filter(f=>f.transaction.instructions.length>0),y=[u,...d.map(f=>f.transaction)],b=[this.signers,...d.map(f=>f.signers)],P=[...this.instructionTypes,...d.map(f=>f.instructionTypes).flat()];return(p=this.owner)!=null&&p.signer&&b.forEach(f=>{f.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:y,signers:b,instructionTypes:P,execute:async f=>{var S;let{sequentially:O,onTxUpdate:R,skipTxCount:K=0,recentBlockHash:F,skipPreflight:A=!0}=f||{},h=F!=null?F:await Ke(this.connection,this.blockhashCommitment);if((S=this.owner)!=null&&S.isKeyPair){if(O){let B=[],v=0;for(let _ of y){if(++v,v<=K)continue;let g=await en(this.connection,_,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});B.push(g)}return{txIds:B,signedTxs:y}}return{txIds:await await Promise.all(y.map(async B=>(B.recentBlockhash=h,await this.connection.sendRawTransaction(B.serialize(),{skipPreflight:A})))),signedTxs:y}}if(this.signAllTransactions){let B=y.map((_,g)=>(_.recentBlockhash=h,b[g].length&&_.sign(...b[g]),_));ke(B);let v=await this.signAllTransactions(B);if(O){let _=0,g=[],w=async()=>{if(!v[_])return;let k=await this.connection.sendRawTransaction(v[_].serialize(),{skipPreflight:A});g.push({txId:k,status:"sent",signedTx:v[_]}),R==null||R([...g]),_++;let x=!1,L=null,V=null,ie=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=g.findIndex(j=>j.txId===k);if(W>-1){if(g[W].status==="error"||g[W].status==="success")return;g[W].status=q.err?"error":"success"}R==null||R([...g]),q.err||w()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(x){clearInterval(L);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(x=!0,clearInterval(L),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){x=!0,clearInterval(L),console.error("getTransaction timeout:",W,k)}},ht)),V=this.connection.onSignature(k,q=>{if(x){this.connection.removeSignatureListener(V);return}x=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:g.map(k=>k.txId),signedTxs:v}}else{let _=[];for(let g=0;g<v.length;g+=1){let w=await this.connection.sendRawTransaction(v[g].serialize(),{skipPreflight:A});_.push(w)}return{txIds:_,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var A;let F=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:d}=F,y=ue(F,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),b=I(I({},this.cluster==="devnet"?await Jt(this.connection):await jt(this.connection)),n),P=Array.from(new Set([...r,...this.lookupTableAddress])),p=[];for(let h of P)b[h]===void 0&&p.push(new Ve(h));let f=await $t({connection:this.connection,address:p});for(let[h,S]of Object.entries(f))b[h]=S;let O=u?Ve.default.toBase58():d!=null?d:await Ke(this.connection,this.blockhashCommitment),R=new Je({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(b));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(h=>h.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let K=new et(R);return K.sign(this.signers),{builder:this,transaction:K,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async h=>{var _;let{skipPreflight:S=!0,sendAndConfirm:B,notSendToRpc:v}=h||{};if(ke([K]),(_=this.owner)!=null&&_.isKeyPair){let g=await this.connection.sendTransaction(K,{skipPreflight:S});return B&&await pt(this.connection,g),{txId:g,signedTx:K}}if(this.signAllTransactions){let g=await this.signAllTransactions([K]);if(this.signers.length)for(let w of g)try{w.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(g[0],{skipPreflight:S}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}async buildV0MultiTx(t){var p;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),d=n.filter(f=>f.builder.instructions.length>0),y=[u,...d.map(f=>f.transaction)],b=[this.signers,...d.map(f=>f.signers)],P=[...this.instructionTypes,...d.map(f=>f.instructionTypes).flat()];return(p=this.owner)!=null&&p.signer&&b.forEach(f=>{f.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),y.forEach(async(f,O)=>{f.sign(b[O])}),{builder:this,transactions:y,signers:b,instructionTypes:P,buildProps:r,execute:async f=>{var A;let{sequentially:O,onTxUpdate:R,recentBlockHash:K,skipPreflight:F=!0}=f||{};if(K&&y.forEach(h=>h.message.recentBlockhash=K),ke(y),(A=this.owner)!=null&&A.isKeyPair){if(O){let h=[];for(let S of y){let B=await this.connection.sendTransaction(S,{skipPreflight:F});await pt(this.connection,B),h.push(B)}return{txIds:h,signedTxs:y}}return{txIds:await Promise.all(y.map(async h=>await this.connection.sendTransaction(h,{skipPreflight:F}))),signedTxs:y}}if(this.signAllTransactions){let h=await this.signAllTransactions(y);if(O){let S=0,B=[],v=async()=>{if(!h[S])return;let _=await this.connection.sendTransaction(h[S],{skipPreflight:F});B.push({txId:_,status:"sent",signedTx:h[S]}),R==null||R([...B]),S++;let g=!1,w=null,k=null,x=L=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let V=B.findIndex(ie=>ie.txId===_);if(V>-1){if(B[V].status==="error"||B[V].status==="success")return;B[V].status=L.err?"error":"success"}R==null||R([...B]),L.err||v()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var L;if(g){clearInterval(w);return}try{let V=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});V&&(g=!0,clearInterval(w),x({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",_))}catch(V){g=!0,clearInterval(w),console.error("getTransaction timeout:",V,_)}},ht)),k=this.connection.onSignature(_,L=>{if(g){this.connection.removeSignatureListener(k);return}g=!0,x(L)},"confirmed"),this.connection.getSignatureStatus(_)};return v(),{txIds:[],signedTxs:h}}else{let S=[];for(let B=0;B<h.length;B+=1){let v=await this.connection.sendTransaction(h[B],{skipPreflight:F});S.push(v)}return{txIds:S,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var R;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ue(O,["splitIns","computeBudgetConfig"]),d=r?dt(r):{instructions:[],instructionTypes:[]},y=this.signers.reduce((K,F)=>N(I({},K),{[F.publicKey.toBase58()]:F}),{}),b=[],P=[],p=[],f=0;if(this.allInstructions.forEach(K=>{let F=[...p,K],A=r?[...d.instructions,...F]:F,S=[...new Set(F.map(B=>B.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(B=>new Ve(B));if(K!==n[f]&&p.length<12&&(Xe({instructions:A,payer:this.feePayer,signers:S})||Xe({instructions:F,payer:this.feePayer,signers:S})))p.push(K);else{if(p.length===0)throw Error("item ins too big");f+=K===n[f]?1:0,Xe({instructions:r?[...d.instructions,...p]:[...p],payer:this.feePayer,signers:S})?b.push(new je().add(...d.instructions,...p)):b.push(new je().add(...p)),P.push(Array.from(new Set(p.map(B=>B.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(B=>y[B]).filter(B=>B!==void 0)),p=[K]}}),p.length>0){let F=[...new Set(p.map(A=>A.keys.filter(h=>h.isSigner).map(h=>h.pubkey.toString())).flat()).values()].map(A=>y[A]).filter(A=>A!==void 0);Xe({instructions:r?[...d.instructions,...p]:[...p],payer:this.feePayer,signers:F.map(A=>A.publicKey)})?b.push(new je().add(...d.instructions,...p)):b.push(new je().add(...p)),P.push(F)}return b.forEach(K=>K.feePayer=this.feePayer),(R=this.owner)!=null&&R.signer&&P.forEach(K=>{K.some(F=>F.publicKey.equals(this.owner.publicKey))||K.push(this.owner.signer)}),{builder:this,transactions:b,signers:P,instructionTypes:this.instructionTypes,execute:async K=>{var _;let{sequentially:F,onTxUpdate:A,skipTxCount:h=0,recentBlockHash:S,skipPreflight:B=!0}=K||{},v=S!=null?S:await Ke(this.connection,this.blockhashCommitment);if(b.forEach(async(g,w)=>{g.recentBlockhash=v,P[w].length&&g.sign(...P[w])}),ke(b),(_=this.owner)!=null&&_.isKeyPair){if(F){let g=0,w=[];for(let k of b){if(++g,g<=h){w.push("tx skipped");continue}let x=await en(this.connection,k,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:B});w.push(x)}return{txIds:w,signedTxs:b}}return{txIds:await Promise.all(b.map(async g=>await this.connection.sendRawTransaction(g.serialize(),{skipPreflight:B}))),signedTxs:b}}if(this.signAllTransactions){let g=await this.signAllTransactions(b.slice(h,b.length)),w=[...b.slice(0,h),...g];if(F){let k=0,x=[],L=async()=>{if(!w[k])return;k<h&&(x.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...x]),k++,L());let V=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:B});x.push({txId:V,status:"sent",signedTx:w[k]}),A==null||A([...x]),k++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=x.findIndex(de=>de.txId===V);if(te>-1){if(x[te].status==="error"||x[te].status==="success")return;x[te].status=G.err?"error":"success"}A==null||A([...x]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:1});te&&(ie=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,V)}},ht)),W=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:x.map(V=>V.txId),signedTxs:w}}else{let k=[];for(let x=0;x<w.length;x+=1){let L=await this.connection.sendRawTransaction(w[x].serialize(),{skipPreflight:B});k.push(L)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var _;let v=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:d=[],insCountLimit:y=12}=v,b=ue(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),P=I(I({},this.cluster==="devnet"?await Jt(this.connection):await jt(this.connection)),u),p=Array.from(new Set([...this.lookupTableAddress,...d])),f=[];for(let g of p)P[g]===void 0&&f.push(new Ve(g));let O=await $t({connection:this.connection,address:f});for(let[g,w]of Object.entries(O))P[g]=w;let R=n?dt(n):{instructions:[],instructionTypes:[]},K=await Ke(this.connection,this.blockhashCommitment),F=this.signers.reduce((g,w)=>N(I({},g),{[w.publicKey.toBase58()]:w}),{}),A=[],h=[],S=[],B=0;if(this.allInstructions.forEach(g=>{let w=[...S,g],k=n?[...R.instructions,...w]:w;if(g!==r[B]&&S.length<y&&(Ye({instructions:k,payer:this.feePayer,lookupTableAddressAccount:P})||Ye({instructions:w,payer:this.feePayer,lookupTableAddressAccount:P})))S.push(g);else{if(S.length===0)throw Error("item ins too big");B+=g===r[B]?1:0;let x={};for(let L of[...new Set(p)])P[L]!==void 0&&(x[L]=P[L]);if(n&&Ye({instructions:[...R.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:K})){let L=new Je({payerKey:this.feePayer,recentBlockhash:K,instructions:[...R.instructions,...S]}).compileToV0Message(Object.values(P));A.push(new et(L))}else{let L=new Je({payerKey:this.feePayer,recentBlockhash:K,instructions:[...S]}).compileToV0Message(Object.values(P));A.push(new et(L))}h.push(Array.from(new Set(S.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>F[L]).filter(L=>L!==void 0)),S=[g]}}),S.length>0){let w=[...new Set(S.map(k=>k.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(k=>F[k]).filter(k=>k!==void 0);if(n&&Ye({instructions:[...R.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:K})){let k=new Je({payerKey:this.feePayer,recentBlockhash:K,instructions:[...R.instructions,...S]}).compileToV0Message(Object.values(P));A.push(new et(k))}else{let k=new Je({payerKey:this.feePayer,recentBlockhash:K,instructions:[...S]}).compileToV0Message(Object.values(P));A.push(new et(k))}h.push(w)}return(_=this.owner)!=null&&_.signer&&h.forEach(g=>{g.some(w=>w.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),A.forEach((g,w)=>{g.sign(h[w])}),{builder:this,transactions:A,buildProps:t,signers:h,instructionTypes:this.instructionTypes,execute:async g=>{var ie;let{sequentially:w,onTxUpdate:k,skipTxCount:x=0,recentBlockHash:L,skipPreflight:V=!0}=g||{};if(A.map(async(q,W)=>{h[W].length&&q.sign(h[W]),L&&(q.message.recentBlockhash=L)}),ke(A),(ie=this.owner)!=null&&ie.isKeyPair){if(w){let q=0,W=[];for(let j of A){if(++q,q<=x){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:V});await pt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(x,A.length)),W=[...A.slice(0,x),...q];if(w){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<x){G.push({txId:"",status:"success",signedTx:W[j]}),k==null||k([...G]),j++,te();return}let de=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:de,status:"sent",signedTx:W[j]}),k==null||k([...G]),j++;let Ee=!1,Ie=null,tt=null,rn=Pe=>{Ie!==null&&clearInterval(Ie),tt!==null&&this.connection.removeSignatureListener(tt);let pe=G.findIndex(lo=>lo.txId===de);if(pe>-1){if(G[pe].status==="error"||G[pe].status==="success")return;G[pe].status=Pe.err?"error":"success"}k==null||k([...G]),Pe.err||te()};this.loopMultiTxStatus&&(Ie=setInterval(async()=>{var Pe;if(Ee){clearInterval(Ie);return}try{let pe=await this.connection.getTransaction(de,{commitment:"confirmed",maxSupportedTransactionVersion:1});pe&&(Ee=!0,clearInterval(Ie),rn({err:((Pe=pe.meta)==null?void 0:Pe.err)||null}),console.log("tx status from getTransaction:",de))}catch(pe){Ee=!0,clearInterval(Ie),console.error("getTransaction timeout:",pe,de)}},ht)),tt=this.connection.onSignature(de,Pe=>{if(Ee){this.connection.removeSignatureListener(tt);return}Ee=!0,rn(Pe)},"confirmed"),this.connection.getSignatureStatus(de)};return te(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:V});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:b||{}}}};var tn=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new It({connection:this.scope.connection,feePayer:t||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(...t){this.logger.debug(tn(t))}logInfo(...t){this.logger.info(tn(t))}logAndCreateError(...t){let n=tn(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var Tt=class extends oe{constructor(n){super(n);this._tokenList=[];this._tokenMap=new Map;this._blackTokenMap=new Set;this._mintGroup={official:new Set,jup:new Set,extra:new Set};this._whiteMap=new Set;this._extraTokenList=[]}async load(n){this.checkDisabled();let{forceUpdate:r=!1,type:u="strict"}=n||{},{mintList:d,blacklist:y,whiteList:b}=await this.scope.fetchV3TokenList(r),P=await this.scope.fetchJupTokenList(r);this._tokenList=[],this._tokenMap=new Map,this._blackTokenMap=new Set(y),this._mintGroup={official:new Set,jup:new Set,extra:new Set},this._whiteMap=new Set(b),this._tokenMap.set(be.address,be),this._mintGroup.official.add(be.address),d.forEach(p=>{var f;this._blackTokenMap.has(p.address)||(this._tokenMap.set(p.address,N(I({},p),{type:"raydium",priority:2,programId:(f=p.programId)!=null?f:p.tags.includes("token-2022")?nn.toBase58():on.toBase58()})),this._mintGroup.official.add(p.address))}),P.forEach(p=>{var f;this._blackTokenMap.has(p.address)||this._tokenMap.has(p.address)||(this._tokenMap.set(p.address,N(I({},p),{type:"jupiter",priority:1,programId:(f=p.programId)!=null?f:p.tags.includes("token-2022")?nn.toBase58():on.toBase58(),tags:p.freezeAuthority?[...p.tags||[],"hasFreeze"]:p.tags})),this._mintGroup.jup.add(p.address))}),this._extraTokenList.forEach(p=>{this._blackTokenMap.has(p.address)||this._tokenMap.has(p.address)||(this._tokenMap.set(p.address,N(I({},p),{type:"extra",priority:1,programId:p.programId||p.tags.includes("token-2022")?nn.toBase58():on.toBase58()})),this._mintGroup.extra.add(p.address))}),this._tokenList=Array.from(this._tokenMap).map(p=>p[1])}get tokenList(){return this._tokenList}get tokenMap(){return this._tokenMap}get blackTokenMap(){return this._blackTokenMap}get mintGroup(){return this._mintGroup}get whiteListMap(){return this._whiteMap}async getTokenInfo(n){if(!n)throw new Error("please input mint");let r=n.toString(),u=this._tokenMap.get(r);if(u)return u;if(r.toLocaleUpperCase()==="SOL")return be;let d=(await this.scope.api.getTokenInfo([r]))[0];if(d)return this._mintGroup.extra.add(r),this._tokenMap.set(r,N(I({},d),{priority:2})),d;let y=await this.scope.connection.getAccountInfo(new co(r));if(!y)throw new Error(`mint address not found: ${r}`);let b=wa.decode(y.data),P=r.toString().substring(0,6),p=Aa(ka(new co(n),y,y.owner)),f={chainId:101,address:r,programId:y.owner.toBase58(),logoURI:"",symbol:P,name:P,decimals:b.decimals,tags:[],extensions:p?{feeConfig:ft(p)}:{},priority:0,type:"unknown"};return this._mintGroup.extra.add(r),this._tokenMap.set(r,f),f}};export{Tt as default};
//# sourceMappingURL=token.mjs.map