UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

3 lines 84.6 kB
var No=Object.defineProperty,Mo=Object.defineProperties;var Fo=Object.getOwnPropertyDescriptors;var ct=Object.getOwnPropertySymbols;var An=Object.prototype.hasOwnProperty,wn=Object.prototype.propertyIsEnumerable;var Pn=(o,e,n)=>e in o?No(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,O=(o,e)=>{for(var n in e||(e={}))An.call(e,n)&&Pn(o,n,e[n]);if(ct)for(var n of ct(e))wn.call(e,n)&&Pn(o,n,e[n]);return o},E=(o,e)=>Mo(o,Fo(e));var me=(o,e)=>{var n={};for(var i in o)An.call(o,i)&&e.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&ct)for(var i of ct(o))e.indexOf(i)<0&&wn.call(o,i)&&(n[i]=o[i]);return n};var U={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{TOKEN_PROGRAM_ID as Lo}from"@solana/spl-token";import{PublicKey as at}from"@solana/web3.js";import st from"bn.js";import{Keypair as Ga,PublicKey as za}from"@solana/web3.js";import wL from"bn.js";import{PublicKey as Vo}from"@solana/web3.js";import{get as kn,set as vo}from"lodash";var Nt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Tn={},_o={};function D(o){let e=kn(Tn,o);if(!e){let n=kn(_o,o);e=new Nt({name:o,logLevel:n}),vo(Tn,o,e)}return e}import{MINT_SIZE as rs,TOKEN_PROGRAM_ID as as,getTransferFeeConfig as ss,unpackMint as us}from"@solana/spl-token";var Mt=D("Raydium_accountInfo_util");async function be(o,e,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:c=100}=O({batchRequest:!1},n),m=Ft(e,c),p=new Array(m.length).fill([]);if(i){let y=m.map(g=>{let I=o._buildArgs([g.map(T=>T.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:I}}),k=Ft(y,10);p=(await(await Promise.all(k.map(async g=>await o._rpcBatchRequest(g)))).flat()).map(g=>(g.error&&Mt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.error.message}`),g.result.value.map(I=>{if(I){let{data:T,executable:N,lamports:w,owner:P,rentEpoch:x}=I;return T.length!==2&&T[1]!=="base64"&&Mt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:N,lamports:w,owner:new Vo(P),rentEpoch:x}}return null})))}else try{p=await Promise.all(m.map(y=>o.getMultipleAccountsInfo(y,a)))}catch(y){y instanceof Error&&Mt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return p.flat()}import Ke from"bn.js";import kR from"decimal.js";import Xo from"big.js";import Is from"bn.js";import Eo from"toformat";var Do=Eo,ze=Do;import mt from"big.js";import qo from"bn.js";import Uo from"decimal.js-light";import Xe from"bn.js";var hn=9007199254740991;function ie(o){let e=D("Raydium_parseBigNumberish");if(o instanceof Xe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Xe(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=hn||o<=-hn)&&e.logWithError(`BigNumberish number overflow: ${o}`),new Xe(String(o))):typeof o=="bigint"?new Xe(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new Xe(0))}var lt=D("module/fraction"),vt=ze(mt),Ye=ze(Uo),Go={[0]:Ye.ROUND_DOWN,[1]:Ye.ROUND_HALF_UP,[2]:Ye.ROUND_UP},zo={[0]:mt.roundDown,[1]:mt.roundHalfUp,[2]:mt.roundUp},z=class{constructor(e,n=new qo(1)){this.numerator=ie(e),this.denominator=ie(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new z(this.denominator,this.numerator)}add(e){let n=e instanceof z?e:new z(ie(e));return this.denominator.eq(n.denominator)?new z(this.numerator.add(n.numerator),this.denominator):new z(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof z?e:new z(ie(e));return this.denominator.eq(n.denominator)?new z(this.numerator.sub(n.numerator),this.denominator):new z(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof z?e:new z(ie(e));return new z(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof z?e:new z(ie(e));return new z(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||lt.logWithError(`${e} is not an integer.`),e<=0&&lt.logWithError(`${e} is not positive.`),Ye.set({precision:e+1,rounding:Go[i]});let a=new Ye(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return a.toFormat(a.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},i=1){return Number.isInteger(e)||lt.logWithError(`${e} is not an integer.`),e<0&&lt.logWithError(`${e} is negative.`),vt.DP=e,vt.RM=zo[i]||1,new vt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Ms=D("Raydium_amount"),Fs=ze(Xo);import{PublicKey as Ho}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Bn}from"@solana/spl-token";var dt={chainId:101,address:Ho.default.toBase58(),programId:Bn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Bn.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 Vt}from"@solana/web3.js";import{PublicKey as Y,SystemProgram as In,SYSVAR_RENT_PUBKEY as Qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Zo}from"@solana/spl-token";function Re({pubkey:o,isSigner:e=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:e}}var $o=[Re({pubkey:Zo,isWritable:!1}),Re({pubkey:In.programId,isWritable:!1}),Re({pubkey:Qo,isWritable:!1})];function xn({publicKey:o,transformSol:e}){let n=Sn(o.toString());if(n instanceof Y)return e&&n.equals(he)?ge:n;if(e&&n.toString()===he.toBase58())return ge;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Sn(o){try{return new Y(o)}catch{return o}}var _t=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),He=new Y("SysvarRent111111111111111111111111111111111"),Us=new Y("SysvarC1ock11111111111111111111111111111111"),pt=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),jo=new Y("Sysvar1nstructions1111111111111111111111111"),Jo=In.programId,Gs=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),zs=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Xs=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ys=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Hs=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Qs=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Zs=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),$s=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),js=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Js=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),eu=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new Y("So11111111111111111111111111111111111111112"),he=Y.default;var Et=class{constructor({mint:e,decimals:n,symbol:i,name:a,skipMint:c=!1,isToken2022:m=!1}){if(e===he.toBase58()||e instanceof Vt&&he.equals(e)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Vt(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||e.toString().substring(0,6),this.name=a||e.toString().substring(0,6),this.mint=c?Vt.default:xn({publicKey:e}),this.isToken2022=m}equals(e){return this===e?!0:this.mint.equals(e.mint)}},te=Et;te.WSOL=new Et(E(O({},de),{mint:de.address}));var Dt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},ft=Dt;ft.SOL=new Dt(dt);import ei from"bn.js";var du=new z(new ei(100));var Pu=D("Raydium_price");import{merge as hC}from"lodash";import Su from"axios";var Kn={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"},ti=E(O({},Kn),{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 Zu=D("Raydium_Api");import{PublicKey as em,SystemProgram as tm}from"@solana/web3.js";import{AccountLayout as am,createAssociatedTokenAccountIdempotentInstruction as sm,TOKEN_PROGRAM_ID as um,TOKEN_2022_PROGRAM_ID as cm}from"@solana/spl-token";import{PublicKey as Fe,sendAndConfirmTransaction as Xt,SystemProgram as si,Transaction as $e,TransactionMessage as je,VersionedTransaction as Je}from"@solana/web3.js";import ui from"axios";import{PublicKey as Wt,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function qt({connection:o,address:e,cluster:n="mainnet"}){let i=await be(o,[...new Set(e.map(c=>c.toString()))].map(c=>new Wt(c))),a={};for(let c=0;c<e.length;c++){let m=i[c],p=e[c];if(!m)continue;let y=new Ne({key:p,state:Ne.deserialize(m.data)});a[p.toString()]=y,n==="devnet"?Oe[p.toString()]=y:Le[p.toString()]=y}return a}var Le={},Ut=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[e])return Le;let n=new Wt(e),i=await o.getAccountInfo(n);return i&&(Le[e]=new Ne({key:n,state:Ne.deserialize(i.data)})),Le},Oe={},Gt=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[e])return Oe;let n=new Wt(e),i=await o.getAccountInfo(n);return i&&(Oe[e]=new Ne({key:n,state:Ne.deserialize(i.data)})),Oe};import{ComputeBudgetProgram as Cn,Keypair as Ln,PublicKey as ni,Transaction as On,TransactionMessage as oi,VersionedTransaction as Nn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ii}from"@solana/spl-token";var Rn=D("Raydium_txUtil"),Mn=1644;function yt(o){let e=[],n=[];return o.microLamports&&(e.push(Cn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(U.SetComputeUnitPrice)),o.units&&(e.push(Cn.setComputeUnitLimit({units:o.units})),n.push(U.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Me(o,e){var i,a;let n=e!=null?e:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function bt(o,e){return o.getSignatureStatuses([e]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(a),!c.err){n("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function zt(o,e){o.length<1&&Rn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Rn.logWithError(`no signers provided:, ${e.toString()}`);let n=new On;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Mn}catch{return!1}}function pe(o,e){let[n,i]=ni.findProgramAddressSync(o,e);return{publicKey:n,nonce:i}}function Qe({instructions:o,payer:e,signers:n}){return zt(o,[e,...n])}function Ze({instructions:o,payer:e,lookupTableAddressAccount:n,recentBlockhash:i=Ln.generate().publicKey.toString()}){let c=new oi({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Nn(c).serialize()).toString("base64").length<Mn}catch{return!1}}var ri=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ai=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Nn&&(e=ri(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Be(o){let e=[];return o.forEach(n=>{n instanceof On&&(n.recentBlockhash||(n.recentBlockhash=ii.toBase58()),n.feePayer||(n.feePayer=Ln.generate().publicKey)),e.push(ai(n))}),console.log("simulate tx string:",e),e}var gt=2e3,Pt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let e=(await ui.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=e==null?void 0:e[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:i}=yt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(si.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Fe(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(U.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:n}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:c=[],lookupTableAddress:m=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...m.filter(p=>p!==Fe.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:i}){return e===0?await this.buildV0(E(O({},n||{}),{lookupTableAddress:i})):this.build(n)}build(e){var i;let n=new $e;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.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 a=>{var b;let{recentBlockHash:c,skipPreflight:m=!0,sendAndConfirm:p,notSendToRpc:y}=a||{},k=c!=null?c:await Me(this.connection,this.blockhashCommitment);if(n.recentBlockhash=k,this.signers.length&&n.sign(...this.signers),Be([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Xt(this.connection,n,this.signers.find(I=>I.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:m}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:m}),signedTx:n};if(this.signAllTransactions){let g=await this.signAllTransactions([n]);if(this.signers.length)for(let I of g)try{I.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(g[0].serialize(),{skipPreflight:m}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var k;let{extraPreBuildData:n=[],extInfo:i}=e,{transaction:a}=this.build(i),c=n.filter(b=>b.transaction.instructions.length>0),m=[a,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(k=this.owner)!=null&&k.signer&&p.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:m,signers:p,instructionTypes:y,execute:async b=>{var x;let{sequentially:g,onTxUpdate:I,skipTxCount:T=0,recentBlockHash:N,skipPreflight:w=!0}=b||{},P=N!=null?N:await Me(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(g){let S=[],F=0;for(let v of m){if(++F,F<=T)continue;let A=await Xt(this.connection,v,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});S.push(A)}return{txIds:S,signedTxs:m}}return{txIds:await await Promise.all(m.map(async S=>(S.recentBlockhash=P,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:w})))),signedTxs:m}}if(this.signAllTransactions){let S=m.map((v,A)=>(v.recentBlockhash=P,p[A].length&&v.sign(...p[A]),v));Be(S);let F=await this.signAllTransactions(S);if(g){let v=0,A=[],h=async()=>{if(!F[v])return;let B=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:w});A.push({txId:B,status:"sent",signedTx:F[v]}),I==null||I([...A]),v++;let C=!1,L=null,_=null,oe=G=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let V=A.findIndex(Q=>Q.txId===B);if(V>-1){if(A[V].status==="error"||A[V].status==="success")return;A[V].status=G.err?"error":"success"}I==null||I([...A]),G.err||h()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var G;if(C){clearInterval(L);return}try{let V=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:1});V&&(C=!0,clearInterval(L),oe({err:((G=V.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",B))}catch(V){C=!0,clearInterval(L),console.error("getTransaction timeout:",V,B)}},gt)),_=this.connection.onSignature(B,G=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,oe(G)},"confirmed"),this.connection.getSignatureStatus(B)};return await h(),{txIds:A.map(B=>B.txId),signedTxs:F}}else{let v=[];for(let A=0;A<F.length;A+=1){let h=await this.connection.sendRawTransaction(F[A].serialize(),{skipPreflight:w});v.push(h)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var w;let N=e||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:c}=N,m=me(N,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=O(O({},this.cluster==="devnet"?await Gt(this.connection):await Ut(this.connection)),n),y=Array.from(new Set([...i,...this.lookupTableAddress])),k=[];for(let P of y)p[P]===void 0&&k.push(new Fe(P));let b=await qt({connection:this.connection,address:k});for(let[P,x]of Object.entries(b))p[P]=x;let g=a?Fe.default.toBase58():c!=null?c:await Me(this.connection,this.blockhashCommitment),I=new je({payerKey:this.feePayer,recentBlockhash:g,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((w=this.owner)==null?void 0:w.signer)&&!this.signers.some(P=>P.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let T=new Je(I);return T.sign(this.signers),{builder:this,transaction:T,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async P=>{var v;let{skipPreflight:x=!0,sendAndConfirm:S,notSendToRpc:F}=P||{};if(Be([T]),(v=this.owner)!=null&&v.isKeyPair){let A=await this.connection.sendTransaction(T,{skipPreflight:x});return S&&await bt(this.connection,A),{txId:A,signedTx:T}}if(this.signAllTransactions){let A=await this.signAllTransactions([T]);if(this.signers.length)for(let h of A)try{h.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(A[0],{skipPreflight:x}),signedTx:A[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}async buildV0MultiTx(e){var k;let{extraPreBuildData:n=[],buildProps:i}=e,{transaction:a}=await this.buildV0(i),c=n.filter(b=>b.builder.instructions.length>0),m=[a,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.map(b=>b.instructionTypes).flat()];return(k=this.owner)!=null&&k.signer&&p.forEach(b=>{b.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),m.forEach(async(b,g)=>{b.sign(p[g])}),{builder:this,transactions:m,signers:p,instructionTypes:y,buildProps:i,execute:async b=>{var w;let{sequentially:g,onTxUpdate:I,recentBlockHash:T,skipPreflight:N=!0}=b||{};if(T&&m.forEach(P=>P.message.recentBlockhash=T),Be(m),(w=this.owner)!=null&&w.isKeyPair){if(g){let P=[];for(let x of m){let S=await this.connection.sendTransaction(x,{skipPreflight:N});await bt(this.connection,S),P.push(S)}return{txIds:P,signedTxs:m}}return{txIds:await Promise.all(m.map(async P=>await this.connection.sendTransaction(P,{skipPreflight:N}))),signedTxs:m}}if(this.signAllTransactions){let P=await this.signAllTransactions(m);if(g){let x=0,S=[],F=async()=>{if(!P[x])return;let v=await this.connection.sendTransaction(P[x],{skipPreflight:N});S.push({txId:v,status:"sent",signedTx:P[x]}),I==null||I([...S]),x++;let A=!1,h=null,B=null,C=L=>{h!==null&&clearInterval(h),B!==null&&this.connection.removeSignatureListener(B);let _=S.findIndex(oe=>oe.txId===v);if(_>-1){if(S[_].status==="error"||S[_].status==="success")return;S[_].status=L.err?"error":"success"}I==null||I([...S]),L.err||F()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var L;if(A){clearInterval(h);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(A=!0,clearInterval(h),C({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){A=!0,clearInterval(h),console.error("getTransaction timeout:",_,v)}},gt)),B=this.connection.onSignature(v,L=>{if(A){this.connection.removeSignatureListener(B);return}A=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:P}}else{let x=[];for(let S=0;S<P.length;S+=1){let F=await this.connection.sendTransaction(P[S],{skipPreflight:N});x.push(F)}return{txIds:x,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var I;let g=e||{},{splitIns:n=[],computeBudgetConfig:i}=g,a=me(g,["splitIns","computeBudgetConfig"]),c=i?yt(i):{instructions:[],instructionTypes:[]},m=this.signers.reduce((T,N)=>E(O({},T),{[N.publicKey.toBase58()]:N}),{}),p=[],y=[],k=[],b=0;if(this.allInstructions.forEach(T=>{let N=[...k,T],w=i?[...c.instructions,...N]:N,x=[...new Set(N.map(S=>S.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(S=>new Fe(S));if(T!==n[b]&&k.length<12&&(Qe({instructions:w,payer:this.feePayer,signers:x})||Qe({instructions:N,payer:this.feePayer,signers:x})))k.push(T);else{if(k.length===0)throw Error("item ins too big");b+=T===n[b]?1:0,Qe({instructions:i?[...c.instructions,...k]:[...k],payer:this.feePayer,signers:x})?p.push(new $e().add(...c.instructions,...k)):p.push(new $e().add(...k)),y.push(Array.from(new Set(k.map(S=>S.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(S=>m[S]).filter(S=>S!==void 0)),k=[T]}}),k.length>0){let N=[...new Set(k.map(w=>w.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(w=>m[w]).filter(w=>w!==void 0);Qe({instructions:i?[...c.instructions,...k]:[...k],payer:this.feePayer,signers:N.map(w=>w.publicKey)})?p.push(new $e().add(...c.instructions,...k)):p.push(new $e().add(...k)),y.push(N)}return p.forEach(T=>T.feePayer=this.feePayer),(I=this.owner)!=null&&I.signer&&y.forEach(T=>{T.some(N=>N.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),{builder:this,transactions:p,signers:y,instructionTypes:this.instructionTypes,execute:async T=>{var v;let{sequentially:N,onTxUpdate:w,skipTxCount:P=0,recentBlockHash:x,skipPreflight:S=!0}=T||{},F=x!=null?x:await Me(this.connection,this.blockhashCommitment);if(p.forEach(async(A,h)=>{A.recentBlockhash=F,y[h].length&&A.sign(...y[h])}),Be(p),(v=this.owner)!=null&&v.isKeyPair){if(N){let A=0,h=[];for(let B of p){if(++A,A<=P){h.push("tx skipped");continue}let C=await Xt(this.connection,B,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});h.push(C)}return{txIds:h,signedTxs:p}}return{txIds:await Promise.all(p.map(async A=>await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:S}))),signedTxs:p}}if(this.signAllTransactions){let A=await this.signAllTransactions(p.slice(P,p.length)),h=[...p.slice(0,P),...A];if(N){let B=0,C=[],L=async()=>{if(!h[B])return;B<P&&(C.push({txId:"",status:"success",signedTx:h[B]}),w==null||w([...C]),B++,L());let _=await this.connection.sendRawTransaction(h[B].serialize(),{skipPreflight:S});C.push({txId:_,status:"sent",signedTx:h[B]}),w==null||w([...C]),B++;let oe=!1,G=null,V=null,Q=q=>{G!==null&&clearInterval(G),V!==null&&this.connection.removeSignatureListener(V);let Z=C.findIndex(J=>J.txId===_);if(Z>-1){if(C[Z].status==="error"||C[Z].status==="success")return;C[Z].status=q.err?"error":"success"}w==null||w([...C]),q.err||L()};this.loopMultiTxStatus&&(G=setInterval(async()=>{var q;if(oe){clearInterval(G);return}try{let Z=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});Z&&(oe=!0,clearInterval(G),Q({err:((q=Z.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",_))}catch(Z){oe=!0,clearInterval(G),console.error("getTransaction timeout:",Z,_)}},gt)),V=this.connection.onSignature(_,q=>{if(oe){this.connection.removeSignatureListener(V);return}oe=!0,Q(q)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:C.map(_=>_.txId),signedTxs:h}}else{let B=[];for(let C=0;C<h.length;C+=1){let L=await this.connection.sendRawTransaction(h[C].serialize(),{skipPreflight:S});B.push(L)}return{txIds:B,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var v;let F=e||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:c=[],insCountLimit:m=12}=F,p=me(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=O(O({},this.cluster==="devnet"?await Gt(this.connection):await Ut(this.connection)),a),k=Array.from(new Set([...this.lookupTableAddress,...c])),b=[];for(let A of k)y[A]===void 0&&b.push(new Fe(A));let g=await qt({connection:this.connection,address:b});for(let[A,h]of Object.entries(g))y[A]=h;let I=n?yt(n):{instructions:[],instructionTypes:[]},T=await Me(this.connection,this.blockhashCommitment),N=this.signers.reduce((A,h)=>E(O({},A),{[h.publicKey.toBase58()]:h}),{}),w=[],P=[],x=[],S=0;if(this.allInstructions.forEach(A=>{let h=[...x,A],B=n?[...I.instructions,...h]:h;if(A!==i[S]&&x.length<m&&(Ze({instructions:B,payer:this.feePayer,lookupTableAddressAccount:y})||Ze({instructions:h,payer:this.feePayer,lookupTableAddressAccount:y})))x.push(A);else{if(x.length===0)throw Error("item ins too big");S+=A===i[S]?1:0;let C={};for(let L of[...new Set(k)])y[L]!==void 0&&(C[L]=y[L]);if(n&&Ze({instructions:[...I.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let L=new je({payerKey:this.feePayer,recentBlockhash:T,instructions:[...I.instructions,...x]}).compileToV0Message(Object.values(y));w.push(new Je(L))}else{let L=new je({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x]}).compileToV0Message(Object.values(y));w.push(new Je(L))}P.push(Array.from(new Set(x.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>N[L]).filter(L=>L!==void 0)),x=[A]}}),x.length>0){let h=[...new Set(x.map(B=>B.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(B=>N[B]).filter(B=>B!==void 0);if(n&&Ze({instructions:[...I.instructions,...x],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:T})){let B=new je({payerKey:this.feePayer,recentBlockhash:T,instructions:[...I.instructions,...x]}).compileToV0Message(Object.values(y));w.push(new Je(B))}else{let B=new je({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x]}).compileToV0Message(Object.values(y));w.push(new Je(B))}P.push(h)}return(v=this.owner)!=null&&v.signer&&P.forEach(A=>{A.some(h=>h.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),w.forEach((A,h)=>{A.sign(P[h])}),{builder:this,transactions:w,buildProps:e,signers:P,instructionTypes:this.instructionTypes,execute:async A=>{var oe;let{sequentially:h,onTxUpdate:B,skipTxCount:C=0,recentBlockHash:L,skipPreflight:_=!0}=A||{};if(w.map(async(G,V)=>{P[V].length&&G.sign(P[V]),L&&(G.message.recentBlockhash=L)}),Be(w),(oe=this.owner)!=null&&oe.isKeyPair){if(h){let G=0,V=[];for(let Q of w){if(++G,G<=C){console.log("skip tx: ",G),V.push("tx skipped");continue}let q=await this.connection.sendTransaction(Q,{skipPreflight:_});await bt(this.connection,q),V.push(q)}return{txIds:V,signedTxs:w}}return{txIds:await Promise.all(w.map(async G=>await this.connection.sendTransaction(G,{skipPreflight:_}))),signedTxs:w}}if(this.signAllTransactions){let G=await this.signAllTransactions(w.slice(C,w.length)),V=[...w.slice(0,C),...G];if(h){let Q=0,q=[],Z=async()=>{if(!V[Q])return;if(Q<C){q.push({txId:"",status:"success",signedTx:V[Q]}),B==null||B([...q]),Q++,Z();return}let J=await this.connection.sendTransaction(V[Q],{skipPreflight:_});q.push({txId:J,status:"sent",signedTx:V[Q]}),B==null||B([...q]),Q++;let ke=!1,Ce=null,ut=null,gn=Te=>{Ce!==null&&clearInterval(Ce),ut!==null&&this.connection.removeSignatureListener(ut);let ye=q.findIndex(Oo=>Oo.txId===J);if(ye>-1){if(q[ye].status==="error"||q[ye].status==="success")return;q[ye].status=Te.err?"error":"success"}B==null||B([...q]),Te.err||Z()};this.loopMultiTxStatus&&(Ce=setInterval(async()=>{var Te;if(ke){clearInterval(Ce);return}try{let ye=await this.connection.getTransaction(J,{commitment:"confirmed",maxSupportedTransactionVersion:1});ye&&(ke=!0,clearInterval(Ce),gn({err:((Te=ye.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",J))}catch(ye){ke=!0,clearInterval(Ce),console.error("getTransaction timeout:",ye,J)}},gt)),ut=this.connection.onSignature(J,Te=>{if(ke){this.connection.removeSignatureListener(ut);return}ke=!0,gn(Te)},"confirmed"),this.connection.getSignatureStatus(J)};return Z(),{txIds:[],signedTxs:V}}else{let Q=[];for(let q=0;q<V.length;q+=1){let Z=await this.connection.sendTransaction(V[q],{skipPreflight:_});Q.push(Z)}return{txIds:Q,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var Yt=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),re=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=D(n)}createTxBuilder(e){return this.scope.checkOwner(),new Pt({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Yt(e))}logInfo(...e){this.logger.info(Yt(e))}logAndCreateError(...e){let n=Yt(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Ol,SystemProgram as Ml}from"@solana/web3.js";import _l from"bn.js";import{createCloseAccountInstruction as Wl,createInitializeAccountInstruction as ql,createTransferInstruction as Ul,TOKEN_PROGRAM_ID as Gl}from"@solana/spl-token";import{PublicKey as wi}from"@solana/web3.js";import En,{isBN as Dn}from"bn.js";import{bits as ci,BitStructure as _c,blob as li,Blob as Vc,cstr as Ec,f32 as Dc,f32be as Wc,f64 as qc,f64be as Uc,greedy as Gc,Layout as mi,ns64 as zc,ns64be as Xc,nu64 as Yc,nu64be as Hc,offset as di,s16 as Qc,s16be as Zc,s24 as $c,s24be as jc,s32 as pi,s32be as Jc,s40 as el,s40be as tl,s48 as nl,s48be as ol,s8 as il,seq as fi,struct as rl,Structure as yi,u16 as bi,u16be as al,u24 as sl,u24be as ul,u32 as gi,u32be as cl,u40 as ll,u40be as ml,u48 as dl,u48be as pl,u8 as Pi,UInt as Ai,union as fl,Union as yl,unionLayoutDiscriminator as bl,utf8 as gl}from"@solana/buffer-layout";var At=mi,Fn=yi;var Ht=Ai;var vn=Pi,H=bi;var wt=gi;var ue=pi;var _n=fi;var M=li;var Qt=ci,Vn=di;var xe=class extends At{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new En(this.blob.decode(n,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,i,a=0){return typeof n=="number"&&(n=new En(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},kt=class extends At{constructor(n){super(8,n);this._lower=Qt(wt(),!1),this._upper=Qt(wt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let a=this._lower.decode(n,i),c=this._upper.decode(n,i+this._lower.span);return O(O({},a),c)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function l(o){return new Ht(1,o)}function X(o){return new Ht(4,o)}function t(o){return new xe(8,!1,o)}function R(o){return new xe(16,!1,o)}function Wn(o){return new xe(1,!0,o)}function ve(o){return new xe(8,!0,o)}function qn(o){return new xe(16,!0,o)}var et=class extends At{constructor(n,i,a,c){super(n.span,c);this.layout=n,this.decoder=i,this.encoder=a}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,a){return this.layout.encode(this.encoder(n),i,a)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new et(M(32),e=>new wi(e),e=>e.toBuffer(),o)}function ae(o){return new et(vn(),ki,Ti,o)}function ki(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Ti(o){return o?1:0}function $t(o,e){let n=wt("length"),i=d([n,f(o,Vn(n,-n.span),"values")]);return new et(i,({values:a})=>a,a=>({values:a}),e)}var Zt=class extends Fn{decode(e,n){return super.decode(e,n)}};function d(o,e,n){return new Zt(o,e,n)}function f(o,e,n){let i,a=typeof e=="number"?e:Dn(e)?e.toNumber():new Proxy(e,{get(c,m){if(!i){let p=Reflect.get(c,"count");i=Dn(p)?p.toNumber():p,Reflect.set(c,"count",i)}return Reflect.get(c,m)},set(c,m,p){return m==="count"&&(i=p),Reflect.set(c,m,p)}});return _n(o,a,n)}var Tt=d([r("mint"),r("owner"),t("amount"),X("delegateOption"),r("delegate"),l("state"),X("isNativeOption"),t("isNative"),t("delegatedAmount"),X("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as tP,SystemProgram as nP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as iP}from"@solana/spl-token";import{PublicKey as gm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Am}from"@solana/spl-token";import{PublicKey as K}from"@solana/web3.js";var Gn=new K("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),zn=new K("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Xn=new K("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),jt=new K("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),hm=new K("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Bi=new K("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Yn=new K("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Hn=new K("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Bm=new K("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ii=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Qn=new K("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),xi=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Si=new K("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Zn=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Im=new K("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ki=new K("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Jt=new K("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ci=new K("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),xm=new K("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ri=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Li=new K("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Oi=new K("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Sm=new K("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Km=new K("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Cm=new K("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Rm=new K("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Lm=new K("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Pe={OPEN_BOOK_PROGRAM:new K("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new K("Ray1111111111111111111111111111111111111111"),AMM_V4:new K("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new K("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new K("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new K("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new K("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new K("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new K("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new K("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new K("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new K("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:K.default,Router:new K("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new K("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new K("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new K("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new K("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new K("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new K("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new K("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new K("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new K("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new K("Ray1111111111111111111111111111111111111111")};import fP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as vy,TOKEN_2022_PROGRAM_ID as _y,TOKEN_PROGRAM_ID as Vy}from"@solana/spl-token";import{PublicKey as Dy}from"@solana/web3.js";import qy from"bn.js";import Gy from"decimal.js";import{TOKEN_PROGRAM_ID as zm}from"@solana/spl-token";import{PublicKey as Qm}from"@solana/web3.js";var Ni=d([X("mintAuthorityOption"),r("mintAuthority"),t("supply"),l("decimals"),l("isInitialized"),X("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as oy,TOKEN_2022_PROGRAM_ID as iy,TOKEN_PROGRAM_ID as ry}from"@solana/spl-token";import{Keypair as uy,PublicKey as cy,SystemProgram as my,TransactionInstruction as dy}from"@solana/web3.js";import fy from"bn.js";import W from"bn.js";var Ve=new W(1).shln(64);var Mi=new W(1).shln(128),en=new W(1).shln(64).subn(1),Fi=new W(1).shln(128).subn(1);var Ee=new W("4295048016"),De=new W("79226673521066979257578248091"),vi=new W("59543866431248"),_i=new W("184467440737095516"),Vi=new W("15793534762490258745");var tn=60,sd=new W("18446743708227953217"),Ei=[{bit:0,factor:new W("fffcb933bd6fb800",16)},{bit:1,factor:new W("fff97272373d4000",16)},{bit:2,factor:new W("fff2e50f5f657000",16)},{bit:3,factor:new W("ffe5caca7e10f000",16)},{bit:4,factor:new W("ffcb9843d60f7000",16)},{bit:5,factor:new W("ff973b41fa98e800",16)},{bit:6,factor:new W("ff2ea16466c9b000",16)},{bit:7,factor:new W("fe5dee046a9a3800",16)},{bit:8,factor:new W("fcbe86c7900bb000",16)},{bit:9,factor:new W("f987a7253ac65800",16)},{bit:10,factor:new W("f3392b0822bb6000",16)},{bit:11,factor:new W("e7159475a2caf000",16)},{bit:12,factor:new W("d097f3bdfd2f2000",16)},{bit:13,factor:new W("a9f746462d9f8000",16)},{bit:14,factor:new W("70d869a156f31c00",16)},{bit:15,factor:new W("31be135f97ed3200",16)},{bit:16,factor:new W("9aa508b5b85a500",16)},{bit:17,factor:new W("5d6af8dedc582c",16)},{bit:18,factor:new W("2216e584f5fa",16)}];var tt=3,$n=100;var jn=10,Jn=100,ht=14;var $=new W(0),We=new W(1),ud=new W(-1);var cd=new W("18446744073700000000");var Di=d([M(8),l("bump"),H("index"),r("owner"),X("protocolFeeRate"),X("tradeFeeRate"),H("tickSpacing"),X("fundFeeRate"),f(X(),1),r("fundOwner"),f(t(),3)]),Wi=d([X("blockTimestamp"),ve("tickCumulative"),f(t(),4)]),eo=d([M(8),ae("initialized"),t("recentEpoch"),H("observationIndex"),r("poolId"),f(Wi,$n,"observations"),f(t(),4)]),qi=d([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),t("lastUpdateTimestamp"),f(l(),46)]),Ui=d([l("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),R("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),R("growthGlobalX64")]),nn=d([M(8),l("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),l("mintDecimalsA"),l("mintDecimalsB"),H("tickSpacing"),R("liquidity"),R("sqrtPriceX64"),ue("tickCurrent"),X(),R("feeGrowthGlobalX64A"),R("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),f(R(),4),l("status"),l("feeOn"),M(6),f(Ui,tt,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),qi.replicate("dynamicFeeInfo"),f(t(),46)]),Gi=d([R("growthInsideLastX64"),t("rewardAmountOwed")]),zi=d([M(8),l("bump"),r("nftMint"),r("poolId"),ue("tickLower"),ue("tickUpper"),R("liquidity"),R("feeGrowthInsideLastX64A"),R("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(Gi,tt,"rewardInfos"),t("recentEpoch"),f(t(),7)]),pd=d([M(8),l("bump"),r("poolId"),ue("tickLower"),ue("tickUpper"),R("liquidity"),R("feeGrowthInsideLastX64A"),R("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),f(R(),tt,"rewardGrowthInside"),t("recentEpoch"),f(t(),7)]),Xi=d([ue("tick"),qn("liquidityNet"),R("liquidityGross"),R("feeGrowthOutsideX64A"),R("feeGrowthOutsideX64B"),f(R(),tt,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),R("unfilledRatioX64"),f(X(),3)]),to=d([M(8),r("poolId"),ue("startTickIndex"),f(Xi,tn,"ticks"),l("initializedTickCount"),t("recentEpoch"),f(l(),107)]),Yi=d([M(8),l("bump"),f(r(),jn,"operationOwners"),f(r(),Jn,"whitelistMints")]),Hi=d([M(8),r("poolId"),r("owner"),ue("tick"),ae("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),R("unfilledRatioX64"),f(t(),4)]),no=d([M(8),r("poolId"),M(8*8*ht,"positiveTickArrayBitmap"),M(8*8*ht,"negativeTickArrayBitmap")]),fd=d([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(t(),8)]),Qi=d([M(8),r("wallet"),l("nonceIndex"),t("orderNonce"),f(t(),4)]),yd=d([t(),l("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),f(t(),8)]),Zi=d([M(8),l("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),f(t(),8)]);import Pd from"bn.js";var Cd=Buffer.from("amm_config","utf8"),ji=Buffer.from("pool","utf8"),Ji=Buffer.from("pool_vault","utf8"),Rd=Buffer.from("pool_reward_vault","utf8"),Ld=Buffer.from("position","utf8"),Od=Buffer.from("tick_array","utf8"),Nd=Buffer.from("operation","utf8"),Md=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Fd=Buffer.from("observation","utf8"),vd=Buffer.from("support_mint","utf8"),_d=Buffer.from("dynamic_fee_config","utf8"),Vd=Buffer.from("permission","utf8");var Ed=Buffer.from("locked_position","utf8");import{sha256 as fr}from"js-sha256";import er from"bn.js";import Ud from"decimal.js";var zd=new er(1).shln(256).subn(1);import cp from"bn.js";import jd from"bn.js";import ep from"decimal.js";import fp from"bn.js";import bp from"decimal.js";import{PublicKey as nf}from"@solana/web3.js";import rf from"bn.js";import{TOKEN_2022_PROGRAM_ID as pf,TOKEN_PROGRAM_ID as ff}from"@solana/spl-token";import Pf from"decimal.js";import zp from"bn.js";import Op from"bn.js";import Cf from"bn.js";function ee(o){let e=`global:${o}`;return Buffer.from(fr.digest(e)).slice(0,8)}eo.span;var hy=D("Raydium_Clmm"),By={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),createPermissionedPool:ee("create_permissioned_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_liquidity_v2"),decreaseLiquidityV2:ee("decrease_liquidity_v2"),initializeReward:ee("initialize_reward"),setRewardParams:ee("set_reward_params"),updateRewardInfos:ee("update_reward_infos"),collectRemainingRewards:ee("collect_remaining_rewards"),swapV2:ee("swap_v2"),openLimitOrder:ee("open_limit_order"),increaseLimitOrder:ee("increase_limit_order"),decreaseLimitOrder:ee("decrease_limit_order"),settleLimitOrder:ee("settle_limit_order"),closeLimitOrder:ee("close_limit_order")};import{PublicKey as sn}from"@solana/web3.js";var Pr=d([l("instruction")]),Ar=d([l("instruction")]),wr=d([t("rewardState"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardLastUpdateTime"),t("totalReward"),t("totalRewardEmissioned"),t("rewardClaimed"),t("rewardPerSecond"),R("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),t("rewardType"),f(t(),15,"padding")]),kr=d([t("state"),t("nonce"),r("lpVault"),r("rewardVault"),r(),r(),t(),t(),t("totalReward"),R("perShareReward"),t("lastSlot"),t("perSlotReward")]),Tr=d([t("state"),t("nonce"),r("lpVault"),r("rewardVaultA"),t("totalRewardA"),R("perShareRewardA"),t("perSlotRewardA"),l("option"),r("rewardVaultB"),M(7),t("totalRewardB"),R("perShareRewardB"),t("perSlotRewardB"),t("lastSlot"),r()]),hr=d([t(),t("state"),t("nonce"),t("validRewardTokenNum"),R("rewardMultiplier"),t("rewardPeriodMax"),t("rewardPeriodMin"),t("rewardPeriodExtend"),r("lpMint"),r("lpVault"),f(wr,5,"rewardInfos"),r("creator"),r(),f(t(),32,"padding")]),Br=new Proxy(kr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return E(O({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,e,n)}}),Ir=new Proxy(Tr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return E(O({},a),{version:5,rewardInfos:[{rewardVault:a.rewardVaultA,totalReward:a.totalRewardA,perSlotReward:a.perSlotRewardA,perShareReward:a.perShareRewardA},{rewardVault:a.rewardVaultB,totalReward:a.totalRewardB,perSlotReward:a.perSlotRewardB,perShareReward:a.perShareRewardB}]})}:Reflect.get(o,e,n)}}),co=new Proxy(hr,{get(o,e,n){return e==="decode"?(...i)=>{let a=o.decode(...i);return E(O({},a),{version:6,rewardInfos:a.rewardInfos.map(c=>{var m;return E(O({},c),{rewardType:((m=Object.entries(it).find(p=>String(p[1])===c.rewardType.toString()))!=null?m:["Standard SPL"])[0]})})})}:Reflect.get(o,e,n)}}),xr=d([t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),Sr=d([l("instruction"),t("nonce"),f(xr,5,"rewardTimeInfo")]),Kr=d([l("instruction"),t("rewardReopenTime"),t("rewardEndTime"),t("rewardPerSecond")]),Cr=d([l("instruction"),t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),Ab=d([t("state"),r("id"),r("owner"),t("deposited"),f(t(),1,"rewardDebts")]),lo=d([t("state"),r("id"),r("owner"),t("deposited"),f(R(),1,"rewardDebts"),t(""),t("voteLockedBalance"),f(t(),15)]),wb=d([t("state"),r("id"),r("owner"),t("deposited"),f(t(),2,"rewardDebts")]),Rr=d([t("state"),r("id"),r("owner"),t("deposited"),f(R(),2,"rewardDebts"),f(t(),17)]),Lr=d([t(),t("state"),r("id"),r("owner"),t("deposited"),f(R(),5,"rewardDebts"),f(t(),16)]),Or=d([l("instruction"),t("amount")]),Nr=d([r("mint"),r("grantAuthority"),t("baselineVoteWeightScaledFactor"),t("maxExtraLockupVoteWeightScaledFactor"),t("lockupSaturationSecs"),Wn("digitShift"),f(l(),7,"reserved1"),f(t(),7,"reserved2")]),Mr=d([M(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),f(l(),32,"reserved1"),f(Nr,4,"votingMints"),ve("timeOffset"),l("bump"),f(l(),7,"reserved2"),f(t(),11,"reserved3")]),Fr=d([ve("startTime"),ve("endTime"),l("kind"),f(l(),15,"reserved")]),vr=d([f(Fr,1,"lockup"),t("amountDeposited_native"),t("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),l("votingMintConfigIdx"),f(l(),29,"reserved")]),_r=d([M(8),r("voterAuthority"),r("registrar"),f(vr,32,"deposits"),l("voterBump"),l("voterWweightRecordBump"),f(l(),94,"reserved")]);import{NATIVE_MINT as Cb}from"@solana/spl-token";var Rb=D("Raydium_farm_config"),Vr=new sn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Er=new sn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Lb=new sn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var it={"Standard SPL":0,"Option tokens":1},mo={[Gn.toString()]:3,[zn.toString()]:4,[Xn.toString()]:5,[jt.toString()]:6,[Pe.FARM_PROGRAM_ID_V3.toString()]:3,[Pe.FARM_PROGRAM_ID_V4.toString()]:4,[Pe.FARM_PROGRAM_ID_V5.toString()]:5,[Pe.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as bg,SystemProgram as gg,SYSVAR_CLOCK_PUBKEY as Pg,SYSVAR_RENT_PUBKEY as Ag,TransactionInstruction as wg}from"@solana/web3.js";import Tg from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Bg,createAssociatedTokenAccountIdempotentInstruction as Ig,TOKEN_PROGRAM_ID as xg}from"@solana/spl-token";import Xb from"bn.js";import{PublicKey as _b}from"@solana/web3.js";import Eb from"bn.js";var rg=D("Raydium.farm.util");var _g=D("Raydium_farm_instruction"),Vg={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 IP from"bn.js";import{PublicKey as yw}from"@solana/web3.js";import{AccountLayout as Pw,MintLayout as Aw,NATIVE_MINT as ww,TOKEN_PROGRAM_ID as Tw}from"@solana/spl-token";import KP from"bn.js";import fo from"bn.js";var Yr=new fo(25),Hr=new fo(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as ZP,TOKEN_PROGRAM_ID as $P}from"@solana/spl-token";import{PublicKey as JP,SystemProgram as eA,SYSVAR_RENT_PUBKEY as tA,TransactionInstruction as nA}from"@solana/web3.js";import lA from"bn.js";var Qr=d([l("instruction"),t("amountIn"),t("minAmountOut")]),Zr=d([l("instruction"),t("maxAmountIn"),t("amountOut")]),XP=d([l("instruction"),l("nonce")]),$r=d([l("instruction"),l("nonce"),t("startTime")]),yo=d([t("status"),t("nonce"),t("maxOrder"),t("depth"),t("baseDecimal"),t("quoteDecimal"),t("state"),t("resetFlag"),t("minSize"),t("volMaxCutRatio"),t("amountWaveRatio"),t("baseLotSize"),t("quoteLotSize"),t("minPriceMultiplier"),t("maxPriceMultiplier"),t("systemDecimalValue"),t("minSeparateNumerator"),t("minSeparateDenominator"),t("tradeFeeNumerator"),t("tradeFeeDenominator"),t("pnlNumerator"),t("pnlDenominator"),t("swapFeeNumerator"),t("swapFeeDenominator"),t("baseNeedTakePnl"),t("quoteNeedTakePnl"),t("quoteTotalPnl"),t("baseTotalPnl"),t("poolOpenTime"),t("punishPcAmount"),t("punishCoinAmount"),t("orderbookToInitTime"),R("swapBaseInAmount"),R("swapQuoteOutAmount"),t("swapBase2QuoteFee"),R("swapQuoteInAmount"),R("swapBaseOutAmount"),t("swapQuote2BaseFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("withdrawQueue"),r("lpVault"),r("owner"),t("lpReserve"),f(t(),3,"padding")]),YP=d([t("accountType"),t("status"),t("nonce"),t("maxOrder"),t("depth"),t("baseDecimal"),t("quoteDecimal"),t("state"),t("resetFlag"),t("minSize"),t("volMaxCutRatio"),t("amountWaveRatio"),t("baseLotSize"),t("quoteLotSize"),t("minPriceMultiplier"),t("maxPriceMultiplier"),t("systemDecimalsValue"),t("abortTradeFactor"),t("priceTickMultiplier"),t("priceTick"),t("minSeparateNumerator"),t("minSeparateDenominator"),t("tradeFeeNumerator"),t("tradeFeeDenominator"),t("pnlNumerator"),t("pnlDenominator"),t("swapFeeNumerator"),t("swapFeeDenominator"),t("baseNeedTakePnl"),t("quoteNeedTakePnl"),t("quoteTotalPnl"),t("baseTotalPnl"),t("poolOpenTime"),t("punishPcAmount"),t("punishCoinAmount"),t("orderbookToInitTime"),R("swapBaseInAmount"),R("swapQuoteOutAmount"),R("swapQuoteInAmount"),R("swapBaseOutAmount"),t("swapQuote2BaseFee"),t("swapBase2QuoteFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("modelDataAccount"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("owner"),f(t(),64,"padding")]),jr=d([l("instruction"),t("baseAmountIn"),t("quoteAmountIn"),t("fixedSide"),t("otherAmountMin")]),Jr=d([l("instruction"),t("lpAmount"),t("baseAmountMin"),t("quoteAmountMin")]);var ea=d([t("fee")]);var pA=D("Raydium_liquidity_instruction");var ta=5e4,na=d([t("x"),t("y"),t("price")]),gA=d([t("accountType"),t("status"),t("multiplier"),t("validDataCount"),f(na,ta,"DataElement")]);import{PublicKey as CA}from"@solana/web3.js";import LA from"decimal.js";import{TOKEN_PROGRAM_ID as NA}from"@solana/spl-token";import{PublicKey as kA}from"@solana/web3.js";var BA=D("Raydium_liquidity_serum");import qw from"bn.js";import Gw from"decimal.js";import{SystemProgram as Se,SYSVAR_RENT_PUBKEY as ia,Transaction as bo,TransactionInstruction as ra}from"@solana/web3.js";import{createInitializeAccountInstruction as go,TOKEN_PROGRAM_ID as Po}from"@solana/spl-token";function oa(o="accountFlags"){let e=new kt(o);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var cn=d([M(5),oa("accountFlags"),r("ownAddress"),t("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),t("baseDepositsTotal"),t("baseFeesAccrued"),r("quoteVault"),t("quoteDepositsTotal"),t("quoteFeesAccrued"),t("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),t("baseLotSize"),t("quoteLotSize"),t("feeRateBps"),t("referrerRebatesAccrued"),M(7)]);function aa({programId:o,marketInfo:e}){let n=d([l("version"),X("instruction"),t("baseLotSize"),t("quoteLotSize"),H("feeRateBps"),t("vaultSignerNonce"),t("quoteDustThreshold")]),i=[{pubkey:e.id,isSigner:!1,isWritable:!0},{pubkey:e.requestQueue,isSigner:!1,isWritable:!0},{pubkey:e.eventQueue,isSigner:!1,isWritable:!0},{pubkey:e.bids,isSigner:!1,isWritable:!0},{pubkey:e.asks,isSigner:!1,isWritable:!0},{pubkey:e.baseVault,isSigner:!1,isWritable:!0},{pubkey:e.quoteVault,isSigner:!1,isWritable:!0},{pubkey:e.baseMint,isSigner:!1,isWritable:!1},{pubkey:e.quoteMint,isSigner:!1,isWritable:!1},{pubkey:e.authority?e.quoteMint:ia,isSigner:!1,isWritable:!1}].concat(e.authority?{pubkey:e.authority,isSigner:!1,isWritable:!1}:[]).concat(e.authority&&e.pruneAuthority?{pubkey:e.pruneAuthority,isSigner:!1,isWritable:!1}:[]),a=Buffer.alloc(n.span);return n.encode({version:0,instruction:0,baseLotSize:e.baseLotSize,quoteLotSize:e.quoteLotSize,feeRateBps:e.feeRateBps,vaultSignerNonce:e.vaultSignerNonce,quoteDustThreshold:e.quoteDustThreshold},a),new ra({keys:i,programId:o,data:a})}async function ln({connection:o,wallet:e,marketInfo:n}){var m,p,y,k,b,g,I,T;let i=new bo,a=await o.getMinimumBalanceForRentExemption(165);i.add(Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.baseVault.seed,newAccountPubkey:n.baseVault.publicKey,lamports:a,space:165,programId:Po}),Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.quoteVault.seed,newAccountPubkey:n.quoteVault.publicKey,lamports:a,space:165,programId:Po}),go(n.baseVault.publicKey,n.baseMint,n.vaultOwner),go(n.quoteVault.publicKey,n.quoteMint,n.vaultOwner),Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.id.seed,newAccountPubkey:n.id.publicKey,lamports:await o.getMinimumBalanceForRentExemption(cn.span),space:cn.span,programId:n.programId}));let c=new bo;return c.add(Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.requestQueue.seed,newAccountPubkey:n.requestQueue.publicKey,lamports:n.lowestFeeMarket?6208320:await o.getMinimumBalanceForRentExemption((m=n.requestQueueSpace)!=null?m:5120+12),space:n.lowestFeeMarket?764:(p=n.requestQueueSpace)!=null?p:5120+12,programId:n.programId}),Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.eventQueue.seed,newAccountPubkey:n.eventQueue.publicKey,lamports:n.lowestFeeMarket?79594560:await o.getMinimumBalanceForRentExemption((y=n.eventQueueSpace)!=null?y:262144+12),space:n.lowestFeeMarket?11308:(k=n.eventQueueSpace)!=null?k:262144+12,programId:n.programId}),Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.bids.seed,newAccountPubkey:n.bids.publicKey,lamports:n.lowestFeeMarket?101977920:await o.getMinimumBalanceForRentExemption((b=n.orderbookQueueSpace)!=null?b:65536+12),space:n.lowestFeeMarket?14524:(g=n.orderbookQueueSpace)!=null?g:65536+12,programId:n.programId}),Se.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.asks.seed,newAccountPubkey:n.asks.publicKey,lamports:n.lowestFeeMarket?101977920:await o.getMinimumBalanceForRentExemption((I=n.orderbookQueueSpace)!=null?I:65536+12),space:n.lowestFeeMarket?14524:(T=n.orderbookQueueSpace)!=null?T:65536+12,programId:n.programId}),aa({programId:n.programId,marketInfo:{id:n.id.publicKey,requestQueue:n.requestQueue.publicKey,eventQueue:n.eventQueue.publicKey,bids:n.bids.publicKey,asks:n.asks.publicKey,baseVault:n.baseVault.publicKey,quoteVault:n.quoteVault.publicKey,baseMint:n.baseMint,quoteMint:n.quoteMint,baseLotSize:n.baseLotSize,quoteLotSize:n.quoteLotSize,feeRateBps:n.feeRateBps,vaultSignerNonce:n.vaultSignerNonce,quoteDustThreshold:n.quoteDustThreshold}})),[{transaction:i,signer:[],instructionTypes:[U.CreateAccount,U.CreateAccount,U.InitAccount,U.InitAccount]},{transaction:c,signer:[],instructionTypes:[U.CreateAccount,U.CreateAccount,U.CreateAccount,U.CreateAccount,U.CreateAccount,U.InitMarket]}]}import{PublicKey as PT}from"@solana/web3.js";import{AccountLayout as wT,NATIVE_MINT as kT,TOKEN_2022_PROGRAM_ID as TT,TOKEN_PROGRAM_ID as hT,createAssociatedTokenAccountIdempotentInstruction as BT}from"@solana/spl-token";import fk from"bn.js";import ma from"bn.js";var ek=new ma(0);import ak from"bn.js";import da from"bn.js";var xt=new da(1e6);import OT from"bn.js";import MT from"decimal.js";import{PublicKey as Mk,TransactionInstruction as Fk,Keypair as _k,SystemProgram as Vk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Dk,TOKEN_2022_PROGRAM_ID as Wk,TOKEN_PROGRAM_ID as qk}from"@solana/spl-token";var Ak=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),wk=Buffer.from("amm_config","utf8"),kk=Buffer.from("pool","utf8"),Tk=Buffer.from("pool_lp_mint","utf8"),hk=Buffer.from("pool_vault","utf8"),Bk=Buffer.from("observation","utf8"),Ik=Buffer.from("permission","utf8"),xk=Buffer.from("support_mint","utf8"),Sk=Buffer.from("creator_fee_share","utf8");var Kk=Buffer.from("locked_liquidity","utf8");var Qk=D("Raydium_cpmm"),Zk={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 ya=d([M(8),l("bump"),ae("disableCreatePool"),H("index"),t("tradeFeeRate"),t("protocolFeeRate"),t("fundFeeRate"),t("createPoolFee"),r("protocolOwner"),r("fundOwner"),t("creatorFeeRate"),t("creatorFeeShareRate"),f(t(),14)]),Ao=d([M(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),l("bump"),l("status"),l("lpDecimals"),l("mintDecimalA"),l("mintDecimalB"),t("lpAmount"),t("protocolFeesMintA"),t("protocolFeesMintB"),t("fundFeesMintA"),t("fundFeesMintB"),t("openTime"),t("epoch"),l("feeOn"),ae("enableCreatorFee"),f(l(),6),t("creatorFeesMintA"),t("creatorFeesMintB"),f(t(),28)]),Jk=d([M(8),r("configId"),f(t(),30)]),eT=d([M(8),l("bump"),r("creator"),r("ammConfig"),t("shareRate"),f(t(),8)]);import{PublicKey as XS,SystemProgram as YS}from"@solana/web3.js";import{createTransferInstruction as QS,TOKEN_PROGRAM_ID as ZS,TOKEN_2022_PROGRAM_ID as $S,createAssociatedTokenAccountIdempotentInstruction as jS,createSyncNativeInstruction as eK,createTransferCheckedInstruction as tK}from"@solana/spl-token";import va from"bn.js";import iK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as qh,TOKEN_2022_PROGRAM_ID as Uh,TOKEN_PROGRAM_ID as Gh}from"@solana/spl-token";import{SystemProgram as Hh,TransactionInstruction as Qh}from"@solana/web3.js";import Pa from"bn.js";var Sh=Buffer.from("vault_auth_seed","utf8"),Kh=Buffer.from("global_config","utf8"),Ch=Buffer.from("pool_vesting","utf8"),Rh=Buffer.from("platform_config","utf8"),Lh=Buffer.from("platform_fee_vault_auth_seed","utf8"),Oh=Buffer.from("creator_fee_vault_auth_seed","utf8"),Nh=Buffer.from("platform_global_access","utf8"),Mh=Buffer.from("platform_allow_config","utf8"),Fh=Buffer.from("platform_curve_rule","utf8");var jh={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 Jh=new Pa("18446744073709551615");var Aa=d([t(),t("epoch"),l("curveType"),H("index"),t("migrateFee"),t("tradeFeeRate"),t("maxShareFeeRate"),t("minSupplyA"),t("maxLockRate"),t("minSellRateA"),t("minMigrateRateA"),t("minFundRaisingB"),r("mintB"),r("protocolFeeOwner"),r("migrateFeeOwner"),r("migrateToAmmWallet"),r("migrateToCpmmWallet"),f(t(),16)]),wa=d([t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod"),t("startTime"),t("totalAllocatedShare")]),ka=d([t(),t("epoch"),l("bump"),l("status"),l("mintDecimalsA"),l("mintDecimalsB"),l("migrateType"),t("supply"),t("totalSellA"),t("virtualA"),t("virtualB"),t("realA"),t("realB"),t("totalFundRaisingB"),t("protocolFee"),t("platformFee"),t("migrateFee"),wa.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),l("mintProgramFlag"),l("cpmmCreatorFeeOn"),t("platformVestingShare"),f(l(),54)]),oB=d([t(),t("epoch"),r("poolId"),r("beneficiary"),t("claimedAmount"),t("tokenShareAmount"),f(t(),8)]),Ta=d([l("migrateType"),l("migrateCpmmFeeOn"),t("supply"),t("totalSellA"),t("totalFundRaisingB"),t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod")]),iB=d([t("epoch"),l("index"),r("configId"),Ta.replicate("bondingCurveParam"),f(t(),50)]),ko=d([t(),t("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),t("platformScale"),t("creatorScale"),t("burnScale"),t("feeRate"),f(l(),64,"name"),f(l(),256,"web"),f(l(),256,"img"),r("cpConfigId"),t("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),t("platformVestingScale"),r("platformCpCreator"),l("restrictGlobalConfig"),l("restrictCurveParam"),r("curveRuleManager"),f(l(),78)]),ha=d([l("field"),l("op"),R("value")]),Ba=d([H("groupId"),t("epoch"),$t(ha,"constraints")]),Ia=d([t(),l("bump"),l("version"),r("platformId"),r("configId"),t("epoch"),f(t(),8),$t(Ba,"groups")]);import{TOKEN_2022_PROGRAM_ID as sB,TOKEN_PROGRAM_ID as uB}from"@solana/spl-token";import xa from"bn.js";var wB=new xa(1e6);import BB from"bn.js";import xB from"decimal.js";import iI from"bn.js";import aI from"decimal.js";import OB from"bn.js";import MB from"decimal.js";import GB from"bn.js";import XB from"decimal.js";import Bo from"bn.js";import mn from"decimal.js";var Ct=class{static _multipler(e){return new mn(10).pow(e)}static getPrice({priceX64:e,decimalA:n,decimalB:i}){return new mn(e.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:e,decimalA:n,decimalB:i}){let a=e.mul(this._multipler(i)).div(this._multipler(n));return new Bo(a.mul(this._Q64).toFixed(0))}};Ct._Q64=new mn(new Bo(1).shln(64).toString());import{NATIVE_MINT as kx,TOKEN_2022_PROGRAM_ID as Tx,TOKEN_PROGRAM_ID as hx,createAssociatedTokenAccountIdempotentInstruction as Ix,createSyncNativeInstruction as xx,getTransferFeeConfig as Sx,unpackMint as Kx}from"@solana/spl-token";import j from"bn.js";import{PublicKey as Na,SystemProgram as Lx}from"@solana/web3.js";import Vx from"decimal.js";var Ex={initPriceX64:new j("515752397214619"),supply:new j(1e15),totalSellA:new j(7931e11),totalFundRaisingB:new j(85e9),totalFundRaisingBUSD:new j(125e8),totalLockedAmount:new j("0"),cliffPeriod:new j("0"),unlockPeriod:new j("0"),decimals:6,virtualA:new j("1073471847374405"),virtualB:new j("30050573465"),realA:new j(0),realB:new j(0),protocolFee:new j(0),platformId:new Na("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new j(0),cliffPeriod:new j(0),unlockPeriod:new j(0),startTime:new j(0),totalAllocatedShare:new j(0)}},Dx=new j(1e4);var Ma={[Yn.toBase58()]:3};var Fa=d([M(5),M(8),r("ownAddress"),t("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),t("baseDepositsTotal"),t("baseFeesAccrued"),r("quoteVault"),t("quoteDepositsTotal"),t("quoteFeesAccrued"),t("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),t("baseLotSize"),t("quoteLotSize"),t("feeRateBps"),t("referrerRebatesAccrued"),M(7)]);import{PublicKey as lS}from"@solana/web3.js";var yS=D("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as BS,TOKEN_2022_PROGRAM_ID as IS,TOKEN_PROGRAM_ID as xS}from"@solana/spl-token";import{PublicKey as KS,SystemProgram as CS,TransactionInstruction as RS}from"@solana/web3.js";import OS from"bn.js";var MK=new va(0);import{PublicKey as _a,Transaction as dn,TransactionInstruction as Va}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ea}from"@solana/spl-token";import Io from"bn.js";var ne=class extends re{static getPdaPoolId(e,n){return pe([ne.SEED_CONFIG.pool.id,n.toBuffer()],e)}static getPdaOwnerId(e,n,i,a){return pe([ne.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new Io(a).toArray())],e)}static async getAllInfo({connection:e,programId:n,poolIds:i,wallet:a,chainTime:c}){if(i.length===0)return[];let m=i.map(b=>ne.getPdaPoolId(n,b).publicKey),p=[];for(let b=0;b<ne.VERSION_PROJECT.length;b++)p.push(...m.map(g=>ne.getPdaOwnerId(n,g,a,b).publicKey));let y=await be(e,[...m,...p]),k=[];for(let b=0;b<y.length;b++){let g=Math.floor(b/i.length),I=b%i.length,T=m[I],N=p[b],w=y[I],P=y[i.length+b];if(!(w&&P)||w.data.length!==ne.POOL_LAYOUT.span||P.data.length!==ne.OWNER_LAYOUT.span)continue;let x=ne.POOL_LAYOUT.decode(w.data),S=ne.OWNER_LAYOUT.decode(P.data),F=x.openTime.toNumber(),v=x.endTime.toNumber(),A=S.tokenInfo.map(C=>C.debtAmount.gt(new Io(0))).filter(C=>!C).length!==3,h=c>F&&c<v&&x.status===1,B=A&&h;k.push({programId:n,poolId:T,ammId:x.ammId,ownerAccountId:N,snapshotLpAmount:S.lpAmount,project:ne.VERSION_PROJECT[g],openTime:F,endTime:v,canClaim:B,canClaimErrorType:A?h?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:x.tokenInfo.map((C,L)=>({mintAddress:C.mintAddress,mintVault:C.mintVault,mintDecimals:C.mintDecimals,perLpLoss:C.perLpLoss,debtAmount:S.tokenInfo[L].debtAmount.add(S.tokenInfo[L].claimedAmount)}))})}return k}async makeClaimTransaction({poolInfo:e,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,m=[];for(let k of e.tokenInfo){let{account:b,instructionParams:g}=await this.scope.account.getOrCreateTokenAccount({mint:k.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:k.mintAddress.equals(te.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!k.mintAddress.equals(te.WSOL.mint),associatedOnly:k.mintAddress.equals(te.WSOL.mint)?!1:n.associatedOnly});g&&a.addInstruction(g),m.push(b)}a.addInstruction({instructions:[ne.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:c,ownerPda:e.ownerAccountId,claimAddress:m}})]});let{transaction:p,signers:y}=a.build();return[{transaction:p,signer:y}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:n,feePayer:i}){let a=this.createTxBuilder(i),c=n.wallet||this.scope.ownerPubKey,m={};for(let b of e){let g=[];for(let I of b.tokenInfo){let{account:T,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({mint:I.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:I.mintAddress.equals(te.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!I.mintAddress.equals(te.WSOL.mint),associatedOnly:I.mintAddress.equals(te.WSOL.mint)?!1:n.associatedOnly});N&&a.addInstruction(N),T&&(m[I.mintAddress.toString()]=T,g.push(T))}a.addInstruction({instructions:[ne.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:c,ownerPda:b.ownerAccountId,claimAddress:g}})]})}let{transaction:p,signers:y}=a.build(),k=a.allInstructions;return zt(k,[c,...y.map(b=>b.publicKey)])?[{transaction:p,signer:y}]:[{transaction:new dn().add(...k.slice(0,a.AllTxData.instructions.length-1)),signer:y},{transaction:new dn().add(...k.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new dn().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:n,ownerInfo:i}){let a=d([]),c=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:Ea,isSigner:!1,isWritable:!1}],m=Buffer.alloc(a.span);a.encode({},m);let p=Buffer.from([10,66,208,184,161,6,191,98,...m]);return new Va({keys:c,programId:e,data:p})}},ce=ne;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=d([M(8),l("bump"),l("status"),t("openTime"),t("endTime"),r("ammId"),f(d([l("mintDecimals"),r("mintAddress"),r("mintVault"),t("perLpLoss"),t("totalClaimedAmount")]),ne.CLAIMED_NUM,"tokenInfo"),f(t(),10,"padding")]),ce.OWNER_LAYOUT=d([M(8),l("bump"),l("version"),r("poolId"),r("owner"),t("lpAmount"),f(d([r("mintAddress"),t("debtAmount"),t("claimedAmount")]),ne.CLAIMED_NUM,"tokenInfo"),f(t(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new _a(e)),ce.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},ce.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as $K}from"@solana/web3.js";import{getTransferFeeConfig as JK,MintLayout as eC,TOKEN_2022_PROGRAM_ID as tC,TOKEN_PROGRAM_ID as nC,unpackMint as oC}from"@solana/spl-token";var LR=new Ke(2),OR=new Ke(3),NR=new Ke(5),Yo=new Ke(10),MR=new Ke(100),FR=new Ke(1e3),vR=new Ke(1e4);function Ft(o,e=1,n=[]){let i=[...o];if(e<=0)return n;for(;i.length;)n.push(i.splice(0,e));return n}import{TOKEN_PROGRAM_ID as Xa}from"@solana/spl-token";function Da(o){return o instanceof Uint8Array||o!=null&&typeof o=="object"&&o.constructor.name==="Uint8Array"}function pn(o,...e){if(!Da(o))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(o.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${o.length}`)}function fn(o,e=!0){if(o.destroyed)throw new Error("Hash instance has been destroyed");if(e&&o.finished)throw new Error("Hash#digest() has already been called")}function xo(o,e){pn(o);let n=e.outputLen;if(o.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var Lt=o=>new DataView(o.buffer,o.byteOffset,o.byteLength),le=(o,e)=>o<<32-e|o>>>e;var aL=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Wa(o){if(typeof o!="string")throw new Error(`utf8ToBytes expected string, got ${typeof o}`);return new Uint8Array(new TextEncoder().encode(o))}function yn(o){return typeof o=="string"&&(o=Wa(o)),pn(o),o}var Rt=class{clone(){return this._cloneInto()}},sL={}.toString;function So(o){let e=i=>o().update(yn(i)).digest(),n=o();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>o(),e}function qa(o,e,n,i){if(typeof o.setBigUint64=="function")return o.setBigUint64(e,n,i);let a=BigInt(32),c=BigInt(4294967295),m=Number(n>>a&c),p=Number(n&c),y=i?4:0,k=i?0:4;o.setUint32(e+y,m,i),o.setUint32(e+k,p,i)}var Ko=(o,e,n)=>o&e^~o&n,Co=(o,e,n)=>o&e^o&n^e&n,Ot=class extends Rt{constructor(e,n,i,a){super(),this.blockLen=e,this.outputLen=n,this.padOffset=i,this.isLE=a,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Lt(this.buffer)}update(e){fn(this);let{view:n,buffer:i,blockLen:a}=this;e=yn(e);let c=e.length;for(let m=0;m<c;){let p=Math.min(a-this.pos,c-m);if(p===a){let y=Lt(e);for(;a<=c-m;m+=a)this.process(y,m);continue}i.set(e.subarray(m,m+p),this.pos),this.pos+=p,m+=p,this.pos===a&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){fn(this),xo(e,this),this.finished=!0;let{buffer:n,view:i,blockLen:a,isLE:c}=this,{pos:m}=this;n[m++]=128,this.buffer.subarray(m).fill(0),this.padOffset>a-m&&(this.process(i,0),m=0);for(let g=m;g<a;g++)n[g]=0;qa(i,a-8,BigInt(this.length*8),c),this.process(i,0);let p=Lt(e),y=this.outputLen;if(y%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let k=y/4,b=this.get();if(k>b.length)throw new Error("_sha2: outputLen bigger than state");for(let g=0;g<k;g++)p.setUint32(4*g,b[g],c)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let i=e.slice(0,n);return this.destroy(),i}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:i,length:a,finished:c,destroyed:m,pos:p}=this;return e.length=a,e.pos=p,e.finished=c,e.destroyed=m,a%n&&e.buffer.set(i),e}};var Ua=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Ae=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),we=new Uint32Array(64),bn=class extends Ot{constructor(){super(64,32,8,!1),this.A=Ae[0]|0,this.B=Ae[1]|0,this.C=Ae[2]|0,this.D=Ae[3]|0,this.E=Ae[4]|0,this.F=Ae[5]|0,this.G=Ae[6]|0,this.H=Ae[7]|0}get(){let{A:e,B:n,C:i,D:a,E:c,F:m,G:p,H:y}=this;return[e,n,i,a,c,m,p,y]}set(e,n,i,a,c,m,p,y){this.A=e|0,this.B=n|0,this.C=i|0,this.D=a|0,this.E=c|0,this.F=m|0,this.G=p|0,this.H=y|0}process(e,n){for(let g=0;g<16;g++,n+=4)we[g]=e.getUint32(n,!1);for(let g=16;g<64;g++){let I=we[g-15],T=we[g-2],N=le(I,7)^le(I,18)^I>>>3,w=le(T,17)^le(T,19)^T>>>10;we[g]=w+we[g-7]+N+we[g-16]|0}let{A:i,B:a,C:c,D:m,E:p,F:y,G:k,H:b}=this;for(let g=0;g<64;g++){let I=le(p,6)^le(p,11)^le(p,25),T=b+I+Ko(p,y,k)+Ua[g]+we[g]|0,w=(le(i,2)^le(i,13)^le(i,22))+Co(i,a,c)|0;b=k,k=y,y=p,p=m+T|0,m=c,c=a,a=i,i=T+w|0}i=i+this.A|0,a=a+this.B|0,c=c+this.C|0,m=m+this.D|0,p=p+this.E|0,y=y+this.F|0,k=k+this.G|0,b=b+this.H|0,this.set(i,a,c,m,p,y,k,b)}roundClean(){we.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Ro=So(()=>new bn);function se({fromPublicKey:o,programId:e=Xa,assignSeed:n}){let i=n?btoa(n).slice(0,32):Ga.generate().publicKey.toBase58().slice(0,32);return{publicKey:Ya(o,i,e),seed:i}}function Ya(o,e,n){let i=Buffer.concat([o.toBuffer(),Buffer.from(e),n.toBuffer()]),a=Ro(i);return new za(a)}var rt=class extends re{async create({baseInfo:e,quoteInfo:n,lotSize:i,tickSize:a,dexProgramId:c,requestQueueSpace:m,eventQueueSpace:p,orderbookQueueSpace:y,lowestFeeMarket:k,assignSeed:b,txVersion:g,computeBudgetConfig:I,txTipConfig:T,feePayer:N}){let w=this.scope.ownerPubKey,P=b?`${e.mint.toBase58().slice(0,10)}-${n.mint.toBase58().slice(0,10)}-${b}`:void 0,x=se({fromPublicKey:w,programId:c,assignSeed:P&&`${P}-market`}),S=se({fromPublicKey:w,programId:c,assignSeed:P&&`${P}-request`}),F=se({fromPublicKey:w,programId:c,assignSeed:P&&`${P}-event`}),v=se({fromPublicKey:w,programId:c,assignSeed:P&&`${P}-bids`}),A=se({fromPublicKey:w,programId:c,assignSeed:P&&`${P}-asks`}),h=se({fromPublicKey:w,programId:Lo,assignSeed:P&&`${P}-baseVault`}),B=se({fromPublicKey:w,programId:Lo,assignSeed:P&&`${P}-quoteVault`}),C=0,L=new st(100);function _(){let J=new st(0);for(;;)try{return{vaultOwner:at.createProgramAddressSync([x.publicKey.toBuffer(),J.toArrayLike(Buffer,"le",8)],c),vaultSignerNonce:J}}catch{if(J.iaddn(1),J.gt(new st(25555)))throw Error("find vault owner error")}}let{vaultOwner:oe,vaultSignerNonce:G}=_(),V=new st(Math.round(10**e.decimals*i)),Q=new st(Math.round(i*10**n.decimals*a));if(V.eq($))throw Error("lot size is too small");if(Q.eq($))throw Error("tick size or lot size is too small");let q=await ln({connection:this.scope.connection,wallet:this.scope.ownerPubKey,marketInfo:{programId:c,id:x,baseMint:e.mint,quoteMint:n.mint,baseVault:h,quoteVault:B,vaultOwner:oe,requestQueue:S,eventQueue:F,bids:v,asks:A,feeRateBps:C,quoteDustThreshold:L,vaultSignerNonce:G,baseLotSize:V,quoteLotSize:Q,requestQueueSpace:m,eventQueueSpace:p,orderbookQueueSpace:y,lowestFeeMarket:k}}),Z=this.createTxBuilder(N);Z.addInstruction({instructions:q[0].transaction.instructions,signers:q[0].signer});for await(let J of q.slice(1,q.length))Z.addInstruction({instructions:J.transaction.instructions,signers:J.signer,instructionTypes:J.instructionTypes});return g===0?Z.sizeCheckBuildV0({computeBudgetConfig:I,address:{marketId:x.publicKey,requestQueue:S.publicKey,eventQueue:F.publicKey,bids:v.publicKey,asks:A.publicKey,baseVault:h.publicKey,quoteVault:B.publicKey,baseMint:new at(e.mint),quoteMint:new at(n.mint)}}):Z.sizeCheckBuild({computeBudgetConfig:I,address:{marketId:x.publicKey,requestQueue:S.publicKey,eventQueue:F.publicKey,bids:v.publicKey,asks:A.publicKey,baseVault:h.publicKey,quoteVault:B.publicKey,baseMint:new at(e.mint),quoteMint:new at(n.mint)}})}};export{rt as default};
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
//# sourceMappingURL=createMarket.mjs.map