@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
3 lines • 87.8 kB
JavaScript
var Mo=Object.defineProperty,Fo=Object.defineProperties;var vo=Object.getOwnPropertyDescriptors;var mt=Object.getOwnPropertySymbols;var Tn=Object.prototype.hasOwnProperty,hn=Object.prototype.propertyIsEnumerable;var kn=(i,e,n)=>e in i?Mo(i,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[e]=n,L=(i,e)=>{for(var n in e||(e={}))Tn.call(e,n)&&kn(i,n,e[n]);if(mt)for(var n of mt(e))hn.call(e,n)&&kn(i,n,e[n]);return i},V=(i,e)=>Fo(i,vo(e));var se=(i,e)=>{var n={};for(var o in i)Tn.call(i,o)&&e.indexOf(o)<0&&(n[o]=i[o]);if(i!=null&&mt)for(var o of mt(i))e.indexOf(o)<0&&hn.call(i,o)&&(n[o]=i[o]);return n};import{PublicKey as Ft,SystemProgram as ns}from"@solana/web3.js";import{PublicKey as Eo}from"@solana/web3.js";import{get as Bn,set as _o}from"lodash";var vt=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(o=>typeof o=="object"?JSON.stringify(o):o).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}},In={},Vo={};function E(i){let e=Bn(In,i);if(!e){let n=Bn(Vo,i);e=new vt({name:i,logLevel:n}),_o(In,i,e)}return e}import{MINT_SIZE as fs,TOKEN_PROGRAM_ID as ys,getTransferFeeConfig as bs,unpackMint as gs}from"@solana/spl-token";var _t=E("Raydium_accountInfo_util");async function be(i,e,n){let{batchRequest:o,commitment:a="confirmed",chunkCount:s=100}=L({batchRequest:!1},n),l=Vt(e,s),m=new Array(l.length).fill([]);if(o){let p=l.map(b=>{let T=i._buildArgs([b.map(w=>w.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:T}}),g=Vt(p,10);m=(await(await Promise.all(g.map(async b=>await i._rpcBatchRequest(b)))).flat()).map(b=>(b.error&&_t.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.error.message}`),b.result.value.map(T=>{if(T){let{data:w,executable:k,lamports:h,owner:B,rentEpoch:K}=T;return w.length!==2&&w[1]!=="base64"&&_t.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:k,lamports:h,owner:new Eo(B),rentEpoch:K}}return null})))}else try{m=await Promise.all(l.map(p=>i.getMultipleAccountsInfo(p,a)))}catch(p){p instanceof Error&&_t.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${p.message}`)}return m.flat()}import Ke from"bn.js";import DR from"decimal.js";import Yo from"big.js";import Ms from"bn.js";import Do from"toformat";var Wo=Do,Qe=Wo;import pt from"big.js";import Uo from"bn.js";import Go from"decimal.js-light";import Ze from"bn.js";var xn=9007199254740991;function J(i){let e=E("Raydium_parseBigNumberish");if(i instanceof Ze)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Ze(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=xn||i<=-xn)&&e.logWithError(`BigNumberish number overflow: ${i}`),new Ze(String(i))):typeof i=="bigint"?new Ze(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new Ze(0))}var dt=E("module/fraction"),Et=Qe(pt),$e=Qe(Go),zo={[0]:$e.ROUND_DOWN,[1]:$e.ROUND_HALF_UP,[2]:$e.ROUND_UP},Xo={[0]:pt.roundDown,[1]:pt.roundHalfUp,[2]:pt.roundUp},G=class{constructor(e,n=new Uo(1)){this.numerator=J(e),this.denominator=J(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new G(this.denominator,this.numerator)}add(e){let n=e instanceof G?e:new G(J(e));return this.denominator.eq(n.denominator)?new G(this.numerator.add(n.numerator),this.denominator):new G(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof G?e:new G(J(e));return this.denominator.eq(n.denominator)?new G(this.numerator.sub(n.numerator),this.denominator):new G(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof G?e:new G(J(e));return new G(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof G?e:new G(J(e));return new G(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},o=1){Number.isInteger(e)||dt.logWithError(`${e} is not an integer.`),e<=0&&dt.logWithError(`${e} is not positive.`),$e.set({precision:e+1,rounding:zo[o]});let a=new $e(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return a.toFormat(a.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},o=1){return Number.isInteger(e)||dt.logWithError(`${e} is not an integer.`),e<0&&dt.logWithError(`${e} is negative.`),Et.DP=e,Et.RM=Xo[o]||1,new Et(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Us=E("Raydium_amount"),Gs=Qe(Yo);import{PublicKey as Qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Sn}from"@solana/spl-token";var ft={chainId:101,address:Qo.default.toBase58(),programId:Sn.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:Sn.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 Wt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as Kn,SYSVAR_RENT_PUBKEY as Zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as $o}from"@solana/spl-token";function Re({pubkey:i,isSigner:e=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:e}}var jo=[Re({pubkey:$o,isWritable:!1}),Re({pubkey:Kn.programId,isWritable:!1}),Re({pubkey:Zo,isWritable:!1})];function Cn({publicKey:i,transformSol:e}){let n=Rn(i.toString());if(n instanceof X)return e&&n.equals(Te)?re:n;if(e&&n.toString()===Te.toBase58())return re;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Rn(i){try{return new X(i)}catch{return i}}var Dt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),je=new X("SysvarRent111111111111111111111111111111111"),js=new X("SysvarC1ock11111111111111111111111111111111"),yt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Jo=new X("Sysvar1nstructions1111111111111111111111111"),ei=Kn.programId,Js=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),eu=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),tu=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),nu=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ou=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),iu=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ru=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),au=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),su=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),uu=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),cu=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),re=new X("So11111111111111111111111111111111111111112"),Te=X.default;var qt=class{constructor({mint:e,decimals:n,symbol:o,name:a,skipMint:s=!1,isToken2022:l=!1}){if(e===Te.toBase58()||e instanceof Wt&&Te.equals(e)){this.decimals=ce.decimals,this.symbol=ce.symbol,this.name=ce.name,this.mint=new Wt(ce.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=o||e.toString().substring(0,6),this.name=a||e.toString().substring(0,6),this.mint=s?Wt.default:Cn({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ee=qt;ee.WSOL=new qt(V(L({},ce),{mint:ce.address}));var Ut=class{constructor({decimals:e,symbol:n="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=o}equals(e){return this===e}},bt=Ut;bt.SOL=new Ut(ft);import ti from"bn.js";var ku=new G(new ti(100));var Su=E("Raydium_price");import{merge as qC}from"lodash";import vu from"axios";var Ln={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"},ni=V(L({},Ln),{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 rc=E("Raydium_Api");import{PublicKey as oP,SystemProgram as iP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as aP}from"@solana/spl-token";import{PublicKey as ui}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ci}from"@solana/spl-token";import{ComputeBudgetProgram as On,Keypair as Mn,PublicKey as oi,Transaction as Fn,TransactionMessage as ii,VersionedTransaction as vn}from"@solana/web3.js";var W={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 ri}from"@solana/spl-token";var Nn=E("Raydium_txUtil"),_n=1644;function gt(i){let e=[],n=[];return i.microLamports&&(e.push(On.setComputeUnitPrice({microLamports:i.microLamports})),n.push(W.SetComputeUnitPrice)),i.units&&(e.push(On.setComputeUnitLimit({units:i.units})),n.push(W.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function Le(i,e){var o,a;let n=e!=null?e:"confirmed";return(a=await((o=i.getLatestBlockhash)==null?void 0:o.call(i,{commitment:n})))==null?void 0:a.blockhash}async function Pt(i,e){return i.getSignatureStatuses([e]),new Promise((n,o)=>{let a=setTimeout(o,6e4);i.onSignature(e,s=>{if(clearTimeout(a),!s.err){n("");return}o(Object.assign(s.err,{txId:e}))},"confirmed")})}function Gt(i,e){i.length<1&&Nn.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&Nn.logWithError(`no signers provided:, ${e.toString()}`);let n=new Fn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<_n}catch{return!1}}function le(i,e){let[n,o]=oi.findProgramAddressSync(i,e);return{publicKey:n,nonce:o}}function Je({instructions:i,payer:e,signers:n}){return Gt(i,[e,...n])}function et({instructions:i,payer:e,lookupTableAddressAccount:n,recentBlockhash:o=Mn.generate().publicKey.toString()}){let s=new ii({payerKey:e,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new vn(s).serialize()).toString("base64").length<_n}catch{return!1}}var ai=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),si=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof vn&&(e=ai(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function he(i){let e=[];return i.forEach(n=>{n instanceof Fn&&(n.recentBlockhash||(n.recentBlockhash=ri.toBase58()),n.feePayer||(n.feePayer=Mn.generate().publicKey)),e.push(si(n))}),console.log("simulate tx string:",e),e}function ae(i,e,n){return le([i.toBuffer(),(n!=null?n:ci).toBuffer(),e.toBuffer()],new ui("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as C}from"@solana/web3.js";var Vn=new C("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),En=new C("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Dn=new C("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),zt=new C("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Lc=new C("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),li=new C("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Wn=new C("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),qn=new C("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Oc=new C("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),mi=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Un=new C("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),di=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),pi=new C("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Gn=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Nc=new C("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),fi=new C("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Xt=new C("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),yi=new C("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Mc=new C("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),bi=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new C("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Pi=new C("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Fc=new C("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),vc=new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),_c=new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Vc=new C("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ec=new C("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ge={OPEN_BOOK_PROGRAM:new C("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new C("Ray1111111111111111111111111111111111111111"),AMM_V4:new C("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new C("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new C("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new C("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new C("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new C("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new C("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new C("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:C.default,Router:new C("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new C("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new C("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new C("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new C("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new C("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new C("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new C("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new C("Ray1111111111111111111111111111111111111111")};import{Keypair as _i,PublicKey as io}from"@solana/web3.js";import Vi from"bn.js";import{TOKEN_PROGRAM_ID as Ei}from"@solana/spl-token";function Ai(i){return i instanceof Uint8Array||i!=null&&typeof i=="object"&&i.constructor.name==="Uint8Array"}function Yt(i,...e){if(!Ai(i))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(i.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${i.length}`)}function Ht(i,e=!0){if(i.destroyed)throw new Error("Hash instance has been destroyed");if(e&&i.finished)throw new Error("Hash#digest() has already been called")}function zn(i,e){Yt(i);let n=e.outputLen;if(i.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var wt=i=>new DataView(i.buffer,i.byteOffset,i.byteLength),me=(i,e)=>i<<32-e|i>>>e;var Uc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function wi(i){if(typeof i!="string")throw new Error(`utf8ToBytes expected string, got ${typeof i}`);return new Uint8Array(new TextEncoder().encode(i))}function Qt(i){return typeof i=="string"&&(i=wi(i)),Yt(i),i}var At=class{clone(){return this._cloneInto()}},Gc={}.toString;function Xn(i){let e=o=>i().update(Qt(o)).digest(),n=i();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>i(),e}function ki(i,e,n,o){if(typeof i.setBigUint64=="function")return i.setBigUint64(e,n,o);let a=BigInt(32),s=BigInt(4294967295),l=Number(n>>a&s),m=Number(n&s),p=o?4:0,g=o?0:4;i.setUint32(e+p,l,o),i.setUint32(e+g,m,o)}var Yn=(i,e,n)=>i&e^~i&n,Hn=(i,e,n)=>i&e^i&n^e&n,kt=class extends At{constructor(e,n,o,a){super(),this.blockLen=e,this.outputLen=n,this.padOffset=o,this.isLE=a,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=wt(this.buffer)}update(e){Ht(this);let{view:n,buffer:o,blockLen:a}=this;e=Qt(e);let s=e.length;for(let l=0;l<s;){let m=Math.min(a-this.pos,s-l);if(m===a){let p=wt(e);for(;a<=s-l;l+=a)this.process(p,l);continue}o.set(e.subarray(l,l+m),this.pos),this.pos+=m,l+=m,this.pos===a&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Ht(this),zn(e,this),this.finished=!0;let{buffer:n,view:o,blockLen:a,isLE:s}=this,{pos:l}=this;n[l++]=128,this.buffer.subarray(l).fill(0),this.padOffset>a-l&&(this.process(o,0),l=0);for(let b=l;b<a;b++)n[b]=0;ki(o,a-8,BigInt(this.length*8),s),this.process(o,0);let m=wt(e),p=this.outputLen;if(p%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let g=p/4,y=this.get();if(g>y.length)throw new Error("_sha2: outputLen bigger than state");for(let b=0;b<g;b++)m.setUint32(4*b,y[b],s)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let o=e.slice(0,n);return this.destroy(),o}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:o,length:a,finished:s,destroyed:l,pos:m}=this;return e.length=a,e.pos=m,e.finished=s,e.destroyed=l,a%n&&e.buffer.set(o),e}};var Ti=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]),Pe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ae=new Uint32Array(64),Zt=class extends kt{constructor(){super(64,32,8,!1),this.A=Pe[0]|0,this.B=Pe[1]|0,this.C=Pe[2]|0,this.D=Pe[3]|0,this.E=Pe[4]|0,this.F=Pe[5]|0,this.G=Pe[6]|0,this.H=Pe[7]|0}get(){let{A:e,B:n,C:o,D:a,E:s,F:l,G:m,H:p}=this;return[e,n,o,a,s,l,m,p]}set(e,n,o,a,s,l,m,p){this.A=e|0,this.B=n|0,this.C=o|0,this.D=a|0,this.E=s|0,this.F=l|0,this.G=m|0,this.H=p|0}process(e,n){for(let b=0;b<16;b++,n+=4)Ae[b]=e.getUint32(n,!1);for(let b=16;b<64;b++){let T=Ae[b-15],w=Ae[b-2],k=me(T,7)^me(T,18)^T>>>3,h=me(w,17)^me(w,19)^w>>>10;Ae[b]=h+Ae[b-7]+k+Ae[b-16]|0}let{A:o,B:a,C:s,D:l,E:m,F:p,G:g,H:y}=this;for(let b=0;b<64;b++){let T=me(m,6)^me(m,11)^me(m,25),w=y+T+Yn(m,p,g)+Ti[b]+Ae[b]|0,h=(me(o,2)^me(o,13)^me(o,22))+Hn(o,a,s)|0;y=g,g=p,p=m,m=l+w|0,l=s,s=a,a=o,o=w+h|0}o=o+this.A|0,a=a+this.B|0,s=s+this.C|0,l=l+this.D|0,m=m+this.E|0,p=p+this.F|0,g=g+this.G|0,y=y+this.H|0,this.set(o,a,s,l,m,p,g,y)}roundClean(){Ae.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Qn=Xn(()=>new Zt);import{PublicKey as Mi}from"@solana/web3.js";import eo,{isBN as to}from"bn.js";import{bits as hi,BitStructure as Jc,blob as Bi,Blob as el,cstr as tl,f32 as nl,f32be as ol,f64 as il,f64be as rl,greedy as al,Layout as Ii,ns64 as sl,ns64be as ul,nu64 as cl,nu64be as ll,offset as xi,s16 as ml,s16be as dl,s24 as pl,s24be as fl,s32 as Si,s32be as yl,s40 as bl,s40be as gl,s48 as Pl,s48be as Al,s8 as wl,seq as Ki,struct as kl,Structure as Ci,u16 as Ri,u16be as Tl,u24 as hl,u24be as Bl,u32 as Li,u32be as Il,u40 as xl,u40be as Sl,u48 as Kl,u48be as Cl,u8 as Oi,UInt as Ni,union as Rl,Union as Ll,unionLayoutDiscriminator as Ol,utf8 as Nl}from"@solana/buffer-layout";var Tt=Ii,Zn=Ci;var $t=Ni;var $n=Oi,H=Ri;var ht=Li;var de=Si;var jn=Ki;var v=Bi;var jt=hi,Jn=xi;var Be=class extends Tt{constructor(n,o,a){super(n,a);this.blob=v(n),this.signed=o}decode(n,o=0){let a=new eo(this.blob.decode(n,o),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,o,a=0){return typeof n=="number"&&(n=new eo(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),o,a)}},Bt=class extends Tt{constructor(n){super(8,n);this._lower=jt(ht(),!1),this._upper=jt(ht(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,o=0){let a=this._lower.decode(n,o),s=this._upper.decode(n,o+this._lower.span);return L(L({},a),s)}encode(n,o,a=0){return this._lower.encode(n,o,a)+this._upper.encode(n,o,a+this._lower.span)}};function d(i){return new $t(1,i)}function Y(i){return new $t(4,i)}function t(i){return new Be(8,!1,i)}function N(i){return new Be(16,!1,i)}function no(i){return new Be(1,!0,i)}function Oe(i){return new Be(8,!0,i)}function oo(i){return new Be(16,!0,i)}var tt=class extends Tt{constructor(n,o,a,s){super(n.span,s);this.layout=n,this.decoder=o,this.encoder=a}decode(n,o){return this.decoder(this.layout.decode(n,o))}encode(n,o,a){return this.layout.encode(this.encoder(n),o,a)}getSpan(n,o){return this.layout.getSpan(n,o)}};function r(i){return new tt(v(32),e=>new Mi(e),e=>e.toBuffer(),i)}function ue(i){return new tt($n(),Fi,vi,i)}function Fi(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function vi(i){return i?1:0}function en(i,e){let n=ht("length"),o=f([n,A(i,Jn(n,-n.span),"values")]);return new tt(o,({values:a})=>a,a=>({values:a}),e)}var Jt=class extends Zn{decode(e,n){return super.decode(e,n)}};function f(i,e,n){return new Jt(i,e,n)}function A(i,e,n){let o,a=typeof e=="number"?e:to(e)?e.toNumber():new Proxy(e,{get(s,l){if(!o){let m=Reflect.get(s,"count");o=to(m)?m.toNumber():m,Reflect.set(s,"count",o)}return Reflect.get(s,l)},set(s,l,m){return l==="count"&&(o=m),Reflect.set(s,l,m)}});return jn(i,a,n)}var Ie=f([r("mint"),r("owner"),t("amount"),Y("delegateOption"),r("delegate"),d("state"),Y("isNativeOption"),t("isNative"),t("delegatedAmount"),Y("closeAuthorityOption"),r("closeAuthority")]);function ro({owner:i,solAccountResp:e,tokenAccountResp:n}){let o=[],a=[];for(let{pubkey:s,account:l}of n.value){let m=Ie.decode(l.data),{mint:p,amount:g}=m;o.push({publicKey:s,mint:p,amount:g,isAssociated:ae(i,p,l.owner).publicKey.equals(s),isNative:!1,programId:l.owner}),a.push({pubkey:s,accountInfo:m,programId:l.owner})}return e&&o.push({mint:io.default,amount:new Vi(String(e.lamports)),isNative:!0,programId:e.owner}),{tokenAccounts:o,tokenAccountRawInfos:a}}function xe({fromPublicKey:i,programId:e=Ei,assignSeed:n}){let o=n?btoa(n).slice(0,32):_i.generate().publicKey.toBase58().slice(0,32);return{publicKey:Di(i,o,e),seed:o}}function Di(i,e,n){let o=Buffer.concat([i.toBuffer(),Buffer.from(e),n.toBuffer()]),a=Qn(o);return new io(a)}import bP from"decimal.js";import{PublicKey as Wi,SystemProgram as qi}from"@solana/web3.js";import Ui from"bn.js";import{createCloseAccountInstruction as Gi,createInitializeAccountInstruction as zi,createTransferInstruction as Xi,TOKEN_PROGRAM_ID as Ne}from"@solana/spl-token";function tn(i){let{mint:e,tokenAccount:n,owner:o,programId:a=Ne}=i;return zi(n,e,o,a)}function Me(i){let{tokenAccount:e,destination:n,multiSigners:o=[],owner:a,programId:s=Ne}=i;return Gi(e,n,a,o,s)}async function nt(i){let{connection:e,amount:n,commitment:o,closeDestination:a,payer:s,owner:l,skipCloseAccount:m}=i,p=await e.getMinimumBalanceForRentExemption(Ie.span,o),g=J(n).add(new Ui(p)),y=xe({fromPublicKey:s,programId:Ne});return{addresses:{newAccount:y.publicKey},signers:[],instructions:[qi.createAccountWithSeed({fromPubkey:s,basePubkey:s,seed:y.seed,newAccountPubkey:y.publicKey,lamports:g.toNumber(),space:Ie.span,programId:Ne}),tn({mint:new Wi(ce.address),tokenAccount:y.publicKey,owner:l,programId:Ne})],instructionTypes:[W.CreateAccount,W.InitAccount],endInstructionTypes:m?[]:[W.CloseAccount],endInstructions:m?[]:[Me({tokenAccount:y.publicKey,destination:a!=null?a:l,owner:l})]}}function ao({source:i,destination:e,owner:n,amount:o,multiSigners:a=[],tokenProgram:s=Ne}){return Xi(i,e,n,BigInt(String(o)),a,s)}import{createAssociatedTokenAccountIdempotentInstruction as Vy,TOKEN_2022_PROGRAM_ID as Ey,TOKEN_PROGRAM_ID as Dy}from"@solana/spl-token";import{PublicKey as qy}from"@solana/web3.js";import Gy from"bn.js";import Xy from"decimal.js";import{TOKEN_PROGRAM_ID as Sm}from"@solana/spl-token";import{PublicKey as Lm}from"@solana/web3.js";var Yi=f([Y("mintAuthorityOption"),r("mintAuthority"),t("supply"),d("decimals"),d("isInitialized"),Y("freezeAuthorityOption"),r("freezeAuthority")]);import{PublicKey as Ee,sendAndConfirmTransaction as sn,SystemProgram as Hi,Transaction as ot,TransactionMessage as it,VersionedTransaction as rt}from"@solana/web3.js";import Qi from"axios";import{PublicKey as nn,AddressLookupTableAccount as Ve}from"@solana/web3.js";async function on({connection:i,address:e,cluster:n="mainnet"}){let o=await be(i,[...new Set(e.map(s=>s.toString()))].map(s=>new nn(s))),a={};for(let s=0;s<e.length;s++){let l=o[s],m=e[s];if(!l)continue;let p=new Ve({key:m,state:Ve.deserialize(l.data)});a[m.toString()]=p,n==="devnet"?_e[m.toString()]=p:ve[m.toString()]=p}return a}var ve={},rn=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(ve[e])return ve;let n=new nn(e),o=await i.getAccountInfo(n);return o&&(ve[e]=new Ve({key:n,state:Ve.deserialize(o.data)})),ve},_e={},an=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(_e[e])return _e;let n=new nn(e),o=await i.getAccountInfo(n);return o&&(_e[e]=new Ve({key:n,state:Ve.deserialize(o.data)})),_e};var It=2e3,xt=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 o;let e=(await Qi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(o=e==null?void 0:e[15])!=null?o:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:o}=gt(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var n;return e?(this.endInstructions.push(Hi.transfer({fromPubkey:(n=e.feePayer)!=null?n:this.feePayer,toPubkey:new Ee(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(W.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:n}){try{let o=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:o=[],instructionTypes:a=[],endInstructionTypes:s=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...o),this.instructionTypes.push(...a),this.endInstructionTypes.push(...s),this.lookupTableAddress.push(...l.filter(m=>m!==Ee.default.toString())),this}async versionBuild({txVersion:e,extInfo:n,lookupTableAddress:o}){return e===0?await this.buildV0(V(L({},n||{}),{lookupTableAddress:o})):this.build(n)}build(e){var o;let n=new ot;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.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 y;let{recentBlockHash:s,skipPreflight:l=!0,sendAndConfirm:m,notSendToRpc:p}=a||{},g=s!=null?s:await Le(this.connection,this.blockhashCommitment);if(n.recentBlockhash=g,this.signers.length&&n.sign(...this.signers),he([n]),(y=this.owner)!=null&&y.isKeyPair)return{txId:m?await sn(this.connection,n,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:l}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:l}),signedTx:n};if(this.signAllTransactions){let b=await this.signAllTransactions([n]);if(this.signers.length)for(let T of b)try{T.sign(...this.signers)}catch{}return{txId:p?"":await this.connection.sendRawTransaction(b[0].serialize(),{skipPreflight:l}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var g;let{extraPreBuildData:n=[],extInfo:o}=e,{transaction:a}=this.build(o),s=n.filter(y=>y.transaction.instructions.length>0),l=[a,...s.map(y=>y.transaction)],m=[this.signers,...s.map(y=>y.signers)],p=[...this.instructionTypes,...s.map(y=>y.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&m.forEach(y=>{y.some(b=>b.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:m,instructionTypes:p,execute:async y=>{var K;let{sequentially:b,onTxUpdate:T,skipTxCount:w=0,recentBlockHash:k,skipPreflight:h=!0}=y||{},B=k!=null?k:await Le(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(b){let I=[],R=0;for(let F of l){if(++R,R<=w)continue;let P=await sn(this.connection,F,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});I.push(P)}return{txIds:I,signedTxs:l}}return{txIds:await await Promise.all(l.map(async I=>(I.recentBlockhash=B,await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:h})))),signedTxs:l}}if(this.signAllTransactions){let I=l.map((F,P)=>(F.recentBlockhash=B,m[P].length&&F.sign(...m[P]),F));he(I);let R=await this.signAllTransactions(I);if(b){let F=0,P=[],x=async()=>{if(!R[F])return;let S=await this.connection.sendRawTransaction(R[F].serialize(),{skipPreflight:h});P.push({txId:S,status:"sent",signedTx:R[F]}),T==null||T([...P]),F++;let O=!1,M=null,_=null,ie=U=>{M!==null&&clearInterval(M),_!==null&&this.connection.removeSignatureListener(_);let q=P.findIndex(j=>j.txId===S);if(q>-1){if(P[q].status==="error"||P[q].status==="success")return;P[q].status=U.err?"error":"success"}T==null||T([...P]),U.err||x()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var U;if(O){clearInterval(M);return}try{let q=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:1});q&&(O=!0,clearInterval(M),ie({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",S))}catch(q){O=!0,clearInterval(M),console.error("getTransaction timeout:",q,S)}},It)),_=this.connection.onSignature(S,U=>{if(O){this.connection.removeSignatureListener(_);return}O=!0,ie(U)},"confirmed"),this.connection.getSignatureStatus(S)};return await x(),{txIds:P.map(S=>S.txId),signedTxs:R}}else{let F=[];for(let P=0;P<R.length;P+=1){let x=await this.connection.sendRawTransaction(R[P].serialize(),{skipPreflight:h});F.push(x)}return{txIds:F,signedTxs:R}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:o}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:o})}async buildV0(e){var h;let k=e||{},{lookupTableCache:n={},lookupTableAddress:o=[],forerunCreate:a,recentBlockhash:s}=k,l=se(k,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),m=L(L({},this.cluster==="devnet"?await an(this.connection):await rn(this.connection)),n),p=Array.from(new Set([...o,...this.lookupTableAddress])),g=[];for(let B of p)m[B]===void 0&&g.push(new Ee(B));let y=await on({connection:this.connection,address:g});for(let[B,K]of Object.entries(y))m[B]=K;let b=a?Ee.default.toBase58():s!=null?s:await Le(this.connection,this.blockhashCommitment),T=new it({payerKey:this.feePayer,recentBlockhash:b,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(m));((h=this.owner)==null?void 0:h.signer)&&!this.signers.some(B=>B.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new rt(T);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async B=>{var F;let{skipPreflight:K=!0,sendAndConfirm:I,notSendToRpc:R}=B||{};if(he([w]),(F=this.owner)!=null&&F.isKeyPair){let P=await this.connection.sendTransaction(w,{skipPreflight:K});return I&&await Pt(this.connection,P),{txId:P,signedTx:w}}if(this.signAllTransactions){let P=await this.signAllTransactions([w]);if(this.signers.length)for(let x of P)try{x.sign(this.signers)}catch{}return{txId:R?"":await this.connection.sendTransaction(P[0],{skipPreflight:K}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var g;let{extraPreBuildData:n=[],buildProps:o}=e,{transaction:a}=await this.buildV0(o),s=n.filter(y=>y.builder.instructions.length>0),l=[a,...s.map(y=>y.transaction)],m=[this.signers,...s.map(y=>y.signers)],p=[...this.instructionTypes,...s.map(y=>y.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&m.forEach(y=>{y.some(b=>b.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(y,b)=>{y.sign(m[b])}),{builder:this,transactions:l,signers:m,instructionTypes:p,buildProps:o,execute:async y=>{var h;let{sequentially:b,onTxUpdate:T,recentBlockHash:w,skipPreflight:k=!0}=y||{};if(w&&l.forEach(B=>B.message.recentBlockhash=w),he(l),(h=this.owner)!=null&&h.isKeyPair){if(b){let B=[];for(let K of l){let I=await this.connection.sendTransaction(K,{skipPreflight:k});await Pt(this.connection,I),B.push(I)}return{txIds:B,signedTxs:l}}return{txIds:await Promise.all(l.map(async B=>await this.connection.sendTransaction(B,{skipPreflight:k}))),signedTxs:l}}if(this.signAllTransactions){let B=await this.signAllTransactions(l);if(b){let K=0,I=[],R=async()=>{if(!B[K])return;let F=await this.connection.sendTransaction(B[K],{skipPreflight:k});I.push({txId:F,status:"sent",signedTx:B[K]}),T==null||T([...I]),K++;let P=!1,x=null,S=null,O=M=>{x!==null&&clearInterval(x),S!==null&&this.connection.removeSignatureListener(S);let _=I.findIndex(ie=>ie.txId===F);if(_>-1){if(I[_].status==="error"||I[_].status==="success")return;I[_].status=M.err?"error":"success"}T==null||T([...I]),M.err||R()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var M;if(P){clearInterval(x);return}try{let _=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(P=!0,clearInterval(x),O({err:((M=_.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",F))}catch(_){P=!0,clearInterval(x),console.error("getTransaction timeout:",_,F)}},It)),S=this.connection.onSignature(F,M=>{if(P){this.connection.removeSignatureListener(S);return}P=!0,O(M)},"confirmed"),this.connection.getSignatureStatus(F)};return R(),{txIds:[],signedTxs:B}}else{let K=[];for(let I=0;I<B.length;I+=1){let R=await this.connection.sendTransaction(B[I],{skipPreflight:k});K.push(R)}return{txIds:K,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(e){var T;let b=e||{},{splitIns:n=[],computeBudgetConfig:o}=b,a=se(b,["splitIns","computeBudgetConfig"]),s=o?gt(o):{instructions:[],instructionTypes:[]},l=this.signers.reduce((w,k)=>V(L({},w),{[k.publicKey.toBase58()]:k}),{}),m=[],p=[],g=[],y=0;if(this.allInstructions.forEach(w=>{let k=[...g,w],h=o?[...s.instructions,...k]:k,K=[...new Set(k.map(I=>I.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(I=>new Ee(I));if(w!==n[y]&&g.length<12&&(Je({instructions:h,payer:this.feePayer,signers:K})||Je({instructions:k,payer:this.feePayer,signers:K})))g.push(w);else{if(g.length===0)throw Error("item ins too big");y+=w===n[y]?1:0,Je({instructions:o?[...s.instructions,...g]:[...g],payer:this.feePayer,signers:K})?m.push(new ot().add(...s.instructions,...g)):m.push(new ot().add(...g)),p.push(Array.from(new Set(g.map(I=>I.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat())).map(I=>l[I]).filter(I=>I!==void 0)),g=[w]}}),g.length>0){let k=[...new Set(g.map(h=>h.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(h=>l[h]).filter(h=>h!==void 0);Je({instructions:o?[...s.instructions,...g]:[...g],payer:this.feePayer,signers:k.map(h=>h.publicKey)})?m.push(new ot().add(...s.instructions,...g)):m.push(new ot().add(...g)),p.push(k)}return m.forEach(w=>w.feePayer=this.feePayer),(T=this.owner)!=null&&T.signer&&p.forEach(w=>{w.some(k=>k.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:m,signers:p,instructionTypes:this.instructionTypes,execute:async w=>{var F;let{sequentially:k,onTxUpdate:h,skipTxCount:B=0,recentBlockHash:K,skipPreflight:I=!0}=w||{},R=K!=null?K:await Le(this.connection,this.blockhashCommitment);if(m.forEach(async(P,x)=>{P.recentBlockhash=R,p[x].length&&P.sign(...p[x])}),he(m),(F=this.owner)!=null&&F.isKeyPair){if(k){let P=0,x=[];for(let S of m){if(++P,P<=B){x.push("tx skipped");continue}let O=await sn(this.connection,S,this.signers.find(M=>M.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});x.push(O)}return{txIds:x,signedTxs:m}}return{txIds:await Promise.all(m.map(async P=>await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:I}))),signedTxs:m}}if(this.signAllTransactions){let P=await this.signAllTransactions(m.slice(B,m.length)),x=[...m.slice(0,B),...P];if(k){let S=0,O=[],M=async()=>{if(!x[S])return;S<B&&(O.push({txId:"",status:"success",signedTx:x[S]}),h==null||h([...O]),S++,M());let _=await this.connection.sendRawTransaction(x[S].serialize(),{skipPreflight:I});O.push({txId:_,status:"sent",signedTx:x[S]}),h==null||h([...O]),S++;let ie=!1,U=null,q=null,j=z=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let ne=O.findIndex(fe=>fe.txId===_);if(ne>-1){if(O[ne].status==="error"||O[ne].status==="success")return;O[ne].status=z.err?"error":"success"}h==null||h([...O]),z.err||M()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var z;if(ie){clearInterval(U);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});ne&&(ie=!0,clearInterval(U),j({err:((z=ne.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){ie=!0,clearInterval(U),console.error("getTransaction timeout:",ne,_)}},It)),q=this.connection.onSignature(_,z=>{if(ie){this.connection.removeSignatureListener(q);return}ie=!0,j(z)},"confirmed"),this.connection.getSignatureStatus(_)};return await M(),{txIds:O.map(_=>_.txId),signedTxs:x}}else{let S=[];for(let O=0;O<x.length;O+=1){let M=await this.connection.sendRawTransaction(x[O].serialize(),{skipPreflight:I});S.push(M)}return{txIds:S,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(e){var F;let R=e||{},{computeBudgetConfig:n,splitIns:o=[],lookupTableCache:a={},lookupTableAddress:s=[],insCountLimit:l=12}=R,m=se(R,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),p=L(L({},this.cluster==="devnet"?await an(this.connection):await rn(this.connection)),a),g=Array.from(new Set([...this.lookupTableAddress,...s])),y=[];for(let P of g)p[P]===void 0&&y.push(new Ee(P));let b=await on({connection:this.connection,address:y});for(let[P,x]of Object.entries(b))p[P]=x;let T=n?gt(n):{instructions:[],instructionTypes:[]},w=await Le(this.connection,this.blockhashCommitment),k=this.signers.reduce((P,x)=>V(L({},P),{[x.publicKey.toBase58()]:x}),{}),h=[],B=[],K=[],I=0;if(this.allInstructions.forEach(P=>{let x=[...K,P],S=n?[...T.instructions,...x]:x;if(P!==o[I]&&K.length<l&&(et({instructions:S,payer:this.feePayer,lookupTableAddressAccount:p})||et({instructions:x,payer:this.feePayer,lookupTableAddressAccount:p})))K.push(P);else{if(K.length===0)throw Error("item ins too big");I+=P===o[I]?1:0;let O={};for(let M of[...new Set(g)])p[M]!==void 0&&(O[M]=p[M]);if(n&&et({instructions:[...T.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:w})){let M=new it({payerKey:this.feePayer,recentBlockhash:w,instructions:[...T.instructions,...K]}).compileToV0Message(Object.values(p));h.push(new rt(M))}else{let M=new it({payerKey:this.feePayer,recentBlockhash:w,instructions:[...K]}).compileToV0Message(Object.values(p));h.push(new rt(M))}B.push(Array.from(new Set(K.map(M=>M.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(M=>k[M]).filter(M=>M!==void 0)),K=[P]}}),K.length>0){let x=[...new Set(K.map(S=>S.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(S=>k[S]).filter(S=>S!==void 0);if(n&&et({instructions:[...T.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:w})){let S=new it({payerKey:this.feePayer,recentBlockhash:w,instructions:[...T.instructions,...K]}).compileToV0Message(Object.values(p));h.push(new rt(S))}else{let S=new it({payerKey:this.feePayer,recentBlockhash:w,instructions:[...K]}).compileToV0Message(Object.values(p));h.push(new rt(S))}B.push(x)}return(F=this.owner)!=null&&F.signer&&B.forEach(P=>{P.some(x=>x.publicKey.equals(this.owner.publicKey))||P.push(this.owner.signer)}),h.forEach((P,x)=>{P.sign(B[x])}),{builder:this,transactions:h,buildProps:e,signers:B,instructionTypes:this.instructionTypes,execute:async P=>{var ie;let{sequentially:x,onTxUpdate:S,skipTxCount:O=0,recentBlockHash:M,skipPreflight:_=!0}=P||{};if(h.map(async(U,q)=>{B[q].length&&U.sign(B[q]),M&&(U.message.recentBlockhash=M)}),he(h),(ie=this.owner)!=null&&ie.isKeyPair){if(x){let U=0,q=[];for(let j of h){if(++U,U<=O){console.log("skip tx: ",U),q.push("tx skipped");continue}let z=await this.connection.sendTransaction(j,{skipPreflight:_});await Pt(this.connection,z),q.push(z)}return{txIds:q,signedTxs:h}}return{txIds:await Promise.all(h.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:_}))),signedTxs:h}}if(this.signAllTransactions){let U=await this.signAllTransactions(h.slice(O,h.length)),q=[...h.slice(0,O),...U];if(x){let j=0,z=[],ne=async()=>{if(!q[j])return;if(j<O){z.push({txId:"",status:"success",signedTx:q[j]}),S==null||S([...z]),j++,ne();return}let fe=await this.connection.sendTransaction(q[j],{skipPreflight:_});z.push({txId:fe,status:"sent",signedTx:q[j]}),S==null||S([...z]),j++;let Ye=!1,Ce=null,lt=null,wn=ke=>{Ce!==null&&clearInterval(Ce),lt!==null&&this.connection.removeSignatureListener(lt);let ye=z.findIndex(No=>No.txId===fe);if(ye>-1){if(z[ye].status==="error"||z[ye].status==="success")return;z[ye].status=ke.err?"error":"success"}S==null||S([...z]),ke.err||ne()};this.loopMultiTxStatus&&(Ce=setInterval(async()=>{var ke;if(Ye){clearInterval(Ce);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:1});ye&&(Ye=!0,clearInterval(Ce),wn({err:((ke=ye.meta)==null?void 0:ke.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){Ye=!0,clearInterval(Ce),console.error("getTransaction timeout:",ye,fe)}},It)),lt=this.connection.onSignature(fe,ke=>{if(Ye){this.connection.removeSignatureListener(lt);return}Ye=!0,wn(ke)},"confirmed"),this.connection.getSignatureStatus(fe)};return ne(),{txIds:[],signedTxs:q}}else{let j=[];for(let z=0;z<q.length;z+=1){let ne=await this.connection.sendTransaction(q[z],{skipPreflight:_});j.push(ne)}return{txIds:j,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}};var un=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),oe=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=E(n)}createTxBuilder(e){return this.scope.checkOwner(),new xt({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(un(e))}logInfo(...e){this.logger.info(un(e))}logAndCreateError(...e){let n=un(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{ASSOCIATED_TOKEN_PROGRAM_ID as ry,TOKEN_2022_PROGRAM_ID as ay,TOKEN_PROGRAM_ID as sy}from"@solana/spl-token";import{Keypair as ly,PublicKey as my,SystemProgram as py,TransactionInstruction as fy}from"@solana/web3.js";import by from"bn.js";import D from"bn.js";var De=new D(1).shln(64);var Zi=new D(1).shln(128),cn=new D(1).shln(64).subn(1),$i=new D(1).shln(128).subn(1);var We=new D("4295048016"),qe=new D("79226673521066979257578248091"),ji=new D("59543866431248"),Ji=new D("184467440737095516"),er=new D("15793534762490258745");var ln=60,cd=new D("18446743708227953217"),tr=[{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 at=3,so=100;var uo=10,co=100,St=14;var Z=new D(0),Ue=new D(1),ld=new D(-1);var md=new D("18446744073700000000");var nr=f([v(8),d("bump"),H("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),H("tickSpacing"),Y("fundFeeRate"),A(Y(),1),r("fundOwner"),A(t(),3)]),or=f([Y("blockTimestamp"),Oe("tickCumulative"),A(t(),4)]),lo=f([v(8),ue("initialized"),t("recentEpoch"),H("observationIndex"),r("poolId"),A(or,so,"observations"),A(t(),4)]),ir=f([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),de("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),t("lastUpdateTimestamp"),A(d(),46)]),rr=f([d("state"),t("openTime"),t("endTime"),t("lastUpdateTime"),N("emissionsPerSecondX64"),t("totalEmissioned"),t("claimed"),r("mint"),r("vault"),r("creator"),N("growthGlobalX64")]),mn=f([v(8),d("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),d("mintDecimalsA"),d("mintDecimalsB"),H("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),de("tickCurrent"),Y(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),t("protocolFeesTokenA"),t("protocolFeesTokenB"),A(N(),4),d("status"),d("feeOn"),v(6),A(rr,at,"rewardInfos"),v(8*16,"tickArrayBitmap"),A(t(),4),t("fundFeesTokenA"),t("fundFeesTokenB"),t("startTime"),t("recentEpoch"),ir.replicate("dynamicFeeInfo"),A(t(),46)]),ar=f([N("growthInsideLastX64"),t("rewardAmountOwed")]),sr=f([v(8),d("bump"),r("nftMint"),r("poolId"),de("tickLower"),de("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),A(ar,at,"rewardInfos"),t("recentEpoch"),A(t(),7)]),yd=f([v(8),d("bump"),r("poolId"),de("tickLower"),de("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),t("tokenFeesOwedA"),t("tokenFeesOwedB"),A(N(),at,"rewardGrowthInside"),t("recentEpoch"),A(t(),7)]),ur=f([de("tick"),oo("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),A(N(),at,"rewardGrowthsOutsideX64"),t("orderPhase"),t("ordersAmount"),t("partFilledOrdersRemaining"),N("unfilledRatioX64"),A(Y(),3)]),mo=f([v(8),r("poolId"),de("startTickIndex"),A(ur,ln,"ticks"),d("initializedTickCount"),t("recentEpoch"),A(d(),107)]),cr=f([v(8),d("bump"),A(r(),uo,"operationOwners"),A(r(),co,"whitelistMints")]),lr=f([v(8),r("poolId"),r("owner"),de("tick"),ue("zeroForOne"),t("orderPhase"),t("totalAmount"),t("filledAmount"),t("settleBase"),t("settleOutput"),t("openTime"),N("unfilledRatioX64"),A(t(),4)]),po=f([v(8),r("poolId"),v(8*8*St,"positiveTickArrayBitmap"),v(8*8*St,"negativeTickArrayBitmap")]),bd=f([v(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),A(t(),8)]),mr=f([v(8),r("wallet"),d("nonceIndex"),t("orderNonce"),A(t(),4)]),gd=f([t(),d("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),A(t(),8)]),dr=f([v(8),d("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),t("recentEpoch"),A(t(),8)]);import wd from"bn.js";var Ld=Buffer.from("amm_config","utf8"),fr=Buffer.from("pool","utf8"),yr=Buffer.from("pool_vault","utf8"),Od=Buffer.from("pool_reward_vault","utf8"),Nd=Buffer.from("position","utf8"),Md=Buffer.from("tick_array","utf8"),Fd=Buffer.from("operation","utf8"),vd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),_d=Buffer.from("observation","utf8"),Vd=Buffer.from("support_mint","utf8"),Ed=Buffer.from("dynamic_fee_config","utf8"),Dd=Buffer.from("permission","utf8");var Wd=Buffer.from("locked_position","utf8");import{sha256 as Rr}from"js-sha256";import br from"bn.js";import zd from"decimal.js";var Yd=new br(1).shln(256).subn(1);import mp from"bn.js";import ep from"bn.js";import np from"decimal.js";import bp from"bn.js";import Pp from"decimal.js";import{PublicKey as rf}from"@solana/web3.js";import sf from"bn.js";import{TOKEN_2022_PROGRAM_ID as yf,TOKEN_PROGRAM_ID as bf}from"@solana/spl-token";import wf from"decimal.js";import Yp from"bn.js";import Mp from"bn.js";import Lf from"bn.js";function $(i){let e=`global:${i}`;return Buffer.from(Rr.digest(e)).slice(0,8)}lo.span;var Iy=E("Raydium_Clmm"),xy={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),createPermissionedPool:$("create_permissioned_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{PublicKey as yn}from"@solana/web3.js";var Mr=f([d("instruction")]),Fr=f([d("instruction")]),vr=f([t("rewardState"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardLastUpdateTime"),t("totalReward"),t("totalRewardEmissioned"),t("rewardClaimed"),t("rewardPerSecond"),N("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),t("rewardType"),A(t(),15,"padding")]),_r=f([t("state"),t("nonce"),r("lpVault"),r("rewardVault"),r(),r(),t(),t(),t("totalReward"),N("perShareReward"),t("lastSlot"),t("perSlotReward")]),Vr=f([t("state"),t("nonce"),r("lpVault"),r("rewardVaultA"),t("totalRewardA"),N("perShareRewardA"),t("perSlotRewardA"),d("option"),r("rewardVaultB"),v(7),t("totalRewardB"),N("perShareRewardB"),t("perSlotRewardB"),t("lastSlot"),r()]),Er=f([t(),t("state"),t("nonce"),t("validRewardTokenNum"),N("rewardMultiplier"),t("rewardPeriodMax"),t("rewardPeriodMin"),t("rewardPeriodExtend"),r("lpMint"),r("lpVault"),A(vr,5,"rewardInfos"),r("creator"),r(),A(t(),32,"padding")]),Dr=new Proxy(_r,{get(i,e,n){return e==="decode"?(...o)=>{let a=i.decode(...o);return V(L({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(i,e,n)}}),Wr=new Proxy(Vr,{get(i,e,n){return e==="decode"?(...o)=>{let a=i.decode(...o);return V(L({},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(i,e,n)}}),wo=new Proxy(Er,{get(i,e,n){return e==="decode"?(...o)=>{let a=i.decode(...o);return V(L({},a),{version:6,rewardInfos:a.rewardInfos.map(s=>{var l;return V(L({},s),{rewardType:((l=Object.entries(ct).find(m=>String(m[1])===s.rewardType.toString()))!=null?l:["Standard SPL"])[0]})})})}:Reflect.get(i,e,n)}}),qr=f([t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),Ur=f([d("instruction"),t("nonce"),A(qr,5,"rewardTimeInfo")]),Gr=f([d("instruction"),t("rewardReopenTime"),t("rewardEndTime"),t("rewardPerSecond")]),zr=f([d("instruction"),t("isSet"),t("rewardPerSecond"),t("rewardOpenTime"),t("rewardEndTime"),t("rewardType")]),kb=f([t("state"),r("id"),r("owner"),t("deposited"),A(t(),1,"rewardDebts")]),ko=f([t("state"),r("id"),r("owner"),t("deposited"),A(N(),1,"rewardDebts"),t(""),t("voteLockedBalance"),A(t(),15)]),Tb=f([t("state"),r("id"),r("owner"),t("deposited"),A(t(),2,"rewardDebts")]),Xr=f([t("state"),r("id"),r("owner"),t("deposited"),A(N(),2,"rewardDebts"),A(t(),17)]),Yr=f([t(),t("state"),r("id"),r("owner"),t("deposited"),A(N(),5,"rewardDebts"),A(t(),16)]),Hr=f([d("instruction"),t("amount")]),Qr=f([r("mint"),r("grantAuthority"),t("baselineVoteWeightScaledFactor"),t("maxExtraLockupVoteWeightScaledFactor"),t("lockupSaturationSecs"),no("digitShift"),A(d(),7,"reserved1"),A(t(),7,"reserved2")]),Zr=f([v(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),A(d(),32,"reserved1"),A(Qr,4,"votingMints"),Oe("timeOffset"),d("bump"),A(d(),7,"reserved2"),A(t(),11,"reserved3")]),$r=f([Oe("startTime"),Oe("endTime"),d("kind"),A(d(),15,"reserved")]),jr=f([A($r,1,"lockup"),t("amountDeposited_native"),t("amountInitiallyLockedNative"),ue("isUsed"),ue("allowClawback"),d("votingMintConfigIdx"),A(d(),29,"reserved")]),Jr=f([v(8),r("voterAuthority"),r("registrar"),A(jr,32,"deposits"),d("voterBump"),d("voterWweightRecordBump"),A(d(),94,"reserved")]);import{NATIVE_MINT as Lb}from"@solana/spl-token";var Ob=E("Raydium_farm_config"),ea=new yn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ta=new yn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Nb=new yn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var ct={"Standard SPL":0,"Option tokens":1},To={[Vn.toString()]:3,[En.toString()]:4,[Dn.toString()]:5,[zt.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 Pg,SystemProgram as Ag,SYSVAR_CLOCK_PUBKEY as wg,SYSVAR_RENT_PUBKEY as kg,TransactionInstruction as Tg}from"@solana/web3.js";import Bg from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as xg,createAssociatedTokenAccountIdempotentInstruction as Sg,TOKEN_PROGRAM_ID as Kg}from"@solana/spl-token";import Hb from"bn.js";import{PublicKey as Eb}from"@solana/web3.js";import Wb from"bn.js";var sg=E("Raydium.farm.util");var Eg=E("Raydium_farm_instruction"),Dg={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 SP from"bn.js";import{PublicKey as Fw}from"@solana/web3.js";import{AccountLayout as Vw,MintLayout as Ew,NATIVE_MINT as Dw,TOKEN_PROGRAM_ID as qw}from"@solana/spl-token";import RP from"bn.js";import Bo from"bn.js";var ca=new Bo(25),la=new Bo(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as jP,TOKEN_PROGRAM_ID as JP}from"@solana/spl-token";import{PublicKey as tA,SystemProgram as nA,SYSVAR_RENT_PUBKEY as oA,TransactionInstruction as iA}from"@solana/web3.js";import dA from"bn.js";var ma=f([d("instruction"),t("amountIn"),t("minAmountOut")]),da=f([d("instruction"),t("maxAmountIn"),t("amountOut")]),HP=f([d("instruction"),d("nonce")]),pa=f([d("instruction"),d("nonce"),t("startTime")]),Io=f([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"),N("swapBaseInAmount"),N("swapQuoteOutAmount"),t("swapBase2QuoteFee"),N("swapQuoteInAmount"),N("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"),A(t(),3,"padding")]),QP=f([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"),N("swapBaseInAmount"),N("swapQuoteOutAmount"),N("swapQuoteInAmount"),N("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"),A(t(),64,"padding")]),fa=f([d("instruction"),t("baseAmountIn"),t("quoteAmountIn"),t("fixedSide"),t("otherAmountMin")]),ya=f([d("instruction"),t("lpAmount"),t("baseAmountMin"),t("quoteAmountMin")]);var ba=f([t("fee")]);var yA=E("Raydium_liquidity_instruction");var ga=5e4,Pa=f([t("x"),t("y"),t("price")]),AA=f([t("accountType"),t("status"),t("multiplier"),t("validDataCount"),A(Pa,ga,"DataElement")]);import{PublicKey as LA}from"@solana/web3.js";import NA from"decimal.js";import{TOKEN_PROGRAM_ID as FA}from"@solana/spl-token";import{PublicKey as hA}from"@solana/web3.js";var xA=E("Raydium_liquidity_serum");import uk from"bn.js";import lk from"decimal.js";import{TOKEN_PROGRAM_ID as uw}from"@solana/spl-token";import{PublicKey as lw}from"@solana/web3.js";import dw from"bn.js";import{SystemProgram as QA,SYSVAR_RENT_PUBKEY as ZA,Transaction as $A,TransactionInstruction as jA}from"@solana/web3.js";import{createInitializeAccountInstruction as ew,TOKEN_PROGRAM_ID as tw}from"@solana/spl-token";function Aa(i="accountFlags"){let e=new Bt(i);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var wa=f([v(5),Aa("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"),v(7)]);import{PublicKey as VT}from"@solana/web3.js";import{AccountLayout as DT,NATIVE_MINT as WT,TOKEN_2022_PROGRAM_ID as qT,TOKEN_PROGRAM_ID as UT,createAssociatedTokenAccountIdempotentInstruction as GT}from"@solana/spl-token";import Mk from"bn.js";import Sa from"bn.js";var wk=new Sa(0);import xk from"bn.js";import Ka from"bn.js";var Rt=new Ka(1e6);import jT from"bn.js";import eh from"decimal.js";import{PublicKey as eT,TransactionInstruction as tT,Keypair as oT,SystemProgram as iT}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as aT,TOKEN_2022_PROGRAM_ID as sT,TOKEN_PROGRAM_ID as uT}from"@solana/spl-token";var Ek=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Dk=Buffer.from("amm_config","utf8"),Wk=Buffer.from("pool","utf8"),qk=Buffer.from("pool_lp_mint","utf8"),Uk=Buffer.from("pool_vault","utf8"),Gk=Buffer.from("observation","utf8"),zk=Buffer.from("permission","utf8"),Xk=Buffer.from("support_mint","utf8"),Yk=Buffer.from("creator_fee_share","utf8");var Hk=Buffer.from("locked_liquidity","utf8");var yT=E("Raydium_cpmm"),bT={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 La=f([v(8),d("bump"),ue("disableCreatePool"),H("index"),t("tradeFeeRate"),t("protocolFeeRate"),t("fundFeeRate"),t("createPoolFee"),r("protocolOwner"),r("fundOwner"),t("creatorFeeRate"),t("creatorFeeShareRate"),A(t(),14)]),xo=f([v(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("observationId"),d("bump"),d("status"),d("lpDecimals"),d("mintDecimalA"),d("mintDecimalB"),t("lpAmount"),t("protocolFeesMintA"),t("protocolFeesMintB"),t("fundFeesMintA"),t("fundFeesMintB"),t("openTime"),t("epoch"),d("feeOn"),ue("enableCreatorFee"),A(d(),6),t("creatorFeesMintA"),t("creatorFeesMintB"),A(t(),28)]),AT=f([v(8),r("configId"),A(t(),30)]),wT=f([v(8),d("bump"),r("creator"),r("ammConfig"),t("shareRate"),A(t(),8)]);import{PublicKey as dK,SystemProgram as pK}from"@solana/web3.js";import{createTransferInstruction as yK,TOKEN_PROGRAM_ID as bK,TOKEN_2022_PROGRAM_ID as gK,createAssociatedTokenAccountIdempotentInstruction as PK,createSyncNativeInstruction as wK,createTransferCheckedInstruction as kK}from"@solana/spl-token";import ja from"bn.js";import BK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as uB,TOKEN_2022_PROGRAM_ID as cB,TOKEN_PROGRAM_ID as lB}from"@solana/spl-token";import{SystemProgram as fB,TransactionInstruction as yB}from"@solana/web3.js";import Ma from"bn.js";var Yh=Buffer.from("vault_auth_seed","utf8"),Hh=Buffer.from("global_config","utf8"),Qh=Buffer.from("pool_vesting","utf8"),Zh=Buffer.from("platform_config","utf8"),$h=Buffer.from("platform_fee_vault_auth_seed","utf8"),jh=Buffer.from("creator_fee_vault_auth_seed","utf8"),Jh=Buffer.from("platform_global_access","utf8"),eB=Buffer.from("platform_allow_config","utf8"),tB=Buffer.from("platform_curve_rule","utf8");var PB={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 AB=new Ma("18446744073709551615");var Fa=f([t(),t("epoch"),d("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"),A(t(),16)]),va=f([t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod"),t("startTime"),t("totalAllocatedShare")]),_a=f([t(),t("epoch"),d("bump"),d("status"),d("mintDecimalsA"),d("mintDecimalsB"),d("migrateType"),t("supply"),t("totalSellA"),t("virtualA"),t("virtualB"),t("realA"),t("realB"),t("totalFundRaisingB"),t("protocolFee"),t("platformFee"),t("migrateFee"),va.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),d("mintProgramFlag"),d("cpmmCreatorFeeOn"),t("platformVestingShare"),A(d(),54)]),hB=f([t(),t("epoch"),r("poolId"),r("beneficiary"),t("claimedAmount"),t("tokenShareAmount"),A(t(),8)]),Va=f([d("migrateType"),d("migrateCpmmFeeOn"),t("supply"),t("totalSellA"),t("totalFundRaisingB"),t("totalLockedAmount"),t("cliffPeriod"),t("unlockPeriod")]),BB=f([t("epoch"),d("index"),r("configId"),Va.replicate("bondingCurveParam"),A(t(),50)]),Ko=f([t(),t("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),t("platformScale"),t("creatorScale"),t("burnScale"),t("feeRate"),A(d(),64,"name"),A(d(),256,"web"),A(d(),256,"img"),r("cpConfigId"),t("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),t("platformVestingScale"),r("platformCpCreator"),d("restrictGlobalConfig"),d("restrictCurveParam"),r("curveRuleManager"),A(d(),78)]),Ea=f([d("field"),d("op"),N("value")]),Da=f([H("groupId"),t("epoch"),en(Ea,"constraints")]),Wa=f([t(),d("bump"),d("version"),r("platformId"),r("configId"),t("epoch"),A(t(),8),en(Da,"groups")]);import{TOKEN_2022_PROGRAM_ID as SB,TOKEN_PROGRAM_ID as KB}from"@solana/spl-token";import qa from"bn.js";var DB=new qa(1e6);import GB from"bn.js";import XB from"decimal.js";import BI from"bn.js";import xI from"decimal.js";import jB from"bn.js";import eI from"decimal.js";import lI from"bn.js";import dI from"decimal.js";import Lo from"bn.js";import gn from"decimal.js";var Nt=class{static _multipler(e){return new gn(10).pow(e)}static getPrice({priceX64:e,decimalA:n,decimalB:o}){return new gn(e.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(o))}static getPriceX64({price:e,decimalA:n,decimalB:o}){let a=e.mul(this._multipler(o)).div(this._multipler(n));return new Lo(a.mul(this._Q64).toFixed(0))}};Nt._Q64=new gn(new Lo(1).shln(64).toString());import{NATIVE_MINT as Wx,TOKEN_2022_PROGRAM_ID as qx,TOKEN_PROGRAM_ID as Ux,createAssociatedTokenAccountIdempotentInstruction as zx,createSyncNativeInstruction as Xx,getTransferFeeConfig as Yx,unpackMint as Hx}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as Qa,SystemProgram as $x}from"@solana/web3.js";import iS from"decimal.js";var rS={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 Qa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},aS=new Q(1e4);var Za={[Wn.toBase58()]:3};var $a=f([v(5),v(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"),v(7)]);import{PublicKey as RS}from"@solana/web3.js";var FS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as GS,TOKEN_2022_PROGRAM_ID as zS,TOKEN_PROGRAM_ID as XS}from"@solana/spl-token";import{PublicKey as HS,SystemProgram as QS,TransactionInstruction as ZS}from"@solana/web3.js";import jS from"bn.js";var eC=new ja(0);import{PublicKey as Ja,Transaction as Pn,TransactionInstruction as es}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ts}from"@solana/spl-token";import Oo from"bn.js";var te=class extends oe{static getPdaPoolId(e,n){return le([te.SEED_CONFIG.pool.id,n.toBuffer()],e)}static getPdaOwnerId(e,n,o,a){return le([te.SEED_CONFIG.owner.id,n.toBuffer(),o.toBuffer(),Buffer.from(new Oo(a).toArray())],e)}static async getAllInfo({connection:e,programId:n,poolIds:o,wallet:a,chainTime:s}){if(o.length===0)return[];let l=o.map(y=>te.getPdaPoolId(n,y).publicKey),m=[];for(let y=0;y<te.VERSION_PROJECT.length;y++)m.push(...l.map(b=>te.getPdaOwnerId(n,b,a,y).publicKey));let p=await be(e,[...l,...m]),g=[];for(let y=0;y<p.length;y++){let b=Math.floor(y/o.length),T=y%o.length,w=l[T],k=m[y],h=p[T],B=p[o.length+y];if(!(h&&B)||h.data.length!==te.POOL_LAYOUT.span||B.data.length!==te.OWNER_LAYOUT.span)continue;let K=te.POOL_LAYOUT.decode(h.data),I=te.OWNER_LAYOUT.decode(B.data),R=K.openTime.toNumber(),F=K.endTime.toNumber(),P=I.tokenInfo.map(O=>O.debtAmount.gt(new Oo(0))).filter(O=>!O).length!==3,x=s>R&&s<F&&K.status===1,S=P&&x;g.push({programId:n,poolId:w,ammId:K.ammId,ownerAccountId:k,snapshotLpAmount:I.lpAmount,project:te.VERSION_PROJECT[b],openTime:R,endTime:F,canClaim:S,canClaimErrorType:P?x?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:K.tokenInfo.map((O,M)=>({mintAddress:O.mintAddress,mintVault:O.mintVault,mintDecimals:O.mintDecimals,perLpLoss:O.perLpLoss,debtAmount:I.tokenInfo[M].debtAmount.add(I.tokenInfo[M].claimedAmount)}))})}return g}async makeClaimTransaction({poolInfo:e,ownerInfo:n,feePayer:o}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(o),s=n.wallet||this.scope.ownerPubKey,l=[];for(let g of e.tokenInfo){let{account:y,instructionParams:b}=await this.scope.account.getOrCreateTokenAccount({mint:g.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:g.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:s,amount:0},skipCloseAccount:!g.mintAddress.equals(ee.WSOL.mint),associatedOnly:g.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});b&&a.addInstruction(b),l.push(y)}a.addInstruction({instructions:[te.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:s,ownerPda:e.ownerAccountId,claimAddress:l}})]});let{transaction:m,signers:p}=a.build();return[{transaction:m,signer:p}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:n,feePayer:o}){let a=this.createTxBuilder(o),s=n.wallet||this.scope.ownerPubKey,l={};for(let y of e){let b=[];for(let T of y.tokenInfo){let{account:w,instructionParams:k}=await this.scope.account.getOrCreateTokenAccount({mint:T.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:T.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:s,amount:0},skipCloseAccount:!T.mintAddress.equals(ee.WSOL.mint),associatedOnly:T.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});k&&a.addInstruction(k),w&&(l[T.mintAddress.toString()]=w,b.push(w))}a.addInstruction({instructions:[te.makeClaimInstruction({programId:y.programId,poolInfo:y,ownerInfo:{wallet:s,ownerPda:y.ownerAccountId,claimAddress:b}})]})}let{transaction:m,signers:p}=a.build(),g=a.allInstructions;return Gt(g,[s,...p.map(y=>y.publicKey)])?[{transaction:m,signer:p}]:[{transaction:new Pn().add(...g.slice(0,a.AllTxData.instructions.length-1)),signer:p},{transaction:new Pn().add(...g.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new Pn().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:n,ownerInfo:o}){let a=f([]),s=[{pubkey:o.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:o.ownerPda,isSigner:!1,isWritable:!0},...o.claimAddress.map(p=>({pubkey:p,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:p})=>({pubkey:p,isSigner:!1,isWritable:!0})),{pubkey:ts,isSigner:!1,isWritable:!1}],l=Buffer.alloc(a.span);a.encode({},l);let m=Buffer.from([10,66,208,184,161,6,191,98,...l]);return new es({keys:s,programId:e,data:m})}},pe=te;pe.CLAIMED_NUM=3,pe.POOL_LAYOUT=f([v(8),d("bump"),d("status"),t("openTime"),t("endTime"),r("ammId"),A(f([d("mintDecimals"),r("mintAddress"),r("mintVault"),t("perLpLoss"),t("totalClaimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),A(t(),10,"padding")]),pe.OWNER_LAYOUT=f([v(8),d("bump"),d("version"),r("poolId"),r("owner"),t("lpAmount"),A(f([r("mintAddress"),t("debtAmount"),t("claimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),A(t(),4,"padding")]),pe.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new Ja(e)),pe.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},pe.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as gC}from"@solana/web3.js";import{getTransferFeeConfig as AC,MintLayout as wC,TOKEN_2022_PROGRAM_ID as kC,TOKEN_PROGRAM_ID as TC,unpackMint as hC}from"@solana/spl-token";var ZR=new Ke(2),$R=new Ke(3),jR=new Ke(5),Ho=new Ke(10),JR=new Ke(100),eL=new Ke(1e3),tL=new Ke(1e4);function Vt(i,e=1,n=[]){let o=[...i];if(e<=0)return n;for(;o.length;)n.push(o.splice(0,e));return n}import{AccountLayout as Xe,createAssociatedTokenAccountIdempotentInstruction as An,TOKEN_PROGRAM_ID as we,TOKEN_2022_PROGRAM_ID as os}from"@solana/spl-token";var Mt=class extends oe{constructor(n){super(n);this._tokenAccounts=[];this._tokenAccountRawInfos=[];this._accountListener=[];this._clientOwnedToken=!1;this._notSubscribeAccountChange=!1;this._accountFetchTime=0;let{tokenAccounts:o,tokenAccountRawInfos:a,notSubscribeAccountChange:s}=n;this._tokenAccounts=o||[],this._tokenAccountRawInfos=a||[],this._notSubscribeAccountChange=s!=null?s:!0,this._clientOwnedToken=!!(o||a)}get tokenAccounts(){return this._tokenAccounts}get tokenAccountRawInfos(){return this._tokenAccountRawInfos}set notSubscribeAccountChange(n){this._notSubscribeAccountChange=n}updateTokenAccount({tokenAccounts:n,tokenAccountRawInfos:o}){return n&&(this._tokenAccounts=n),o&&(this._tokenAccountRawInfos=o),this._accountChangeListenerId&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId),this._accountChangeListenerId=void 0,this._clientOwnedToken=!0,this}addAccountChangeListener(n){return this._accountListener.push(n),this}removeAccountChangeListener(n){return this._accountListener=this._accountListener.filter(o=>o!==n),this}getAssociatedTokenAccount(n,o){return ae(this.scope.ownerPubKey,n,o).publicKey}resetTokenAccounts(){this._clientOwnedToken||(this._tokenAccounts=[],this._tokenAccountRawInfos=[])}async fetchWalletTokenAccounts(n){if(this._clientOwnedToken||!(n!=null&&n.forceUpdate)&&this._tokenAccounts.length&&Date.now()-this._accountFetchTime<(this._notSubscribeAccountChange?1e3*5:1e3*60*3))return{tokenAccounts:this._tokenAccounts,tokenAccountRawInfos:this._tokenAccountRawInfos};this.scope.checkOwner();let a=L(L({},{}),n),[s,l,m]=await Promise.all([this.scope.connection.getAccountInfo(this.scope.ownerPubKey,a.commitment),this.scope.connection.getTokenAccountsByOwner(this.scope.ownerPubKey,{programId:we},a.commitment),this.scope.connection.getTokenAccountsByOwner(this.scope.ownerPubKey,{programId:os},a.commitment)]),{tokenAccounts:p,tokenAccountRawInfos:g}=ro({owner:this.scope.ownerPubKey,solAccountResp:s,tokenAccountResp:{context:l.context,value:[...l.value,...m.value]}});return this._tokenAccounts=p,this._tokenAccountRawInfos=g,this._accountFetchTime=Date.now(),this._notSubscribeAccountChange||(this._accountChangeListenerId&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId),this._accountChangeListenerId=this.scope.connection.onAccountChange(this.scope.ownerPubKey,()=>{this.fetchWalletTokenAccounts({forceUpdate:!0}),this._accountListener.forEach(y=>y({tokenAccounts:this._tokenAccounts,tokenAccountRawInfos:this._tokenAccountRawInfos}))},{commitment:n==null?void 0:n.commitment})),{tokenAccounts:p,tokenAccountRawInfos:g}}clearAccountChangeCkb(){this._accountChangeListenerId!==void 0&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId)}async getCreatedTokenAccount({mint:n,programId:o=we,associatedOnly:a=!0}){await this.fetchWalletTokenAccounts();let s=this._tokenAccounts.filter(({mint:m})=>m==null?void 0:m.equals(n)).sort((m,p)=>m.amount.lt(p.amount)?1:-1),l=this.getAssociatedTokenAccount(n,o);for(let m of s){let{publicKey:p}=m;if(p&&(!a||a&&l.equals(p)))return p}}async getOrCreateTokenAccount(n){var h,B,K,I;await this.fetchWalletTokenAccounts();let{mint:o,createInfo:a,associatedOnly:s,owner:l,notUseTokenAccount:m=!1,skipCloseAccount:p=!1,checkCreateATAOwner:g=!1,assignSeed:y}=n,b=new Ft(n.tokenProgram||we),T=this.getAssociatedTokenAccount(o,new Ft(b)),w=(m?[]:this.tokenAccountRawInfos).filter(R=>R.accountInfo.mint.equals(o)&&(!s||R.pubkey.equals(T))).sort((R,F)=>R.accountInfo.amount.lt(F.accountInfo.amount)?1:-1);if(a===void 0||w.length>0)return w.length>0?{account:w[0].pubkey}:{};let k={instructions:[],endInstructions:[],signers:[],instructionTypes:[],endInstructionTypes:[]};if(s){let R=An(a.payer||l,T,l,o,b),F=this.tokenAccountRawInfos.find(P=>P.pubkey.equals(T));if(g){let P=await this.scope.connection.getAccountInfo(T);if(P===null)(h=k.instructions)==null||h.push(R),k.instructionTypes.push(W.CreateATA);else if(!(P.owner.equals(b)&&Xe.decode(P.data).mint.equals(o)&&Xe.decode(P.data).owner.equals(l)))throw Error(`create ata check error -> mint: ${o.toString()}, ata: ${T.toString()}`)}else F===void 0&&(k.instructions.push(R),k.instructionTypes.push(W.CreateATA));if(o.equals(re)&&a.amount){let P=await nt({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:a.payer||this.scope.ownerPubKey,amount:(B=a.amount)!=null?B:0,skipCloseAccount:p});k.instructions.push(...P.instructions||[]),k.endInstructions.push(...P.endInstructions||[]),k.instructionTypes.push(...P.instructionTypes||[]),k.endInstructionTypes.push(...P.endInstructionTypes||[]),a.amount&&(k.instructions.push(ao({source:P.addresses.newAccount,destination:T,owner:this.scope.ownerPubKey,amount:a.amount,tokenProgram:we})),k.instructionTypes.push(W.TransferAmount))}return!p&&F===void 0&&(k.endInstructions.push(Me({owner:l,destination:l,tokenAccount:T,programId:b})),k.endInstructionTypes.push(W.CloseAccount)),{account:T,instructionParams:k}}else{let R=xe({fromPublicKey:l,programId:b,assignSeed:y}),F=await this.scope.connection.getMinimumBalanceForRentExemption(Xe.span),P=ns.createAccountWithSeed({fromPubkey:l,basePubkey:l,seed:R.seed,newAccountPubkey:R.publicKey,lamports:F+Number((I=(K=a.amount)==null?void 0:K.toString())!=null?I:0),space:Xe.span,programId:b});return k.instructions.push(P,tn({mint:o,tokenAccount:R.publicKey,owner:this.scope.ownerPubKey,programId:b})),k.instructionTypes.push(W.CreateAccount),k.instructionTypes.push(W.InitAccount),p||(k.endInstructions.push(Me({owner:l,destination:l,tokenAccount:R.publicKey,programId:b})),k.endInstructionTypes.push(W.CloseAccount)),{account:R.publicKey,instructionParams:k}}}async checkOrCreateAta({mint:n,programId:o=we,autoUnwrapWSOLToSOL:a}){var p;await this.fetchWalletTokenAccounts();let s=(p=this.scope.account.tokenAccounts.find(({mint:g})=>(g==null?void 0:g.toBase58())===n.toBase58()))==null?void 0:p.publicKey,l=this.scope.ownerPubKey,m={};if(!s){let g=this.getAssociatedTokenAccount(n,o),y=await An(l,g,l,n,o);m.instructions=[y],m.instructionTypes=[W.CreateATA],s=g}return a&&re.toBase58()===n.toBase58()&&(m.endInstructions=[Me({owner:l,destination:l,tokenAccount:s,programId:o})],m.endInstructionTypes=[W.CloseAccount]),{pubKey:s,newInstructions:m}}async handleTokenAccount(n){let{side:o,amount:a,mint:s,programId:l=we,tokenAccount:m,payer:p=this.scope.ownerPubKey,bypassAssociatedCheck:g,skipCloseAccount:y,checkCreateATAOwner:b}=n,T=this.getAssociatedTokenAccount(s,l);if(new Ft(re).equals(s)){let w=await nt({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:p,amount:a,skipCloseAccount:y});return L({tokenAccount:w.addresses.newAccount},w)}else if(!m||o==="out"&&!T.equals(m)&&!g){let w=[],k=An(this.scope.ownerPubKey,T,this.scope.ownerPubKey,s,l);if(b){let h=await this.scope.connection.getAccountInfo(T);if(h===null)w.push(k);else if(!(h.owner.equals(we)&&Xe.decode(h.data).mint.equals(s)&&Xe.decode(h.data).owner.equals(this.scope.ownerPubKey)))throw Error(`create ata check error -> mint: ${s.toString()}, ata: ${T.toString()}`)}else w.push(k);return{tokenAccount:T,instructions:w,instructionTypes:[W.CreateATA]}}return{tokenAccount:m}}async processTokenAccount(n){let{mint:o,programId:a=we,amount:s,useSOLBalance:l,handleTokenAccount:m,feePayer:p}=n,g,y=this.createTxBuilder(p);if(o.equals(new Ft(re))&&l){let b=await this.handleTokenAccount({side:"in",amount:s||0,mint:o,bypassAssociatedCheck:!0,programId:a}),{tokenAccount:w}=b,k=se(b,["tokenAccount"]);g=w,y.addInstruction(k)}else if(g=await this.getCreatedTokenAccount({mint:o,associatedOnly:!1,programId:a}),!g&&m){let T=await this.scope.account.handleTokenAccount({side:"in",amount:0,mint:o,bypassAssociatedCheck:!0,programId:a}),{tokenAccount:w}=T,k=se(T,["tokenAccount"]);g=w,y.addInstruction(k)}return L({tokenAccount:g},y.AllTxData)}};export{Mt as default};
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
//# sourceMappingURL=account.mjs.map