@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 75.8 kB
JavaScript
var po=Object.defineProperty,fo=Object.defineProperties;var yo=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var an=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var rn=(i,t,n)=>t in i?po(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,B=(i,t)=>{for(var n in t||(t={}))an.call(t,n)&&rn(i,n,t[n]);if(nt)for(var n of nt(t))sn.call(t,n)&&rn(i,n,t[n]);return i},N=(i,t)=>fo(i,yo(t));var ue=(i,t)=>{var n={};for(var r in i)an.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&&sn.call(i,r)&&(n[r]=i[r]);return n};import{PublicKey as lo}from"@solana/web3.js";import{getTransferFeeConfig as ba,MintLayout as ga,TOKEN_2022_PROGRAM_ID as tn,TOKEN_PROGRAM_ID as nn,unpackMint as Pa}from"@solana/spl-token";import{get as un,set as bo}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}},cn={},go={};function E(i){let t=un(cn,i);if(!t){let n=un(go,i);t=new Bt({name:i,logLevel:n}),bo(cn,i,t)}return t}import{PublicKey as _e,sendAndConfirmTransaction as Jt,SystemProgram as fa,Transaction as $e,TransactionMessage as Je,VersionedTransaction as et}from"@solana/web3.js";import ya from"axios";import{PublicKey as Zt,AddressLookupTableAccount as Ve}from"@solana/web3.js";import{PublicKey as pa}from"@solana/web3.js";import he from"bn.js";import sC from"decimal.js";import Bo from"big.js";import _a from"bn.js";import Po from"toformat";var Ao=Po,De=Ao;import it from"big.js";import ko from"bn.js";import To from"decimal.js-light";import We from"bn.js";var ln=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>=ln||i<=-ln)&&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(To),ho={[0]:qe.ROUND_DOWN,[1]:qe.ROUND_HALF_UP,[2]:qe.ROUND_UP},Io={[0]:it.roundDown,[1]:it.roundHalfUp,[2]:it.roundUp},U=class{constructor(t,n=new ko(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:ho[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=Io[r]||1,new St(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Ya=E("Raydium_amount"),Qa=De(Bo);import{PublicKey as Ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mn}from"@solana/spl-token";var be={chainId:101,address:Ko.default.toBase58(),programId:mn.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:mn.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 dn,SYSVAR_RENT_PUBKEY as xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Co}from"@solana/spl-token";function Be({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Ro=[Be({pubkey:Co,isWritable:!1}),Be({pubkey:dn.programId,isWritable:!1}),Be({pubkey:xo,isWritable:!1})];function pn({publicKey:i,transformSol:t}){let n=fn(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 fn(i){try{return new z(i)}catch{return i}}var Kt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ue=new z("SysvarRent111111111111111111111111111111111"),ns=new z("SysvarC1ock11111111111111111111111111111111"),rt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Lo=new z("Sysvar1nstructions1111111111111111111111111"),Oo=dn.programId,os=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),is=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),rs=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),as=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ss=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),us=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),cs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ls=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ms=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ds=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ps=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),fe=new z("So11111111111111111111111111111111111111112"),Ae=z.default;var Ct=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!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=m?xt.default:pn({publicKey:t}),this.isToken2022=y}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ct;J.WSOL=new Ct(N(B({},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 No from"bn.js";var Bs=new U(new No(100));var Ls=E("Raydium_price");import{merge as cx}from"lodash";import Es from"axios";var yn={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"},Mo=N(B({},yn),{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 uu=E("Raydium_Api");import{PublicKey as jc,SystemProgram as $c}from"@solana/web3.js";import{AccountLayout as ol,createAssociatedTokenAccountIdempotentInstruction as il,TOKEN_PROGRAM_ID as rl,TOKEN_2022_PROGRAM_ID as al}from"@solana/spl-token";import{PublicKey as xc,SystemProgram as Rc}from"@solana/web3.js";import Nc from"bn.js";import{createCloseAccountInstruction as Vc,createInitializeAccountInstruction as _c,createTransferInstruction as Ec,TOKEN_PROGRAM_ID as Dc}from"@solana/spl-token";var Z={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 yc,PublicKey as bc}from"@solana/web3.js";import Ac from"bn.js";import{TOKEN_PROGRAM_ID as Tc}from"@solana/spl-token";import{PublicKey as Xo}from"@solana/web3.js";import wn,{isBN as kn}from"bn.js";import{bits as Fo,BitStructure as wu,blob as vo,Blob as ku,cstr as Tu,f32 as hu,f32be as Iu,f64 as Bu,f64be as Su,greedy as Ku,Layout as Vo,ns64 as xu,ns64be as Cu,nu64 as Ru,nu64be as Lu,offset as _o,s16 as Ou,s16be as Nu,s24 as Mu,s24be as Fu,s32 as Eo,s32be as vu,s40 as Vu,s40be as _u,s48 as Eu,s48be as Du,s8 as Wu,seq as Do,struct as qu,Structure as Wo,u16 as qo,u16be as Uu,u24 as Gu,u24be as zu,u32 as Uo,u32be as Xu,u40 as Yu,u40be as Qu,u48 as Zu,u48be as Hu,u8 as Go,UInt as zo,union as ju,Union as $u,unionLayoutDiscriminator as Ju,utf8 as ec}from"@solana/buffer-layout";var st=Vo,bn=Wo;var Lt=zo;var gn=Go,Y=qo;var ut=Uo;var ae=Eo;var Pn=Do;var M=vo;var Ot=Fo,An=_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 wn(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 wn(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),m=this._upper.decode(n,r+this._lower.span);return B(B({},u),m)}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 L(i){return new we(16,!1,i)}function Tn(i){return new we(1,!0,i)}function Se(i){return new we(8,!0,i)}function hn(i){return new we(16,!0,i)}var ze=class extends st{constructor(n,r,u,m){super(n.span,m);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 Xo(t),t=>t.toBuffer(),i)}function re(i){return new ze(gn(),Yo,Qo,i)}function Yo(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Qo(i){return i?1:0}function In(i,t){let n=ut("length"),r=l([n,d(i,An(n,-n.span),"values")]);return new ze(r,({values:u})=>u,u=>({values:u}),t)}var Nt=class extends bn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Nt(i,t,n)}function d(i,t,n){let r,u=typeof t=="number"?t:kn(t)?t.toNumber():new Proxy(t,{get(m,y){if(!r){let b=Reflect.get(m,"count");r=kn(b)?b.toNumber():b,Reflect.set(m,"count",r)}return Reflect.get(m,y)},set(m,y,b){return y==="count"&&(r=b),Reflect.set(m,y,b)}});return Pn(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 hl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Bl}from"@solana/spl-token";import{ComputeBudgetProgram as Sn,Keypair as xn,PublicKey as Ho,Transaction as Cn,TransactionMessage as jo,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(Z.SetComputeUnitPrice)),i.units&&(t.push(Sn.setComputeUnitLimit({units:i.units})),n.push(Z.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,m=>{if(clearTimeout(u),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function Mt(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]=Ho.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Xe({instructions:i,payer:t,signers:n}){return Mt(i,[t,...n])}function Ye({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=xn.generate().publicKey.toString()}){let m=new jo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Rn(m).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),ei=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(ei(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"),Ft=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Cl=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ti=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Fn=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),vn=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Rl=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ni=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Vn=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),oi=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ii=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),_n=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ll=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ri=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),vt=new T("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ai=new T("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ol=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),si=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ui=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ci=new T("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Nl=new T("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ml=new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Fl=new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),vl=new T("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Vl=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 Wf,TOKEN_2022_PROGRAM_ID as qf,TOKEN_PROGRAM_ID as Uf}from"@solana/spl-token";import{PublicKey as zf}from"@solana/web3.js";import Yf from"bn.js";import Zf from"decimal.js";import{TOKEN_PROGRAM_ID as jl}from"@solana/spl-token";import{PublicKey as tm}from"@solana/web3.js";var li=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);var ft=i=>i?N(B({},i),{transferFeeConfigAuthority:i.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:i.withdrawWithheldAuthority.toBase58(),withheldAmount:i.withheldAmount.toString(),olderTransferFee:N(B({},i.olderTransferFee),{epoch:i.olderTransferFee.epoch.toString(),maximumFee:i.olderTransferFee.maximumFee.toString()}),newerTransferFee:N(B({},i.newerTransferFee),{epoch:i.newerTransferFee.epoch.toString(),maximumFee:i.newerTransferFee.maximumFee.toString()})}):void 0;import{ASSOCIATED_TOKEN_PROGRAM_ID as cf,TOKEN_2022_PROGRAM_ID as lf,TOKEN_PROGRAM_ID as mf}from"@solana/spl-token";import{Keypair as ff,PublicKey as yf,SystemProgram as gf,TransactionInstruction as Pf}from"@solana/web3.js";import wf from"bn.js";import D from"bn.js";var Ce=new D(1).shln(64);var mi=new D(1).shln(128),Vt=new D(1).shln(64).subn(1),di=new D(1).shln(128).subn(1);var Re=new D("4295048016"),Le=new D("79226673521066979257578248091"),pi=new D("59543866431248"),fi=new D("184467440737095516"),yi=new D("15793534762490258745");var _t=60,pm=new D("18446743708227953217"),bi=[{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 Qe=3,En=100;var Dn=10,Wn=100,yt=14;var H=new D(0),Oe=new D(1),fm=new D(-1);var ym=new D("18446744073700000000");var gi=l([M(8),c("bump"),Y("index"),o("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Y("tickSpacing"),X("fundFeeRate"),d(X(),1),o("fundOwner"),d(e(),3)]),Pi=l([X("blockTimestamp"),Se("tickCumulative"),d(e(),4)]),qn=l([M(8),re("initialized"),e("recentEpoch"),Y("observationIndex"),o("poolId"),d(Pi,En,"observations"),d(e(),4)]),Ai=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),wi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),Et=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"),L("liquidity"),L("sqrtPriceX64"),ae("tickCurrent"),X(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(L(),4),c("status"),c("feeOn"),M(6),d(wi,Qe,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ai.replicate("dynamicFeeInfo"),d(e(),46)]),ki=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),Ti=l([M(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(ki,Qe,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Am=l([M(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(L(),Qe,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),hi=l([ae("tick"),hn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),d(L(),Qe,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),d(X(),3)]),Un=l([M(8),o("poolId"),ae("startTickIndex"),d(hi,_t,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Ii=l([M(8),c("bump"),d(o(),Dn,"operationOwners"),d(o(),Wn,"whitelistMints")]),Bi=l([M(8),o("poolId"),o("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),L("unfilledRatioX64"),d(e(),4)]),Gn=l([M(8),o("poolId"),M(8*8*yt,"positiveTickArrayBitmap"),M(8*8*yt,"negativeTickArrayBitmap")]),wm=l([M(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),d(e(),8)]),Si=l([M(8),o("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),km=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),d(e(),8)]),Ki=l([M(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),d(e(),8)]);import Im from"bn.js";var Fm=Buffer.from("amm_config","utf8"),Ci=Buffer.from("pool","utf8"),Ri=Buffer.from("pool_vault","utf8"),vm=Buffer.from("pool_reward_vault","utf8"),Vm=Buffer.from("position","utf8"),_m=Buffer.from("tick_array","utf8"),Em=Buffer.from("operation","utf8"),Dm=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Wm=Buffer.from("observation","utf8"),qm=Buffer.from("support_mint","utf8"),Um=Buffer.from("dynamic_fee_config","utf8"),Gm=Buffer.from("permission","utf8");var zm=Buffer.from("locked_position","utf8");import{sha256 as zi}from"js-sha256";import Li from"bn.js";import Zm from"decimal.js";var jm=new Li(1).shln(256).subn(1);import yd from"bn.js";import id from"bn.js";import ad from"decimal.js";import wd from"bn.js";import Td from"decimal.js";import{PublicKey as up}from"@solana/web3.js";import lp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Pp,TOKEN_PROGRAM_ID as Ap}from"@solana/spl-token";import hp from"decimal.js";import jd from"bn.js";import _d from"bn.js";import Mp from"bn.js";function j(i){let t=`global:${i}`;return Buffer.from(zi.digest(t)).slice(0,8)}qn.span;var xf=E("Raydium_Clmm"),Cf={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")};import{PublicKey as Ut}from"@solana/web3.js";var Zi=l([c("instruction")]),Hi=l([c("instruction")]),ji=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),L("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),d(e(),15,"padding")]),$i=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),L("perShareReward"),e("lastSlot"),e("perSlotReward")]),Ji=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),L("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),M(7),e("totalRewardB"),L("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),er=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),L("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),d(ji,5,"rewardInfos"),o("creator"),o(),d(e(),32,"padding")]),tr=new Proxy($i,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return N(B({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(i,t,n)}}),nr=new Proxy(Ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return N(B({},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)}}),Hn=new Proxy(er,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return N(B({},u),{version:6,rewardInfos:u.rewardInfos.map(m=>{var y;return N(B({},m),{rewardType:((y=Object.entries(je).find(b=>String(b[1])===m.rewardType.toString()))!=null?y:["Standard SPL"])[0]})})})}:Reflect.get(i,t,n)}}),or=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),ir=l([c("instruction"),e("nonce"),d(or,5,"rewardTimeInfo")]),rr=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),ar=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),xy=l([e("state"),o("id"),o("owner"),e("deposited"),d(e(),1,"rewardDebts")]),jn=l([e("state"),o("id"),o("owner"),e("deposited"),d(L(),1,"rewardDebts"),e(""),e("voteLockedBalance"),d(e(),15)]),Cy=l([e("state"),o("id"),o("owner"),e("deposited"),d(e(),2,"rewardDebts")]),sr=l([e("state"),o("id"),o("owner"),e("deposited"),d(L(),2,"rewardDebts"),d(e(),17)]),ur=l([e(),e("state"),o("id"),o("owner"),e("deposited"),d(L(),5,"rewardDebts"),d(e(),16)]),cr=l([c("instruction"),e("amount")]),lr=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Tn("digitShift"),d(c(),7,"reserved1"),d(e(),7,"reserved2")]),mr=l([M(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),d(c(),32,"reserved1"),d(lr,4,"votingMints"),Se("timeOffset"),c("bump"),d(c(),7,"reserved2"),d(e(),11,"reserved3")]),dr=l([Se("startTime"),Se("endTime"),c("kind"),d(c(),15,"reserved")]),pr=l([d(dr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),c("votingMintConfigIdx"),d(c(),29,"reserved")]),fr=l([M(8),o("voterAuthority"),o("registrar"),d(pr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),d(c(),94,"reserved")]);import{NATIVE_MINT as _y}from"@solana/spl-token";var Ey=E("Raydium_farm_config"),yr=new Ut("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),br=new Ut("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Dy=new Ut("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var je={"Standard SPL":0,"Option tokens":1},$n={[On.toString()]:3,[Nn.toString()]:4,[Mn.toString()]:5,[Ft.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 Qy 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 ZA}from"@solana/spl-token";import Vg from"bn.js";import eo from"bn.js";var Ir=new eo(25),Br=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 Sr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Kr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),tP=l([c("instruction"),c("nonce")]),xr=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"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),e("swapBase2QuoteFee"),L("swapQuoteInAmount"),L("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"),d(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"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),L("swapQuoteInAmount"),L("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"),d(e(),64,"padding")]),Cr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Rr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Lr=l([e("fee")]);var TP=E("Raydium_liquidity_instruction");var Or=5e4,Nr=l([e("x"),e("y"),e("price")]),SP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),d(Nr,Or,"DataElement")]);import{PublicKey as _P}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 Mr(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 Fr=l([M(5),Mr("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 qk}from"@solana/web3.js";import{AccountLayout as Gk,NATIVE_MINT as zk,TOKEN_2022_PROGRAM_ID as Xk,TOKEN_PROGRAM_ID as Yk,createAssociatedTokenAccountIdempotentInstruction as Qk}from"@solana/spl-token";import Ww from"bn.js";import qr from"bn.js";var Kw=new qr(0);import Nw from"bn.js";import Ur from"bn.js";var Pt=new Ur(1e6);import nT from"bn.js";import iT from"decimal.js";import{PublicKey as rk,TransactionInstruction as ak,Keypair as uk,SystemProgram as ck}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as mk,TOKEN_2022_PROGRAM_ID as dk,TOKEN_PROGRAM_ID as pk}from"@solana/spl-token";var Xw=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Yw=Buffer.from("amm_config","utf8"),Qw=Buffer.from("pool","utf8"),Zw=Buffer.from("pool_lp_mint","utf8"),Hw=Buffer.from("pool_vault","utf8"),jw=Buffer.from("observation","utf8"),$w=Buffer.from("permission","utf8"),Jw=Buffer.from("support_mint","utf8");var ek=Buffer.from("locked_liquidity","utf8");var wk=E("Raydium_cpmm"),kk={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 Xr=l([M(8),c("bump"),re("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),d(e(),15)]),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"),d(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),d(e(),28)]),Ik=l([M(8),o("configId"),d(e(),30)]);import{PublicKey as ZS,SystemProgram as HS}from"@solana/web3.js";import{createTransferInstruction as $S,TOKEN_PROGRAM_ID as JS,TOKEN_2022_PROGRAM_ID as eK,createAssociatedTokenAccountIdempotentInstruction as tK,createSyncNativeInstruction as oK,createTransferCheckedInstruction as iK}from"@solana/spl-token";import ca from"bn.js";import sK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as fh,TOKEN_2022_PROGRAM_ID as yh,TOKEN_PROGRAM_ID as bh}from"@solana/spl-token";import{SystemProgram as wh,TransactionInstruction as kh}from"@solana/web3.js";import Jr from"bn.js";var Zr=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"),d(e(),16)]),Hr=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),jr=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"),Hr.replicate("vestingSchedule"),o("configId"),o("platformId"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),d(c(),54)]),ZT=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),d(e(),8)]),io=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),$r=l([e("epoch"),c("index"),o("configId"),io.replicate("bondingCurveParam"),d(e(),50)]),ro=l([e(),e("epoch"),o("platformClaimFeeWallet"),o("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),d(c(),64,"name"),d(c(),256,"web"),d(c(),256,"img"),o("cpConfigId"),e("creatorFeeRate"),o("transferFeeExtensionAuth"),o("platformVestingWallet"),e("platformVestingScale"),o("platformCpCreator"),c("restrictGlobalConfig"),d(c(),107),In($r,"platformCurve")]);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");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]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),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])};var Sh=new Jr("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as Rh,TOKEN_PROGRAM_ID as Lh}from"@solana/spl-token";import Fh from"bn.js";import Vh from"decimal.js";import yI from"bn.js";import gI from"decimal.js";import Uh from"bn.js";import zh from"decimal.js";import tI from"bn.js";import oI from"decimal.js";import uo from"bn.js";import zt from"decimal.js";var kt=class{static _multipler(t){return new zt(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new zt(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 uo(u.mul(this._Q64).toFixed(0))}};kt._Q64=new zt(new uo(1).shln(64).toString());import{NATIVE_MINT as BB,TOKEN_2022_PROGRAM_ID as SB,TOKEN_PROGRAM_ID as KB,createAssociatedTokenAccountIdempotentInstruction as CB,createSyncNativeInstruction as RB,getTransferFeeConfig as LB,unpackMint as OB}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as aa,SystemProgram as FB}from"@solana/web3.js";import qB from"decimal.js";var UB={initPriceX64:new Q("515752397214619"),supply:new Q(1e15),totalSellA:new Q(7931e11),totalFundRaisingB:new Q(85e9),totalFundRaisingBUSD:new Q(125e8),totalLockedAmount:new Q("0"),cliffPeriod:new Q("0"),unlockPeriod:new Q("0"),decimals:6,virtualA:new Q("1073471847374405"),virtualB:new Q("30050573465"),realA:new Q(0),realB:new Q(0),protocolFee:new Q(0),platformId:new aa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},GB=new Q(1e4);var sa={[Fn.toBase58()]:3};var ua=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 pS}from"@solana/web3.js";var PS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as KS,TOKEN_2022_PROGRAM_ID as xS,TOKEN_PROGRAM_ID as CS}from"@solana/spl-token";import{PublicKey as LS,SystemProgram as OS,TransactionInstruction as NS}from"@solana/web3.js";import FS from"bn.js";var VK=new ca(0);import{PublicKey as la,Transaction as Xt,TransactionInstruction as ma}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as da}from"@solana/spl-token";import co 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 co(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:u,chainTime:m}){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),C=f%r.length,K=y[C],F=b[f],A=P[C],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),I=ee.OWNER_LAYOUT.decode(h.data),v=S.openTime.toNumber(),V=S.endTime.toNumber(),g=I.tokenInfo.map(x=>x.debtAmount.gt(new co(0))).filter(x=>!x).length!==3,w=m>v&&m<V&&S.status===1,k=g&&w;p.push({programId:n,poolId:K,ammId:S.ammId,ownerAccountId:F,snapshotLpAmount:I.lpAmount,project:ee.VERSION_PROJECT[O],openTime:v,endTime:V,canClaim:k,canClaimErrorType:g?w?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:S.tokenInfo.map((x,R)=>({mintAddress:x.mintAddress,mintVault:x.mintVault,mintDecimals:x.mintDecimals,perLpLoss:x.perLpLoss,debtAmount:I.tokenInfo[R].debtAmount.add(I.tokenInfo[R].claimedAmount)}))})}return p}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),m=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:m,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:m,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),m=n.wallet||this.scope.ownerPubKey,y={};for(let f of t){let O=[];for(let C of f.tokenInfo){let{account:K,instructionParams:F}=await this.scope.account.getOrCreateTokenAccount({mint:C.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:C.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!C.mintAddress.equals(J.WSOL.mint),associatedOnly:C.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});F&&u.addInstruction(F),K&&(y[C.mintAddress.toString()]=K,O.push(K))}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:f.programId,poolInfo:f,ownerInfo:{wallet:m,ownerPda:f.ownerAccountId,claimAddress:O}})]})}let{transaction:b,signers:P}=u.build(),p=u.allInstructions;return Mt(p,[m,...P.map(f=>f.publicKey)])?[{transaction:b,signer:P}]:[{transaction:new Xt().add(...p.slice(0,u.AllTxData.instructions.length-1)),signer:P},{transaction:new Xt().add(...p.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new Xt().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let u=l([]),m=[{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:da,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 ma({keys:m,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"),d(l([c("mintDecimals"),o("mintAddress"),o("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),d(e(),10,"padding")]),se.OWNER_LAYOUT=l([M(8),c("bump"),c("version"),o("poolId"),o("owner"),e("lpAmount"),d(l([o("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),d(e(),4,"padding")]),se.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new la(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 gC=new he(2),PC=new he(3),AC=new he(5),So=new he(10),wC=new he(100),kC=new he(1e3),TC=new he(1e4);function Yt(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 jC,TOKEN_PROGRAM_ID as $C,getTransferFeeConfig as JC,unpackMint as eR}from"@solana/spl-token";var Qt=E("Raydium_accountInfo_util");async function ye(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=B({batchRequest:!1},n),y=Yt(t,m),b=new Array(y.length).fill([]);if(r){let P=y.map(O=>{let C=i._buildArgs([O.map(K=>K.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),p=Yt(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(C=>{if(C){let{data:K,executable:F,lamports:A,owner:h,rentEpoch:S}=C;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 pa(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 Ht({connection:i,address:t,cluster:n="mainnet"}){let r=await ye(i,[...new Set(t.map(m=>m.toString()))].map(m=>new Zt(m))),u={};for(let m=0;m<t.length;m++){let y=r[m],b=t[m];if(!y)continue;let P=new Ve({key:b,state:Ve.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 Ve({key:n,state:Ve.deserialize(r.data)})),Fe},ve={},$t=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 Ve({key:n,state:Ve.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 ya.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(fa.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new _e(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.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:m=[],lookupTableAddress:y=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...y.filter(b=>b!==_e.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(N(B({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new $e;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:m,skipPreflight:y=!0,sendAndConfirm:b,notSendToRpc:P}=u||{},p=m!=null?m: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 Jt(this.connection,n,this.signers.find(C=>C.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 C of O)try{C.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),m=n.filter(f=>f.transaction.instructions.length>0),y=[u,...m.map(f=>f.transaction)],b=[this.signers,...m.map(f=>f.signers)],P=[...this.instructionTypes,...m.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:C,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 I=[],v=0;for(let V of y){if(++v,v<=K)continue;let g=await Jt(this.connection,V,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});I.push(g)}return{txIds:I,signedTxs:y}}return{txIds:await await Promise.all(y.map(async I=>(I.recentBlockhash=h,await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:A})))),signedTxs:y}}if(this.signAllTransactions){let I=y.map((V,g)=>(V.recentBlockhash=h,b[g].length&&V.sign(...b[g]),V));ke(I);let v=await this.signAllTransactions(I);if(O){let V=0,g=[],w=async()=>{if(!v[V])return;let k=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:A});g.push({txId:k,status:"sent",signedTx:v[V]}),C==null||C([...g]),V++;let x=!1,R=null,_=null,ie=q=>{R!==null&&clearInterval(R),_!==null&&this.connection.removeSignatureListener(_);let W=g.findIndex($=>$.txId===k);if(W>-1){if(g[W].status==="error"||g[W].status==="success")return;g[W].status=q.err?"error":"success"}C==null||C([...g]),q.err||w()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var q;if(x){clearInterval(R);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(x=!0,clearInterval(R),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){x=!0,clearInterval(R),console.error("getTransaction timeout:",W,k)}},ht)),_=this.connection.onSignature(k,q=>{if(x){this.connection.removeSignatureListener(_);return}x=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:g.map(k=>k.txId),signedTxs:v}}else{let V=[];for(let g=0;g<v.length;g+=1){let w=await this.connection.sendRawTransaction(v[g].serialize(),{skipPreflight:A});V.push(w)}return{txIds:V,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:m}=F,y=ue(F,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),b=B(B({},this.cluster==="devnet"?await $t(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 _e(h));let f=await Ht({connection:this.connection,address:p});for(let[h,S]of Object.entries(f))b[h]=S;let O=u?_e.default.toBase58():m!=null?m:await Ke(this.connection,this.blockhashCommitment),C=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(C);return K.sign(this.signers),{builder:this,transaction:K,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async h=>{var V;let{skipPreflight:S=!0,sendAndConfirm:I,notSendToRpc:v}=h||{};if(ke([K]),(V=this.owner)!=null&&V.isKeyPair){let g=await this.connection.sendTransaction(K,{skipPreflight:S});return I&&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),m=n.filter(f=>f.builder.instructions.length>0),y=[u,...m.map(f=>f.transaction)],b=[this.signers,...m.map(f=>f.signers)],P=[...this.instructionTypes,...m.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:C,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 I=await this.connection.sendTransaction(S,{skipPreflight:F});await pt(this.connection,I),h.push(I)}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,I=[],v=async()=>{if(!h[S])return;let V=await this.connection.sendTransaction(h[S],{skipPreflight:F});I.push({txId:V,status:"sent",signedTx:h[S]}),C==null||C([...I]),S++;let g=!1,w=null,k=null,x=R=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let _=I.findIndex(ie=>ie.txId===V);if(_>-1){if(I[_].status==="error"||I[_].status==="success")return;I[_].status=R.err?"error":"success"}C==null||C([...I]),R.err||v()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var R;if(g){clearInterval(w);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(g=!0,clearInterval(w),x({err:((R=_.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){g=!0,clearInterval(w),console.error("getTransaction timeout:",_,V)}},ht)),k=this.connection.onSignature(V,R=>{if(g){this.connection.removeSignatureListener(k);return}g=!0,x(R)},"confirmed"),this.connection.getSignatureStatus(V)};return v(),{txIds:[],signedTxs:h}}else{let S=[];for(let I=0;I<h.length;I+=1){let v=await this.connection.sendTransaction(h[I],{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 C;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ue(O,["splitIns","computeBudgetConfig"]),m=r?dt(r):{instructions:[],instructionTypes:[]},y=this.signers.reduce((K,F)=>N(B({},K),{[F.publicKey.toBase58()]:F}),{}),b=[],P=[],p=[],f=0;if(this.allInstructions.forEach(K=>{let F=[...p,K],A=r?[...m.instructions,...F]:F,S=[...new Set(F.map(I=>I.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(I=>new _e(I));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?[...m.instructions,...p]:[...p],payer:this.feePayer,signers:S})?b.push(new $e().add(...m.instructions,...p)):b.push(new $e().add(...p)),P.push(Array.from(new Set(p.map(I=>I.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(I=>y[I]).filter(I=>I!==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?[...m.instructions,...p]:[...p],payer:this.feePayer,signers:F.map(A=>A.publicKey)})?b.push(new $e().add(...m.instructions,...p)):b.push(new $e().add(...p)),P.push(F)}return b.forEach(K=>K.feePayer=this.feePayer),(C=this.owner)!=null&&C.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 V;let{sequentially:F,onTxUpdate:A,skipTxCount:h=0,recentBlockHash:S,skipPreflight:I=!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),(V=this.owner)!=null&&V.isKeyPair){if(F){let g=0,w=[];for(let k of b){if(++g,g<=h){w.push("tx skipped");continue}let x=await Jt(this.connection,k,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});w.push(x)}return{txIds:w,signedTxs:b}}return{txIds:await Promise.all(b.map(async g=>await this.connection.sendRawTransaction(g.serialize(),{skipPreflight:I}))),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=[],R=async()=>{if(!w[k])return;k<h&&(x.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...x]),k++,R());let _=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:I});x.push({txId:_,status:"sent",signedTx:w[k]}),A==null||A([...x]),k++;let ie=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=x.findIndex(de=>de.txId===_);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||R()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(ie=!0,clearInterval(q),$({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,_)}},ht)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await R(),{txIds:x.map(_=>_.txId),signedTxs:w}}else{let k=[];for(let x=0;x<w.length;x+=1){let R=await this.connection.sendRawTransaction(w[x].serialize(),{skipPreflight:I});k.push(R)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var V;let v=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:y=12}=v,b=ue(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),P=B(B({},this.cluster==="devnet"?await $t(this.connection):await jt(this.connection)),u),p=Array.from(new Set([...this.lookupTableAddress,...m])),f=[];for(let g of p)P[g]===void 0&&f.push(new _e(g));let O=await Ht({connection:this.connection,address:f});for(let[g,w]of Object.entries(O))P[g]=w;let C=n?dt(n):{instructions:[],instructionTypes:[]},K=await Ke(this.connection,this.blockhashCommitment),F=this.signers.reduce((g,w)=>N(B({},g),{[w.publicKey.toBase58()]:w}),{}),A=[],h=[],S=[],I=0;if(this.allInstructions.forEach(g=>{let w=[...S,g],k=n?[...C.instructions,...w]:w;if(g!==r[I]&&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");I+=g===r[I]?1:0;let x={};for(let R of[...new Set(p)])P[R]!==void 0&&(x[R]=P[R]);if(n&&Ye({instructions:[...C.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:K})){let R=new Je({payerKey:this.feePayer,recentBlockhash:K,instructions:[...C.instructions,...S]}).compileToV0Message(Object.values(P));A.push(new et(R))}else{let R=new Je({payerKey:this.feePayer,recentBlockhash:K,instructions:[...S]}).compileToV0Message(Object.values(P));A.push(new et(R))}h.push(Array.from(new Set(S.map(R=>R.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(R=>F[R]).filter(R=>R!==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:[...C.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:K})){let k=new Je({payerKey:this.feePayer,recentBlockhash:K,instructions:[...C.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(V=this.owner)!=null&&V.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:R,skipPreflight:_=!0}=g||{};if(A.map(async(q,W)=>{h[W].length&&q.sign(h[W]),R&&(q.message.recentBlockhash=R)}),ke(A),(ie=this.owner)!=null&&ie.isKeyPair){if(w){let q=0,W=[];for(let $ of A){if(++q,q<=x){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:_});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:_}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(x,A.length)),W=[...A.slice(0,x),...q];if(w){let $=0,G=[],te=async()=>{if(!W[$])return;if($<x){G.push({txId:"",status:"success",signedTx:W[$]}),k==null||k([...G]),$++,te();return}let de=await this.connection.sendTransaction(W[$],{skipPreflight:_});G.push({txId:de,status:"sent",signedTx:W[$]}),k==null||k([...G]),$++;let Ee=!1,Ie=null,tt=null,on=Pe=>{Ie!==null&&clearInterval(Ie),tt!==null&&this.connection.removeSignatureListener(tt);let pe=G.findIndex(mo=>mo.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:0});pe&&(Ee=!0,clearInterval(Ie),on({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,on(Pe)},"confirmed"),this.connection.getSignatureStatus(de)};return te(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:_});$.push(te)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:b||{}}}};var en=(...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(en(t))}logInfo(...t){this.logger.info(en(t))}logAndCreateError(...t){let n=en(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:m,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),m.forEach(p=>{var f;this._blackTokenMap.has(p.address)||(this._tokenMap.set(p.address,N(B({},p),{type:"raydium",priority:2,programId:(f=p.programId)!=null?f:p.tags.includes("token-2022")?tn.toBase58():nn.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(B({},p),{type:"jupiter",priority:1,programId:(f=p.programId)!=null?f:p.tags.includes("token-2022")?tn.toBase58():nn.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(B({},p),{type:"extra",priority:1,programId:p.programId||p.tags.includes("token-2022")?tn.toBase58():nn.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 m=(await this.scope.api.getTokenInfo([r]))[0];if(m)return this._mintGroup.extra.add(r),this._tokenMap.set(r,N(B({},m),{priority:2})),m;let y=await this.scope.connection.getAccountInfo(new lo(r));if(!y)throw new Error(`mint address not found: ${r}`);let b=ga.decode(y.data),P=r.toString().substring(0,6),p=ba(Pa(new lo(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