UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

3 lines 176 kB
var Ia=Object.create;var Jt=Object.defineProperty,xa=Object.defineProperties,Sa=Object.getOwnPropertyDescriptor,Ka=Object.getOwnPropertyDescriptors,Ca=Object.getOwnPropertyNames,Pn=Object.getOwnPropertySymbols,Ra=Object.getPrototypeOf,$n=Object.prototype.hasOwnProperty,ki=Object.prototype.propertyIsEnumerable;var wi=(i,e,t)=>e in i?Jt(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,v=(i,e)=>{for(var t in e||(e={}))$n.call(e,t)&&wi(i,t,e[t]);if(Pn)for(var t of Pn(e))ki.call(e,t)&&wi(i,t,e[t]);return i},G=(i,e)=>xa(i,Ka(e));var Ce=(i,e)=>{var t={};for(var n in i)$n.call(i,n)&&e.indexOf(n)<0&&(t[n]=i[n]);if(i!=null&&Pn)for(var n of Pn(i))e.indexOf(n)<0&&ki.call(i,n)&&(t[n]=i[n]);return t};var La=(i,e)=>{for(var t in e)Jt(i,t,{get:e[t],enumerable:!0})},Ti=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ca(e))!$n.call(i,o)&&o!==t&&Jt(i,o,{get:()=>e[o],enumerable:!(n=Sa(e,o))||n.enumerable});return i};var F=(i,e,t)=>(t=i!=null?Ia(Ra(i)):{},Ti(e||!i||!i.__esModule?Jt(t,"default",{value:i,enumerable:!0}):t,i)),Oa=i=>Ti(Jt({},"__esModule",{value:!0}),i);var _c={};La(_c,{default:()=>gn});module.exports=Oa(_c);var pe=require("@solana/web3.js"),he=require("@solana/spl-token");var ka=require("@solana/web3.js");var Tt=F(require("bn.js")),vc=F(require("decimal.js"));var Ci=F(require("big.js")),rn=F(require("bn.js"));var en=require("lodash");var jn=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(n=>typeof n=="object"?JSON.stringify(n):n).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},hi={},Na={};function Q(i){let e=(0,en.get)(hi,i);if(!e){let t=(0,en.get)(Na,i);e=new jn({name:i,logLevel:t}),(0,en.set)(hi,i,e)}return e}var Bi=F(require("toformat")),Ma=Bi.default,tn=Ma;var nn=F(require("big.js")),xi=F(require("bn.js")),Si=F(require("decimal.js-light"));var Wt=F(require("bn.js"));var Ii=9007199254740991;function ee(i){let e=Q("Raydium_parseBigNumberish");if(i instanceof Wt.default)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Wt.default(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=Ii||i<=-Ii)&&e.logWithError(`BigNumberish number overflow: ${i}`),new Wt.default(String(i))):typeof i=="bigint"?new Wt.default(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new Wt.default(0))}var An=Q("module/fraction"),Jn=tn(nn.default),on=tn(Si.default),va={[0]:on.ROUND_DOWN,[1]:on.ROUND_HALF_UP,[2]:on.ROUND_UP},_a={[0]:nn.default.roundDown,[1]:nn.default.roundHalfUp,[2]:nn.default.roundUp},te=class{constructor(e,t=new xi.default(1)){this.numerator=ee(e),this.denominator=ee(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new te(this.denominator,this.numerator)}add(e){let t=e instanceof te?e:new te(ee(e));return this.denominator.eq(t.denominator)?new te(this.numerator.add(t.numerator),this.denominator):new te(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof te?e:new te(ee(e));return this.denominator.eq(t.denominator)?new te(this.numerator.sub(t.numerator),this.denominator):new te(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof te?e:new te(ee(e));return new te(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof te?e:new te(ee(e));return new te(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||An.logWithError(`${e} is not an integer.`),e<=0&&An.logWithError(`${e} is not positive.`),on.set({precision:e+1,rounding:va[n]});let o=new on(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||An.logWithError(`${e} is not an integer.`),e<0&&An.logWithError(`${e} is negative.`),Jn.DP=e,Jn.RM=_a[n]||1,new Jn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Va=Q("Raydium_amount"),Ki=tn(Ci.default);function Ea(i,e){let t="0",n="0";if(i.includes(".")){let o=i.split(".");o.length===2?([t,n]=o,n=n.padEnd(e,"0")):Va.logWithError(`invalid number string, num: ${i}`)}else t=i;return[t,n.slice(0,e)||n]}var Re=class extends te{constructor(t,n,o=!0,u){let r=new rn.default(0),a=eo.pow(new rn.default(t.decimals));if(o)r=ee(n);else{let c=new rn.default(0),d=new rn.default(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[l,m]=Ea(n.toString(),t.decimals);c=ee(l),d=ee(m)}c=c.mul(a),r=c.add(d)}super(r,a);this.logger=Q(u||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new Re(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new Re(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,o=0){return super.toSignificant(t,n,o)}toFixed(t=this.token.decimals,n,o=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,o)}toExact(t={groupSeparator:""}){return Ki.DP=this.token.decimals,new Ki(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};var Ri=require("@solana/web3.js"),to=require("@solana/spl-token"),wn={chainId:101,address:Ri.PublicKey.default.toBase58(),programId:to.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ot={chainId:101,address:"So11111111111111111111111111111111111111112",programId:to.TOKEN_PROGRAM_ID.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"}};var kn=require("@solana/web3.js");var ie=require("@solana/web3.js"),Li=require("@solana/spl-token");function I({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var Da=[I({pubkey:Li.TOKEN_PROGRAM_ID,isWritable:!1}),I({pubkey:ie.SystemProgram.programId,isWritable:!1}),I({pubkey:ie.SYSVAR_RENT_PUBKEY,isWritable:!1})];function no({publicKey:i,transformSol:e}){let t=oo(i.toString());if(t instanceof ie.PublicKey)return e&&t.equals(Bt)?Ye:t;if(e&&t.toString()===Bt.toBase58())return Ye;if(typeof t=="string"){if(t===ie.PublicKey.default.toBase58())return ie.PublicKey.default;try{return new ie.PublicKey(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function oo(i){try{return new ie.PublicKey(i)}catch{return i}}var yt=new ie.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),De=new ie.PublicKey("SysvarRent111111111111111111111111111111111"),rl=new ie.PublicKey("SysvarC1ock11111111111111111111111111111111"),bt=new ie.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Wa=new ie.PublicKey("Sysvar1nstructions1111111111111111111111111"),qa=ie.SystemProgram.programId,al=new ie.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),sl=new ie.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ul=new ie.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),cl=new ie.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ll=new ie.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ml=new ie.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),dl=new ie.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),pl=new ie.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),fl=new ie.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),yl=new ie.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),bl=new ie.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ye=new ie.PublicKey("So11111111111111111111111111111111111111112"),Bt=ie.PublicKey.default;function It(i){return no({publicKey:i,transformSol:!0})}var io=class{constructor({mint:e,decimals:t,symbol:n,name:o,skipMint:u=!1,isToken2022:r=!1}){if(e===Bt.toBase58()||e instanceof kn.PublicKey&&Bt.equals(e)){this.decimals=ot.decimals,this.symbol=ot.symbol,this.name=ot.name,this.mint=new kn.PublicKey(ot.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=u?kn.PublicKey.default:no({publicKey:e}),this.isToken2022=r}equals(e){return this===e?!0:this.mint.equals(e.mint)}},be=io;be.WSOL=new io(G(v({},ot),{mint:ot.address}));var ro=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},Tn=ro;Tn.SOL=new ro(wn);var Ni=F(require("bn.js"));var Oi=new te(new Ni.default(100)),He=class extends te{toSignificant(e=5,t,n){return this.mul(Oi).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(Oi).toFixed(e,t,n)}};var Ua=Q("Raydium_price"),Qe=class extends te{constructor(t){let{baseToken:n,quoteToken:o,numerator:u,denominator:r}=t;super(u,r);this.baseToken=n,this.quoteToken=o,this.scalar=new te(ao(n.decimals),ao(o.decimals))}get raw(){return new te(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Qe({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Ua.logWithError("mul token not equals");let n=super.mul(t);return new Qe({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,o){return this.adjusted.toSignificant(t,n,o)}toFixed(t=this.quoteToken.decimals,n,o){return this.adjusted.toFixed(t,n,o)}};var Fc=require("lodash");var za=F(require("axios"));var Mi={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"},Ga=G(v({},Mi),{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 rm=Q("Raydium_Api");var er=require("@solana/web3.js");var vn=require("@solana/spl-token");var ne=require("@solana/web3.js"),Vi=F(require("axios"));var Ze=require("@solana/web3.js");async function so({connection:i,address:e,cluster:t="mainnet"}){let n=await $e(i,[...new Set(e.map(u=>u.toString()))].map(u=>new Ze.PublicKey(u))),o={};for(let u=0;u<e.length;u++){let r=n[u],a=e[u];if(!r)continue;let c=new Ze.AddressLookupTableAccount({key:a,state:Ze.AddressLookupTableAccount.deserialize(r.data)});o[a.toString()]=c,t==="devnet"?Ut[a.toString()]=c:qt[a.toString()]=c}return o}var qt={},uo=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(qt[e])return qt;let t=new Ze.PublicKey(e),n=await i.getAccountInfo(t);return n&&(qt[e]=new Ze.AddressLookupTableAccount({key:t,state:Ze.AddressLookupTableAccount.deserialize(n.data)})),qt},Ut={},co=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ut[e])return Ut;let t=new Ze.PublicKey(e),n=await i.getAccountInfo(t);return n&&(Ut[e]=new Ze.AddressLookupTableAccount({key:t,state:Ze.AddressLookupTableAccount.deserialize(n.data)})),Ut};var _={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"};var Le=require("@solana/web3.js");var vi=require("@solana/spl-token"),Fi=Q("Raydium_txUtil"),_i=1644;function hn(i){let e=[],t=[];return i.microLamports&&(e.push(Le.ComputeBudgetProgram.setComputeUnitPrice({microLamports:i.microLamports})),t.push(_.SetComputeUnitPrice)),i.units&&(e.push(Le.ComputeBudgetProgram.setComputeUnitLimit({units:i.units})),t.push(_.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Gt(i,e){var n,o;let t=e!=null?e:"confirmed";return(o=await((n=i.getLatestBlockhash)==null?void 0:n.call(i,{commitment:t})))==null?void 0:o.blockhash}async function Bn(i,e){return i.getSignatureStatuses([e]),new Promise((t,n)=>{let o=setTimeout(n,6e4);i.onSignature(e,u=>{if(clearTimeout(o),!u.err){t("");return}n(Object.assign(u.err,{txId:e}))},"confirmed")})}function lo(i,e){i.length<1&&Fi.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&Fi.logWithError(`no signers provided:, ${e.toString()}`);let t=new Le.Transaction;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<_i}catch{return!1}}function oe(i,e){let[t,n]=Le.PublicKey.findProgramAddressSync(i,e);return{publicKey:t,nonce:n}}function an({instructions:i,payer:e,signers:t}){return lo(i,[e,...t])}function sn({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=Le.Keypair.generate().publicKey.toString()}){let u=new Le.TransactionMessage({payerKey:e,recentBlockhash:n,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Le.VersionedTransaction(u).serialize()).toString("base64").length<_i}catch{return!1}}var Xa=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Ya=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Le.VersionedTransaction&&(e=Xa(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function xt(i){let e=[];return i.forEach(t=>{t instanceof Le.Transaction&&(t.recentBlockhash||(t.recentBlockhash=vi.TOKEN_PROGRAM_ID.toBase58()),t.feePayer||(t.feePayer=Le.Keypair.generate().publicKey)),e.push(Ya(t))}),console.log("simulate tx string:",e),e}var In=2e3,xn=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var n;let e=(await Vi.default.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(n=e==null?void 0:e[15])!=null?n:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:n}=hn(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(ne.SystemProgram.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new ne.PublicKey(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(_.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:o=[],endInstructionTypes:u=[],lookupTableAddress:r=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...o),this.endInstructionTypes.push(...u),this.lookupTableAddress.push(...r.filter(a=>a!==ne.PublicKey.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(G(v({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new ne.Transaction;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var l;let{recentBlockHash:u,skipPreflight:r=!0,sendAndConfirm:a,notSendToRpc:c}=o||{},d=u!=null?u:await Gt(this.connection,this.blockhashCommitment);if(t.recentBlockhash=d,this.signers.length&&t.sign(...this.signers),xt([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await(0,ne.sendAndConfirmTransaction)(this.connection,t,this.signers.find(f=>f.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:r}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:r}),signedTx:t};if(this.signAllTransactions){let m=await this.signAllTransactions([t]);if(this.signers.length)for(let f of m)try{f.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(m[0].serialize(),{skipPreflight:r}),signedTx:m[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var d;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:o}=this.build(n),u=t.filter(l=>l.transaction.instructions.length>0),r=[o,...u.map(l=>l.transaction)],a=[this.signers,...u.map(l=>l.signers)],c=[...this.instructionTypes,...u.map(l=>l.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&a.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:r,signers:a,instructionTypes:c,execute:async l=>{var A;let{sequentially:m,onTxUpdate:f,skipTxCount:p=0,recentBlockHash:y,skipPreflight:b=!0}=l||{},g=y!=null?y:await Gt(this.connection,this.blockhashCommitment);if((A=this.owner)!=null&&A.isKeyPair){if(m){let w=[],B=0;for(let L of r){if(++B,B<=p)continue;let k=await(0,ne.sendAndConfirmTransaction)(this.connection,L,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:b});w.push(k)}return{txIds:w,signedTxs:r}}return{txIds:await await Promise.all(r.map(async w=>(w.recentBlockhash=g,await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:b})))),signedTxs:r}}if(this.signAllTransactions){let w=r.map((L,k)=>(L.recentBlockhash=g,a[k].length&&L.sign(...a[k]),L));xt(w);let B=await this.signAllTransactions(w);if(m){let L=0,k=[],x=async()=>{if(!B[L])return;let S=await this.connection.sendRawTransaction(B[L].serialize(),{skipPreflight:b});k.push({txId:S,status:"sent",signedTx:B[L]}),f==null||f([...k]),L++;let O=!1,N=null,K=null,z=U=>{N!==null&&clearInterval(N),K!==null&&this.connection.removeSignatureListener(K);let V=k.findIndex(H=>H.txId===S);if(V>-1){if(k[V].status==="error"||k[V].status==="success")return;k[V].status=U.err?"error":"success"}f==null||f([...k]),U.err||x()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var U;if(O){clearInterval(N);return}try{let V=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:1});V&&(O=!0,clearInterval(N),z({err:((U=V.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",S))}catch(V){O=!0,clearInterval(N),console.error("getTransaction timeout:",V,S)}},In)),K=this.connection.onSignature(S,U=>{if(O){this.connection.removeSignatureListener(K);return}O=!0,z(U)},"confirmed"),this.connection.getSignatureStatus(S)};return await x(),{txIds:k.map(S=>S.txId),signedTxs:B}}else{let L=[];for(let k=0;k<B.length;k+=1){let x=await this.connection.sendRawTransaction(B[k].serialize(),{skipPreflight:b});L.push(x)}return{txIds:L,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:n}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:n||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:n})}async buildV0(e){var b;let y=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:o,recentBlockhash:u}=y,r=Ce(y,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=v(v({},this.cluster==="devnet"?await co(this.connection):await uo(this.connection)),t),c=Array.from(new Set([...n,...this.lookupTableAddress])),d=[];for(let g of c)a[g]===void 0&&d.push(new ne.PublicKey(g));let l=await so({connection:this.connection,address:d});for(let[g,A]of Object.entries(l))a[g]=A;let m=o?ne.PublicKey.default.toBase58():u!=null?u:await Gt(this.connection,this.blockhashCommitment),f=new ne.TransactionMessage({payerKey:this.feePayer,recentBlockhash:m,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((b=this.owner)==null?void 0:b.signer)&&!this.signers.some(g=>g.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new ne.VersionedTransaction(f);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async g=>{var L;let{skipPreflight:A=!0,sendAndConfirm:w,notSendToRpc:B}=g||{};if(xt([p]),(L=this.owner)!=null&&L.isKeyPair){let k=await this.connection.sendTransaction(p,{skipPreflight:A});return w&&await Bn(this.connection,k),{txId:k,signedTx:p}}if(this.signAllTransactions){let k=await this.signAllTransactions([p]);if(this.signers.length)for(let x of k)try{x.sign(this.signers)}catch{}return{txId:B?"":await this.connection.sendTransaction(k[0],{skipPreflight:A}),signedTx:k[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async buildV0MultiTx(e){var d;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:o}=await this.buildV0(n),u=t.filter(l=>l.builder.instructions.length>0),r=[o,...u.map(l=>l.transaction)],a=[this.signers,...u.map(l=>l.signers)],c=[...this.instructionTypes,...u.map(l=>l.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&a.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),r.forEach(async(l,m)=>{l.sign(a[m])}),{builder:this,transactions:r,signers:a,instructionTypes:c,buildProps:n,execute:async l=>{var b;let{sequentially:m,onTxUpdate:f,recentBlockHash:p,skipPreflight:y=!0}=l||{};if(p&&r.forEach(g=>g.message.recentBlockhash=p),xt(r),(b=this.owner)!=null&&b.isKeyPair){if(m){let g=[];for(let A of r){let w=await this.connection.sendTransaction(A,{skipPreflight:y});await Bn(this.connection,w),g.push(w)}return{txIds:g,signedTxs:r}}return{txIds:await Promise.all(r.map(async g=>await this.connection.sendTransaction(g,{skipPreflight:y}))),signedTxs:r}}if(this.signAllTransactions){let g=await this.signAllTransactions(r);if(m){let A=0,w=[],B=async()=>{if(!g[A])return;let L=await this.connection.sendTransaction(g[A],{skipPreflight:y});w.push({txId:L,status:"sent",signedTx:g[A]}),f==null||f([...w]),A++;let k=!1,x=null,S=null,O=N=>{x!==null&&clearInterval(x),S!==null&&this.connection.removeSignatureListener(S);let K=w.findIndex(z=>z.txId===L);if(K>-1){if(w[K].status==="error"||w[K].status==="success")return;w[K].status=N.err?"error":"success"}f==null||f([...w]),N.err||B()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var N;if(k){clearInterval(x);return}try{let K=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:1});K&&(k=!0,clearInterval(x),O({err:((N=K.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",L))}catch(K){k=!0,clearInterval(x),console.error("getTransaction timeout:",K,L)}},In)),S=this.connection.onSignature(L,N=>{if(k){this.connection.removeSignatureListener(S);return}k=!0,O(N)},"confirmed"),this.connection.getSignatureStatus(L)};return B(),{txIds:[],signedTxs:g}}else{let A=[];for(let w=0;w<g.length;w+=1){let B=await this.connection.sendTransaction(g[w],{skipPreflight:y});A.push(B)}return{txIds:A,signedTxs:g}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var f;let m=e||{},{splitIns:t=[],computeBudgetConfig:n}=m,o=Ce(m,["splitIns","computeBudgetConfig"]),u=n?hn(n):{instructions:[],instructionTypes:[]},r=this.signers.reduce((p,y)=>G(v({},p),{[y.publicKey.toBase58()]:y}),{}),a=[],c=[],d=[],l=0;if(this.allInstructions.forEach(p=>{let y=[...d,p],b=n?[...u.instructions,...y]:y,A=[...new Set(y.map(w=>w.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(w=>new ne.PublicKey(w));if(p!==t[l]&&d.length<12&&(an({instructions:b,payer:this.feePayer,signers:A})||an({instructions:y,payer:this.feePayer,signers:A})))d.push(p);else{if(d.length===0)throw Error("item ins too big");l+=p===t[l]?1:0,an({instructions:n?[...u.instructions,...d]:[...d],payer:this.feePayer,signers:A})?a.push(new ne.Transaction().add(...u.instructions,...d)):a.push(new ne.Transaction().add(...d)),c.push(Array.from(new Set(d.map(w=>w.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat())).map(w=>r[w]).filter(w=>w!==void 0)),d=[p]}}),d.length>0){let y=[...new Set(d.map(b=>b.keys.filter(g=>g.isSigner).map(g=>g.pubkey.toString())).flat()).values()].map(b=>r[b]).filter(b=>b!==void 0);an({instructions:n?[...u.instructions,...d]:[...d],payer:this.feePayer,signers:y.map(b=>b.publicKey)})?a.push(new ne.Transaction().add(...u.instructions,...d)):a.push(new ne.Transaction().add(...d)),c.push(y)}return a.forEach(p=>p.feePayer=this.feePayer),(f=this.owner)!=null&&f.signer&&c.forEach(p=>{p.some(y=>y.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),{builder:this,transactions:a,signers:c,instructionTypes:this.instructionTypes,execute:async p=>{var L;let{sequentially:y,onTxUpdate:b,skipTxCount:g=0,recentBlockHash:A,skipPreflight:w=!0}=p||{},B=A!=null?A:await Gt(this.connection,this.blockhashCommitment);if(a.forEach(async(k,x)=>{k.recentBlockhash=B,c[x].length&&k.sign(...c[x])}),xt(a),(L=this.owner)!=null&&L.isKeyPair){if(y){let k=0,x=[];for(let S of a){if(++k,k<=g){x.push("tx skipped");continue}let O=await(0,ne.sendAndConfirmTransaction)(this.connection,S,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});x.push(O)}return{txIds:x,signedTxs:a}}return{txIds:await Promise.all(a.map(async k=>await this.connection.sendRawTransaction(k.serialize(),{skipPreflight:w}))),signedTxs:a}}if(this.signAllTransactions){let k=await this.signAllTransactions(a.slice(g,a.length)),x=[...a.slice(0,g),...k];if(y){let S=0,O=[],N=async()=>{if(!x[S])return;S<g&&(O.push({txId:"",status:"success",signedTx:x[S]}),b==null||b([...O]),S++,N());let K=await this.connection.sendRawTransaction(x[S].serialize(),{skipPreflight:w});O.push({txId:K,status:"sent",signedTx:x[S]}),b==null||b([...O]),S++;let z=!1,U=null,V=null,H=Y=>{U!==null&&clearInterval(U),V!==null&&this.connection.removeSignatureListener(V);let ce=O.findIndex(se=>se.txId===K);if(ce>-1){if(O[ce].status==="error"||O[ce].status==="success")return;O[ce].status=Y.err?"error":"success"}b==null||b([...O]),Y.err||N()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var Y;if(z){clearInterval(U);return}try{let ce=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:1});ce&&(z=!0,clearInterval(U),H({err:((Y=ce.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",K))}catch(ce){z=!0,clearInterval(U),console.error("getTransaction timeout:",ce,K)}},In)),V=this.connection.onSignature(K,Y=>{if(z){this.connection.removeSignatureListener(V);return}z=!0,H(Y)},"confirmed"),this.connection.getSignatureStatus(K)};return await N(),{txIds:O.map(K=>K.txId),signedTxs:x}}else{let S=[];for(let O=0;O<x.length;O+=1){let N=await this.connection.sendRawTransaction(x[O].serialize(),{skipPreflight:w});S.push(N)}return{txIds:S,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var L;let B=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:o={},lookupTableAddress:u=[],insCountLimit:r=12}=B,a=Ce(B,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=v(v({},this.cluster==="devnet"?await co(this.connection):await uo(this.connection)),o),d=Array.from(new Set([...this.lookupTableAddress,...u])),l=[];for(let k of d)c[k]===void 0&&l.push(new ne.PublicKey(k));let m=await so({connection:this.connection,address:l});for(let[k,x]of Object.entries(m))c[k]=x;let f=t?hn(t):{instructions:[],instructionTypes:[]},p=await Gt(this.connection,this.blockhashCommitment),y=this.signers.reduce((k,x)=>G(v({},k),{[x.publicKey.toBase58()]:x}),{}),b=[],g=[],A=[],w=0;if(this.allInstructions.forEach(k=>{let x=[...A,k],S=t?[...f.instructions,...x]:x;if(k!==n[w]&&A.length<r&&(sn({instructions:S,payer:this.feePayer,lookupTableAddressAccount:c})||sn({instructions:x,payer:this.feePayer,lookupTableAddressAccount:c})))A.push(k);else{if(A.length===0)throw Error("item ins too big");w+=k===n[w]?1:0;let O={};for(let N of[...new Set(d)])c[N]!==void 0&&(O[N]=c[N]);if(t&&sn({instructions:[...f.instructions,...A],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:p})){let N=new ne.TransactionMessage({payerKey:this.feePayer,recentBlockhash:p,instructions:[...f.instructions,...A]}).compileToV0Message(Object.values(c));b.push(new ne.VersionedTransaction(N))}else{let N=new ne.TransactionMessage({payerKey:this.feePayer,recentBlockhash:p,instructions:[...A]}).compileToV0Message(Object.values(c));b.push(new ne.VersionedTransaction(N))}g.push(Array.from(new Set(A.map(N=>N.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat())).map(N=>y[N]).filter(N=>N!==void 0)),A=[k]}}),A.length>0){let x=[...new Set(A.map(S=>S.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(S=>y[S]).filter(S=>S!==void 0);if(t&&sn({instructions:[...f.instructions,...A],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:p})){let S=new ne.TransactionMessage({payerKey:this.feePayer,recentBlockhash:p,instructions:[...f.instructions,...A]}).compileToV0Message(Object.values(c));b.push(new ne.VersionedTransaction(S))}else{let S=new ne.TransactionMessage({payerKey:this.feePayer,recentBlockhash:p,instructions:[...A]}).compileToV0Message(Object.values(c));b.push(new ne.VersionedTransaction(S))}g.push(x)}return(L=this.owner)!=null&&L.signer&&g.forEach(k=>{k.some(x=>x.publicKey.equals(this.owner.publicKey))||k.push(this.owner.signer)}),b.forEach((k,x)=>{k.sign(g[x])}),{builder:this,transactions:b,buildProps:e,signers:g,instructionTypes:this.instructionTypes,execute:async k=>{var z;let{sequentially:x,onTxUpdate:S,skipTxCount:O=0,recentBlockHash:N,skipPreflight:K=!0}=k||{};if(b.map(async(U,V)=>{g[V].length&&U.sign(g[V]),N&&(U.message.recentBlockhash=N)}),xt(b),(z=this.owner)!=null&&z.isKeyPair){if(x){let U=0,V=[];for(let H of b){if(++U,U<=O){console.log("skip tx: ",U),V.push("tx skipped");continue}let Y=await this.connection.sendTransaction(H,{skipPreflight:K});await Bn(this.connection,Y),V.push(Y)}return{txIds:V,signedTxs:b}}return{txIds:await Promise.all(b.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:K}))),signedTxs:b}}if(this.signAllTransactions){let U=await this.signAllTransactions(b.slice(O,b.length)),V=[...b.slice(0,O),...U];if(x){let H=0,Y=[],ce=async()=>{if(!V[H])return;if(H<O){Y.push({txId:"",status:"success",signedTx:V[H]}),S==null||S([...Y]),H++,ce();return}let se=await this.connection.sendTransaction(V[H],{skipPreflight:K});Y.push({txId:se,status:"sent",signedTx:V[H]}),S==null||S([...Y]),H++;let ke=!1,Ve=null,Xe=null,et=Ee=>{Ve!==null&&clearInterval(Ve),Xe!==null&&this.connection.removeSignatureListener(Xe);let Be=Y.findIndex(tt=>tt.txId===se);if(Be>-1){if(Y[Be].status==="error"||Y[Be].status==="success")return;Y[Be].status=Ee.err?"error":"success"}S==null||S([...Y]),Ee.err||ce()};this.loopMultiTxStatus&&(Ve=setInterval(async()=>{var Ee;if(ke){clearInterval(Ve);return}try{let Be=await this.connection.getTransaction(se,{commitment:"confirmed",maxSupportedTransactionVersion:1});Be&&(ke=!0,clearInterval(Ve),et({err:((Ee=Be.meta)==null?void 0:Ee.err)||null}),console.log("tx status from getTransaction:",se))}catch(Be){ke=!0,clearInterval(Ve),console.error("getTransaction timeout:",Be,se)}},In)),Xe=this.connection.onSignature(se,Ee=>{if(ke){this.connection.removeSignatureListener(Xe);return}ke=!0,et(Ee)},"confirmed"),this.connection.getSignatureStatus(se)};return ce(),{txIds:[],signedTxs:V}}else{let H=[];for(let Y=0;Y<V.length;Y+=1){let ce=await this.connection.sendTransaction(V[Y],{skipPreflight:K});H.push(ce)}return{txIds:H,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};var mo=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),Ne=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=Q(t)}createTxBuilder(e){return this.scope.checkOwner(),new xn({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(mo(e))}logInfo(...e){this.logger.info(mo(e))}logAndCreateError(...e){let t=mo(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var ji=require("@solana/web3.js"),ns=F(require("bn.js"));var Fn=require("@solana/spl-token");var Mn=require("@solana/web3.js"),es=F(require("bn.js"));var $i=require("@solana/spl-token");function Ha(i){return i instanceof Uint8Array||i!=null&&typeof i=="object"&&i.constructor.name==="Uint8Array"}function po(i,...e){if(!Ha(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 fo(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 Ei(i,e){po(i);let t=e.outputLen;if(i.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var Kn=i=>new DataView(i.buffer,i.byteOffset,i.byteLength),je=(i,e)=>i<<32-e|i>>>e;var Um=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Qa(i){if(typeof i!="string")throw new Error(`utf8ToBytes expected string, got ${typeof i}`);return new Uint8Array(new TextEncoder().encode(i))}function yo(i){return typeof i=="string"&&(i=Qa(i)),po(i),i}var Sn=class{clone(){return this._cloneInto()}},Gm={}.toString;function Di(i){let e=n=>i().update(yo(n)).digest(),t=i();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>i(),e}function Za(i,e,t,n){if(typeof i.setBigUint64=="function")return i.setBigUint64(e,t,n);let o=BigInt(32),u=BigInt(4294967295),r=Number(t>>o&u),a=Number(t&u),c=n?4:0,d=n?0:4;i.setUint32(e+c,r,n),i.setUint32(e+d,a,n)}var Wi=(i,e,t)=>i&e^~i&t,qi=(i,e,t)=>i&e^i&t^e&t,Cn=class extends Sn{constructor(e,t,n,o){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Kn(this.buffer)}update(e){fo(this);let{view:t,buffer:n,blockLen:o}=this;e=yo(e);let u=e.length;for(let r=0;r<u;){let a=Math.min(o-this.pos,u-r);if(a===o){let c=Kn(e);for(;o<=u-r;r+=o)this.process(c,r);continue}n.set(e.subarray(r,r+a),this.pos),this.pos+=a,r+=a,this.pos===o&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){fo(this),Ei(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:u}=this,{pos:r}=this;t[r++]=128,this.buffer.subarray(r).fill(0),this.padOffset>o-r&&(this.process(n,0),r=0);for(let m=r;m<o;m++)t[m]=0;Za(n,o-8,BigInt(this.length*8),u),this.process(n,0);let a=Kn(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let d=c/4,l=this.get();if(d>l.length)throw new Error("_sha2: outputLen bigger than state");for(let m=0;m<d;m++)a.setUint32(4*m,l[m],u)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:n,length:o,finished:u,destroyed:r,pos:a}=this;return e.length=o,e.pos=a,e.finished=u,e.destroyed=r,o%t&&e.buffer.set(n),e}};var $a=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]),gt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Pt=new Uint32Array(64),bo=class extends Cn{constructor(){super(64,32,8,!1),this.A=gt[0]|0,this.B=gt[1]|0,this.C=gt[2]|0,this.D=gt[3]|0,this.E=gt[4]|0,this.F=gt[5]|0,this.G=gt[6]|0,this.H=gt[7]|0}get(){let{A:e,B:t,C:n,D:o,E:u,F:r,G:a,H:c}=this;return[e,t,n,o,u,r,a,c]}set(e,t,n,o,u,r,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=u|0,this.F=r|0,this.G=a|0,this.H=c|0}process(e,t){for(let m=0;m<16;m++,t+=4)Pt[m]=e.getUint32(t,!1);for(let m=16;m<64;m++){let f=Pt[m-15],p=Pt[m-2],y=je(f,7)^je(f,18)^f>>>3,b=je(p,17)^je(p,19)^p>>>10;Pt[m]=b+Pt[m-7]+y+Pt[m-16]|0}let{A:n,B:o,C:u,D:r,E:a,F:c,G:d,H:l}=this;for(let m=0;m<64;m++){let f=je(a,6)^je(a,11)^je(a,25),p=l+f+Wi(a,c,d)+$a[m]+Pt[m]|0,b=(je(n,2)^je(n,13)^je(n,22))+qi(n,o,u)|0;l=d,d=c,c=a,a=r+p|0,r=u,u=o,o=n,n=p+b|0}n=n+this.A|0,o=o+this.B|0,u=u+this.C|0,r=r+this.D|0,a=a+this.E|0,c=c+this.F|0,d=d+this.G|0,l=l+this.H|0,this.set(n,o,u,r,a,c,d,l)}roundClean(){Pt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Ui=Di(()=>new bo);var Hi=require("@solana/web3.js"),zt=F(require("bn.js"));var E=require("@solana/buffer-layout"),Rn=E.Layout,Gi=E.Structure;var go=E.UInt;var zi=E.u8,fe=E.u16;var Ln=E.u32;var ge=E.s32;var Xi=E.seq;var X=E.blob;var Po=E.bits,Yi=E.offset;var Kt=class extends Rn{constructor(t,n,o){super(t,o);this.blob=X(t),this.signed=n}decode(t,n=0){let o=new zt.default(this.blob.decode(t,n),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,n,o=0){return typeof t=="number"&&(t=new zt.default(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,o)}},On=class extends Rn{constructor(t){super(8,t);this._lower=Po(Ln(),!1),this._upper=Po(Ln(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let o=this._lower.decode(t,n),u=this._upper.decode(t,n+this._lower.span);return v(v({},o),u)}encode(t,n,o=0){return this._lower.encode(t,n,o)+this._upper.encode(t,n,o+this._lower.span)}};function R(i){return new go(1,i)}function me(i){return new go(4,i)}function s(i){return new Kt(8,!1,i)}function W(i){return new Kt(16,!1,i)}function Qi(i){return new Kt(1,!0,i)}function Xt(i){return new Kt(8,!0,i)}function Zi(i){return new Kt(16,!0,i)}var un=class extends Rn{constructor(t,n,o,u){super(t.span,u);this.layout=t,this.decoder=n,this.encoder=o}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,o){return this.layout.encode(this.encoder(t),n,o)}getSpan(t,n){return this.layout.getSpan(t,n)}};function P(i){return new un(X(32),e=>new Hi.PublicKey(e),e=>e.toBuffer(),i)}function ye(i){return new un(zi(),ja,Ja,i)}function ja(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Ja(i){return i?1:0}function wo(i,e){let t=Ln("length"),n=C([t,M(i,Yi(t,-t.span),"values")]);return new un(n,({values:o})=>o,o=>({values:o}),e)}var Ao=class extends Gi{decode(e,t){return super.decode(e,t)}};function C(i,e,t){return new Ao(i,e,t)}function M(i,e,t){let n,o=typeof e=="number"?e:(0,zt.isBN)(e)?e.toNumber():new Proxy(e,{get(u,r){if(!n){let a=Reflect.get(u,"count");n=(0,zt.isBN)(a)?a.toNumber():a,Reflect.set(u,"count",n)}return Reflect.get(u,r)},set(u,r,a){return r==="count"&&(n=a),Reflect.set(u,r,a)}});return Xi(i,o,t)}var Nn=C([P("mint"),P("owner"),s("amount"),me("delegateOption"),P("delegate"),R("state"),me("isNativeOption"),s("isNative"),s("delegatedAmount"),me("closeAuthorityOption"),P("closeAuthority")]);function Ge({fromPublicKey:i,programId:e=$i.TOKEN_PROGRAM_ID,assignSeed:t}){let n=t?btoa(t).slice(0,32):Mn.Keypair.generate().publicKey.toBase58().slice(0,32);return{publicKey:ts(i,n,e),seed:n}}function ts(i,e,t){let n=Buffer.concat([i.toBuffer(),Buffer.from(e),t.toBuffer()]),o=Ui(n);return new Mn.PublicKey(o)}var Xr=require("@solana/web3.js"),Bu=require("@solana/spl-token");var tr=require("@solana/web3.js"),nr=require("@solana/spl-token");function Z(i,e,t){return oe([i.toBuffer(),(t!=null?t:nr.TOKEN_PROGRAM_ID).toBuffer(),e.toBuffer()],new tr.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}var q=require("@solana/web3.js"),or=new q.PublicKey("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),ir=new q.PublicKey("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),rr=new q.PublicKey("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),ko=new q.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Ed=new q.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ar=new q.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),sr=new q.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),To=new q.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Dd=new q.PublicKey("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),is=new q.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ur=new q.PublicKey("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),rs=new q.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),as=new q.PublicKey("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ct=new q.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Wd=new q.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),cr=new q.PublicKey("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ho=new q.PublicKey("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ss=new q.PublicKey("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),qd=new q.PublicKey("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),us=new q.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),cs=new q.PublicKey("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ls=new q.PublicKey("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Ud=new q.PublicKey("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Gd=new q.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),zd=new q.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Xd=new q.PublicKey("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Yd=new q.PublicKey("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var st={OPEN_BOOK_PROGRAM:new q.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new q.PublicKey("Ray1111111111111111111111111111111111111111"),AMM_V4:new q.PublicKey("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new q.PublicKey("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new q.PublicKey("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new q.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new q.PublicKey("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new q.PublicKey("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new q.PublicKey("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new q.PublicKey("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new q.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new q.PublicKey("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:q.PublicKey.default,Router:new q.PublicKey("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new q.PublicKey("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new q.PublicKey("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new q.PublicKey("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new q.PublicKey("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new q.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new q.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new q.PublicKey("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new q.PublicKey("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new q.PublicKey("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new q.PublicKey("Ray1111111111111111111111111111111111111111")};var Iu=F(require("decimal.js"));var Mo=require("@solana/spl-token"),Qs=require("@solana/web3.js"),Zs=F(require("bn.js")),$s=F(require("decimal.js"));var ds=require("@solana/spl-token"),ps=require("@solana/web3.js");var ms=C([me("mintAuthorityOption"),P("mintAuthority"),s("supply"),R("decimals"),R("isInitialized"),me("freezeAuthorityOption"),P("freezeAuthority")]);var Bo=i=>new be({mint:i.address,decimals:i.decimals,symbol:i.symbol,name:i.name});var At=o=>{var u=o,{address:i,programId:e,decimals:t}=u,n=Ce(u,["address","programId","decimals"]);return v({chainId:101,address:It(i).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:n.extensions||{}},n)};var D=require("@solana/spl-token"),T=require("@solana/web3.js"),mn=F(require("bn.js"));var $=F(require("bn.js")),Pe=new $.default(1).shln(64);var fs=new $.default(1).shln(128),Rt=new $.default(1).shln(64).subn(1),ys=new $.default(1).shln(128).subn(1),ut=-443636,ct=443636,Lt=new $.default("4295048016"),Ot=new $.default("79226673521066979257578248091"),lr=new $.default("59543866431248"),mr=new $.default("184467440737095516"),dr=new $.default("15793534762490258745"),pr=16,_n=512,ve=60,Pp=new $.default("18446743708227953217"),fr=[{bit:0,factor:new $.default("fffcb933bd6fb800",16)},{bit:1,factor:new $.default("fff97272373d4000",16)},{bit:2,factor:new $.default("fff2e50f5f657000",16)},{bit:3,factor:new $.default("ffe5caca7e10f000",16)},{bit:4,factor:new $.default("ffcb9843d60f7000",16)},{bit:5,factor:new $.default("ff973b41fa98e800",16)},{bit:6,factor:new $.default("ff2ea16466c9b000",16)},{bit:7,factor:new $.default("fe5dee046a9a3800",16)},{bit:8,factor:new $.default("fcbe86c7900bb000",16)},{bit:9,factor:new $.default("f987a7253ac65800",16)},{bit:10,factor:new $.default("f3392b0822bb6000",16)},{bit:11,factor:new $.default("e7159475a2caf000",16)},{bit:12,factor:new $.default("d097f3bdfd2f2000",16)},{bit:13,factor:new $.default("a9f746462d9f8000",16)},{bit:14,factor:new $.default("70d869a156f31c00",16)},{bit:15,factor:new $.default("31be135f97ed3200",16)},{bit:16,factor:new $.default("9aa508b5b85a500",16)},{bit:17,factor:new $.default("5d6af8dedc582c",16)},{bit:18,factor:new $.default("2216e584f5fa",16)}];var cn=3,yr=100;var br=10,gr=100,Yt=14;var j=new $.default(0),wt=new $.default(1),Ap=new $.default(-1);var wp=new $.default("18446744073700000000");var bs=C([X(8),R("bump"),fe("index"),P("owner"),me("protocolFeeRate"),me("tradeFeeRate"),fe("tickSpacing"),me("fundFeeRate"),M(me(),1),P("fundOwner"),M(s(),3)]),gs=C([me("blockTimestamp"),Xt("tickCumulative"),M(s(),4)]),Pr=C([X(8),ye("initialized"),s("recentEpoch"),fe("observationIndex"),P("poolId"),M(gs,yr,"observations"),M(s(),4)]),Ps=C([fe("filterPeriod"),fe("decayPeriod"),fe("reductionFactor"),me("dynamicFeeControl"),me("maxVolatilityAccumulator"),ge("tickSpacingIndexReference"),me("volatilityReference"),me("volatilityAccumulator"),s("lastUpdateTimestamp"),M(R(),46)]),As=C([R("state"),s("openTime"),s("endTime"),s("lastUpdateTime"),W("emissionsPerSecondX64"),s("totalEmissioned"),s("claimed"),P("mint"),P("vault"),P("creator"),W("growthGlobalX64")]),Io=C([X(8),R("bump"),P("configId"),P("creator"),P("mintA"),P("mintB"),P("vaultA"),P("vaultB"),P("observationId"),R("mintDecimalsA"),R("mintDecimalsB"),fe("tickSpacing"),W("liquidity"),W("sqrtPriceX64"),ge("tickCurrent"),me(),W("feeGrowthGlobalX64A"),W("feeGrowthGlobalX64B"),s("protocolFeesTokenA"),s("protocolFeesTokenB"),M(W(),4),R("status"),R("feeOn"),X(6),M(As,cn,"rewardInfos"),X(8*16,"tickArrayBitmap"),M(s(),4),s("fundFeesTokenA"),s("fundFeesTokenB"),s("startTime"),s("recentEpoch"),Ps.replicate("dynamicFeeInfo"),M(s(),46)]),ws=C([W("growthInsideLastX64"),s("rewardAmountOwed")]),ks=C([X(8),R("bump"),P("nftMint"),P("poolId"),ge("tickLower"),ge("tickUpper"),W("liquidity"),W("feeGrowthInsideLastX64A"),W("feeGrowthInsideLastX64B"),s("tokenFeesOwedA"),s("tokenFeesOwedB"),M(ws,cn,"rewardInfos"),s("recentEpoch"),M(s(),7)]),Bp=C([X(8),R("bump"),P("poolId"),ge("tickLower"),ge("tickUpper"),W("liquidity"),W("feeGrowthInsideLastX64A"),W("feeGrowthInsideLastX64B"),s("tokenFeesOwedA"),s("tokenFeesOwedB"),M(W(),cn,"rewardGrowthInside"),s("recentEpoch"),M(s(),7)]),Ts=C([ge("tick"),Zi("liquidityNet"),W("liquidityGross"),W("feeGrowthOutsideX64A"),W("feeGrowthOutsideX64B"),M(W(),cn,"rewardGrowthsOutsideX64"),s("orderPhase"),s("ordersAmount"),s("partFilledOrdersRemaining"),W("unfilledRatioX64"),M(me(),3)]),Ar=C([X(8),P("poolId"),ge("startTickIndex"),M(Ts,ve,"ticks"),R("initializedTickCount"),s("recentEpoch"),M(R(),107)]),hs=C([X(8),R("bump"),M(P(),br,"operationOwners"),M(P(),gr,"whitelistMints")]),Bs=C([X(8),P("poolId"),P("owner"),ge("tick"),ye("zeroForOne"),s("orderPhase"),s("totalAmount"),s("filledAmount"),s("settleBase"),s("settleOutput"),s("openTime"),W("unfilledRatioX64"),M(s(),4)]),wr=C([X(8),P("poolId"),X(8*8*Yt,"positiveTickArrayBitmap"),X(8*8*Yt,"negativeTickArrayBitmap")]),Ip=C([X(8),fe("index"),fe("filterPeriod"),fe("decayPeriod"),fe("reductionFactor"),me("dynamicFeeControl"),me("maxVolatilityAccumulator"),M(s(),8)]),Is=C([X(8),P("wallet"),R("nonceIndex"),s("orderNonce"),M(s(),4)]),xp=C([s(),R("bump"),P("owner"),P("poolId"),P("positionId"),P("nftAccount"),M(s(),8)]),xs=C([X(8),R("bump"),P("lockOwner"),P("poolId"),P("positionId"),P("nftAccount"),P("lockNftMint"),s("recentEpoch"),M(s(),8)]);var Ss=F(require("bn.js"));function xo(i){let e=Buffer.alloc(2);return e.writeUInt16LE(i),e}function So(i){let e=Buffer.alloc(4);return e.writeInt32LE(i),e}function kr(i){let e=Buffer.alloc(4);return e.writeInt32BE(i),e}var vp=Buffer.from("amm_config","utf8"),Ko=Buffer.from("pool","utf8"),Tr=Buffer.from("pool_vault","utf8"),Ks=Buffer.from("pool_reward_vault","utf8"),hr=Buffer.from("position","utf8"),Cs=Buffer.from("tick_array","utf8"),Rs=Buffer.from("operation","utf8"),Ls=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Os=Buffer.from("observation","utf8"),_p=Buffer.from("support_mint","utf8"),Vp=Buffer.from("dynamic_fee_config","utf8"),Ns=Buffer.from("permission","utf8");function Br(i,e,t,n){return oe([Ko,e.toBuffer(),t.toBuffer(),n.toBuffer()],i)}function Ir(i,e){return oe([Ns,e.toBuffer()],i)}function xr(i,e,t,n,o){return oe([Ko,e.toBuffer(),t.toBuffer(),n.toBuffer(),xo(o)],i)}function Ht(i,e,t){return oe([Tr,e.toBuffer(),t.toBuffer()],i)}function Sr(i,e,t){return oe([Ks,e.toBuffer(),t.toBuffer()],i)}function Te(i,e,t){return oe([Cs,e.toBuffer(),kr(t)],i)}function lt(i,e,t,n){return oe([hr,e.toBuffer(),So(t),So(n)],i)}function ze(i,e){return oe([hr,e.toBuffer()],i)}function Nt(i){return oe([Buffer.from("metadata","utf8"),bt.toBuffer(),i.toBuffer()],bt)}function Vn(i){return oe([Rs],i)}function Ie(i,e){return oe([Ls,e.toBuffer()],i)}function Co(i,e){return oe([Os,e.toBuffer()],i)}var Kr=Buffer.from("locked_position","utf8");function Ro(i,e){return oe([Kr,e.toBuffer()],i)}function Lo(i,e){return oe([Kr,e.toBuffer()],i)}var Vr=require("js-sha256");var Cr=F(require("bn.js")),Oo=F(require("decimal.js"));function _e(i,e,t){if(t.isZero())throw new Error("Division by zero");return i.mul(e).div(t)}function We(i,e,t){if(t.isZero())throw new Error("Division by zero");let n=i.mul(e),o=n.div(t);return n.mod(t).isZero()?o:o.addn(1)}var Wp=new Cr.default(1).shln(256).subn(1);function Rr(i){return i.isZero()?-1:i.bitLength()-1}function Lr(i,e){return new Oo.default(i.toString()).div(Oo.default.pow(2,64)).toDecimalPlaces(e)}var Ms=F(require("bn.js"));var Ae=F(require("bn.js")),Mt=F(require("decimal.js"));var ln=class{static scanLinearBitmap({bitmap:e,tickSpacing:t,offset:n,checkInfo:o}){let u=[],r=e.length*8,a=0,c=r-1;if(o){let m=o.tick/(t*ve)-n;o.valueType==="gte"?a=Math.max(0,Math.ceil(m)):c=Math.min(r-1,Math.floor(m))}if(a>c)return u;let d=Math.floor(a/8),l=Math.floor(c/8);for(let m=d;m<=l;m++){if(!e[m])continue;let f=m===d?a%8:0,p=m===l?c%8:7;for(let y=f;y<=p;y++)e[m]&1<<y&&u.push((m*8+y+n)*t*ve)}return u}static findPoolBitmap({bitmap:e,tickSpacing:t,checkInfo:n}){if(n){let o=Math.floor(n.tick/ve/t);if(n.valueType==="lte"&&o<-512)return[];if(n.valueType==="gte"&&o>512)return[]}return this.scanLinearBitmap({bitmap:e,tickSpacing:t,offset:-_n,checkInfo:n})}static findPositiveTickArrayBitmap({bitmap:e,tickSpacing:t,checkInfo:n}){if(n){let o=Math.floor(n.tick/ve/t);if(n.valueType==="lte"&&o<512)return[]}return this.scanLinearBitmap({bitmap:e,tickSpacing:t,offset:_n,checkInfo:n})}static findNegativeTickArrayBitmap({bitmap:e,tickSpacing:t,count:n,checkInfo:o}){let u=[];if(o){let c=Math.floor(o.tick/ve/t);if(o.valueType==="gte"&&c>=-512)return u}let r=(o==null?void 0:o.valueType)==="lte"?Math.floor(o.tick/(ve*t))+7680:1/0,a=(o==null?void 0:o.valueType)==="gte"?Math.ceil(o.tick/(ve*t))+7680:0;e:for(let c=0;c<Yt;c++){let d=Yt-1-c;for(let l=0;l<512;l++){let m=c*512+l;if(m>r)break e;if(m<a)continue;let f=d*64+Math.floor(l/8);if(!e[f]){l=Math.floor(l/8)*8+7;continue}if(e[f]&1<<l%8){let p=(c*512+l-7680)*ve*t;if(u.push(p),n!==void 0&&u.length>=n)break e}}}return u}static findTickArrayStartIndex({tickSpacing:e,poolBitmap:t,tickArrayBitmap:n,findInfo:o}){if(o.type==="all")return[...this.findNegativeTickArrayBitmap({tickSpacing:e,bitmap:n.negativeTickArrayBitmap}),...this.findPoolBitmap({tickSpacing:e,bitmap:t}),...this.findPositiveTickArrayBitmap({tickSpacing:e,bitmap:n.positiveTickArrayBitmap})];let u=le.getTickArrayStartIndex(o.tickArrayCurrent,e),{count:r}=o;if(o.type==="oneForZero"){let a={tick:u,valueType:"gte"},c=[()=>this.findNegativeTickArrayBitmap({tickSpacing:e,bitmap:n.negativeTickArrayBitmap,checkInfo:a}),()=>this.findPoolBitmap({tickSpacing:e,bitmap:t,checkInfo:a}),()=>this.findPositiveTickArrayBitmap({tickSpacing:e,bitmap:n.positiveTickArrayBitmap,checkInfo:a})];return this.collectUntil(c,r)}if(o.type==="zeroForOne"){let a={tick:u,valueType:"lte"},c=[()=>this.findPositiveTickArrayBitmap({tickSpacing:e,bitmap:n.positiveTickArrayBitmap,checkInfo:a}).sort((d,l)=>l-d),()=>this.findPoolBitmap({tickSpacing:e,bitmap:t,checkInfo:a}).sort((d,l)=>l-d),()=>this.findNegativeTickArrayBitmap({tickSpacing:e,bitmap:n.negativeTickArrayBitmap,checkInfo:a}).sort((d,l)=>l-d)];return this.collectUntil(c,r)}throw new Error("find info type check error")}static collectUntil(e,t){let n=[];for(let o of e){if(t!==void 0&&n.length>=t)break;n.push(...o())}return n.slice(0,t)}static findTickArrayAddress(e){return this.findTickArrayStartIndex(e).map(t=>Te(e.programId,e.poolId,t).publicKey)}static maxTickInTickarrayBitmap(e){return e*ve*_n}},le=class{static firstinitializedTick({data:e,zeroForOne:t}){if(t){for(let n=e.ticks.length-1;n>=0;n--)if(de.isInitialized({data:e.ticks[n]}))return e.ticks[n]}else for(let n=0;n<e.ticks.length;n++)if(de.isInitialized({data:e.ticks[n]}))return e.ticks[n]}static nextInitalizedTick({data:e,currentTickIndex:t,tickSpacing:n,zeroForOne:o}){if(this.getTickArrayStartIndex(t,n)!==e.startTickIndex)return;let r=Math.floor((t-e.startTickIndex)/n);if(o){for(let a=r;a>=0;a--)if(de.isInitialized({data:e.ticks[a]}))return e.ticks[a]}else for(let a=r+1;a<ve;a++)if(de.isInitialized({data:e.ticks[a]}))return e.ticks[a]}static getTickArrayStartIndex(e,t){let n=this.tickCount(t);return Math.floor(e/n)*n}static getTickOffsetInArray(e,t){if(e%t!=0)throw new Error("tickIndex % tickSpacing not equal 0");let n=this.getTickArrayStartIndex(e,t);return Math.floor((e-n)/t)}static tickCount(e){return ve*e}static getMinTick(e){return Math.ceil(ut/e)*e}static getMaxTick(e){return Math.floor(ct/e)*e}},de=class{static isInitialized({data:e}){return this.hasLiquidity({data:e})||this.hasLimitOrders({data:e})}static hasLimitOrders({data:e}){return!e.ordersAmount.isZero()||!e.partFilledOrdersRemaining.isZero()}static hasLiquidity({data:e}){return!e.liquidityGross.isZero()}static isValidTick(e){return e>=ut&&e<=ct}static checkTick(e){if(!this.isValidTick(e))throw new Error(`Tick ${e} is out of range [${ut}, ${ct}]`)}static getSqrtPriceAtTick(e){this.checkTick(e);let t=Math.abs(e),n=Pe.clone();for(let{bit:o,factor:u}of fr)(t&1<<o)!==0&&(n=_e(n,u,Pe));return e>0&&(n=_e(Pe,Pe,n)),n}static getLimitOrderOutput({amountIn:e,tick:t,zeroForOne:n}){if(n){let o=de.getPriceAtTick(t,!1);return _e(e,o,Pe)}else{let o=de.getPriceAtTick(t,!0);return _e(e,Pe,o)}}static getLimitOrderInput({amountOut:e,tick:t,zeroForOne:n}){if(n){let o=de.getPriceAtTick(t,!0);return We(e,o,Pe)}else{let o=de.getPriceAtTick(t,!1);return We(e,Pe,o)}}static limitOrderUnfilledAmount({tick:e}){return e.ordersAmount.add(e.partFilledOrdersRemaining)}static matchLimitOrder({tick:e,swapAmount:t,swapDirectionZeroForOne:n,isBaseInput:o,feeRate:u,isFeeOnInput:r}){let a={amountIn:j,amountOut:j,ammFeeAmount:j},c=this.limitOrderUnfilledAmount({tick:e});if(t.isZero()||c.isZero())return a;if(o)r?(a.ammFeeAmount=We(t,new Ae.default(u),it),a.amountIn=t.sub(a.ammFeeAmount)):a.amountIn=t,a.amountOut=this.getLimitOrderOutput({amountIn:a.amountIn,tick:e.tick,zeroForOne:n}),a.amountOut.gt(c)&&(a.amountOut=c,a.amountIn=this.getLimitOrderInput({amountOut:c,tick:e.tick,zeroForOne:!n}),r&&(a.ammFeeAmount=We(a.amountIn,new Ae.default(u),it.sub(new Ae.default(u)))));else{let m=Ae.default.min(t,c);r?a.amountOut=m:a.amountOut=Ae.default.min(We(m,it,it.sub(new Ae.default(u))),c),a.amountIn=this.getLimitOrderInput({amountOut:a.amountOut,tick:e.tick,zeroForOne:!n}),r&&(a.ammFeeAmount=We(a.amountIn,new Ae.default(u),it.sub(new Ae.default(u))))}let d=j;e.partFilledOrdersRemaining.gt(j)&&(d=Ae.default.min(e.partFilledOrdersRemaining,a.amountOut),d.gt(j)&&(e.unfilledRatioX64=_e(e.unfilledRatioX64,e.partFilledOrdersRemaining.sub(d),e.partFilledOrdersRemaining)),e.partFilledOrdersRemaining=e.partFilledOrdersRemaining.sub(d));let l=a.amountOut.sub(d);if(l.gt(j)){if(!e.partFilledOrdersRemaining.isZero())throw Error("!tick.partFilledOrdersRemaining.isZero()");if(e.ordersAmount.lt(l))throw Error("InvalidLimitOrderAmount");e.orderPhase=e.orderPhase.add(wt),e.unfilledRatioX64=_e(Pe,e.ordersAmount.sub(l),e.ordersAmount),e.partFilledOrdersRemaining=e.ordersAmount.sub(l),e.ordersAmount=j}return r||(a.ammFeeAmount=We(a.amountOut,new Ae.default(u),it),a.amountOut=a.amountOut.sub(a.ammFeeAmount)),a}static getPriceAtTick(e,t){let n=this.getSqrtPriceAtTick(e);return t?n.mul(n).add(Pe.subn(1)).div(Pe):n.mul(n).div(Pe)}static getTickAtSqrtPrice(e){if(!(e.gte(Lt)&&e.lte(Ot)))throw Error("SqrtPriceX64");let t=Rr(e),n=t-64,o;n>=0?o=new Ae.default(n).shln(32):o=new Ae.default(-n).shln(32).neg();let u;t>=64?u=e.shrn(t-63):u=e.shln(63-t);let r=new Ae.default(0),a=new Ae.default(1).shln(63);for(let g=0;g<pr&&!a.isZero();g++){u=u.mul(u);let A=u.shrn(127).toNumber();u=u.shrn(63+A),A&&(r=r.add(a)),a=a.shrn(1)}let c=r.shrn(32),l=o.add(c).mul(lr),m=l.sub(mr),f=l.add(dr),p=this.signedShrn64(m),y=this.signedShrn64(f);return p===y?p:de.getSqrtPriceAtTick(y).lte(e)?y:p}static signedShrn64(e){if(e.isNeg()){let t=new Ae.default(1).shln(64),n=e.div(t);return!e.mod(t).isZero()&&e.isNeg()?n.subn(1).toNumber():n.toNumber()}else return e.shrn(64).toNumber()}static sqrtPriceX64ToPrice(e,t,n){let o=e.mul(e),u=t-n,r=20,a=new Ae.default(10).pow(new Ae.default(r)),c=o.mul(a),d=new Ae.default(1).shln(128),m=c.div(d).toString();for(;m.length<=r;)m="0"+m;let f=m.slice(0,-r),p=m.slice(-r),y=f+"."+p;return new Mt.default(y).mul(new Mt.default(10).pow(u))}static tickToPrice(e,t,n){let o=de.getSqrtPriceAtTick(e);return this.sqrtPriceX64ToPrice(o,t,n)}static priceToTick(e,t,n){let u=e.div(Math.pow(10,t-n)).log().div(new Mt.default(1.0001).log()).floor();return Math.max(ut,Math.min(ct,u.toNumber()))}static priceToSqrtPriceX64(e,t,n){let r=e.div(Math.pow(10,t-n)).sqrt().mul(new Mt.default(2).pow(64));return new Ae.default(r.toFixed(0))}static toTickIndex(e,t){return e>=0?e-e%t:e-e%t-(e%t!==0?t:0)}static getPriceAndTick({price:e,mintADecimals:t,mintBDecimals:n,zeroForOne:o,tickSpacing:u}){let r=e.clamp(1/10**Math.max(t,n),Number.MAX_SAFE_INTEGER);o||(r=new Mt.default(1).div(r));let a=de.toTickIndex(de.priceToTick(r,t,n),u),c=de.tickToPrice(a,t,n);return{price:o?c:new Mt.default(1).div(c),tick:a}}};var _s=F(require("bn.js")),Vs=F(require("decimal.js"));var No=require("@solana/web3.js"),Nr=F(require("bn.js"));var Mr=require("@solana/spl-token");var Us=F(require("decimal.js"));var Ws=F(require("bn.js"));var Ds=F(require("bn.js"));var qe=class{static isFeeOnInput(e,t){switch(e){case 0:return!0;case 1:return t;case 2:return!t;default:return!0}}static isFeeOnTokenA(e,t){return e.feeOn===0?t:e.feeOn===1}static isOverflowDefaultTickarrayBitmap({tickSpacing:e,tickIndexs:t}){let{maxTickBoundary:n,minTickBoundary:o}=this.tickArrayStartIndexRange({tickSpacing:e});for(let u of t){let r=le.getTickArrayStartIndex(u,e);if(r>=n||r<o)return!0}return!1}static tickArrayStartIndexRange({tickSpacing:e}){let t=ln.maxTickInTickarrayBitmap(e),n=-t;return t>ct&&(t=le.getTickArrayStartIndex(ct,e)+le.tickCount(e)),n<ut&&(n=le.getTickArrayStartIndex(ut,e)),{maxTickBoundary:t,minTickBoundary:n}}static async updatePoolRewardInfos({connection:e,apiPoolInfo:t,chainTime:n,poolLiquidity:o,rewardInfos:u}){var a,c,d;let r=[];for(let l=0;l<u.length;l++){let m=u[l],f=(d=(a=t.rewardDefaultInfos[l])==null?void 0:a.mint.programId)!=null?d:(c=await e.getAccountInfo(m.mint))==null?void 0:c.owner;if(f===void 0)throw Error("get new reward mint info error");let p=G(v({},m),{perSecond:Lr(m.emissionsPerSecondX64),remainingRewards:void 0,tokenProgramId:new No.PublicKey(f)});if(p.mint.equals(No.PublicKey.default)||p.totalEmissioned.eq(Rt))continue;if(n<=p.openTime.toNumber()||o.eq(j)){r.push(p);continue}let y=new Nr.default(Math.min(p.endTime.toNumber(),n)),b=y.sub(p.lastUpdateTime);if(b.isZero()){r.push(p);continue}let g=We(b,p.emissionsPerSecondX64,Pe),A=_e(b,p.emissionsPerSecondX64,o),w,B=p.totalEmissioned.add(g);if(B.lte(Rt))w=B;else{let k=Rt.sub(p.totalEmissioned);w=Rt,A=_e(k,Pe,o)}let L=p.growthGlobalX64.add(A);r.push(G(v({},p),{growthGlobalX64:L,totalEmissioned:w,lastUpdateTime:y}))}return r}};var Xs=F(require("bn.js"));function xe(i){let e=`global:${i}`;return Buffer.from(Vr.sha256.digest(e)).slice(0,8)}Pr.span;var Fr=Q("Raydium_Clmm"),Se={createPool:xe("create_pool"),createCustomizablePool:xe("create_customizable_pool"),createPermissionedPool:xe("create_permissioned_pool"),openPositionV2:xe("open_position_v2"),openPositionWithToken22Nft:xe("open_position_with_token22_nft"),closePosition:xe("close_position"),increaseLiquidityV2:xe("increase_liquidity_v2"),decreaseLiquidityV2:xe("decrease_liquidity_v2"),initializeReward:xe("initialize_reward"),setRewardParams:xe("set_reward_params"),updateRewardInfos:xe("update_reward_infos"),collectRemainingRewards:xe("collect_remaining_rewards"),swapV2:xe("swap_v2"),openLimitOrder:xe("open_limit_order"),increaseLimitOrder:xe("increase_limit_order"),decreaseLimitOrder:xe("decrease_limit_order"),settleLimitOrder:xe("settle_limit_order"),closeLimitOrder:xe("close_limit_order")},vr=[188,37,179,131,82,150,84,73],_r=[16,72,250,198,14,162,212,19],dt=class{static createPoolInstruction(e,t,n,o,u,r,a,c,d,l,m,f,p,y){let b=C([W("sqrtPriceX64"),s("startTime")]),g=[{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:T.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:De,isSigner:!1,isWritable:!1},...(y!=null?y:[]).map(B=>({pubkey:B,isSigner:!1,isWritable:!1}))],A=Buffer.alloc(b.span);b.encode({sqrtPriceX64:p,startTime:j},A);let w=Buffer.from([...Se.createPool,...A]);return new T.TransactionInstruction({keys:g,programId:e,data:w})}static createCustomizablePoolInstruction(e,t,n,o,u,r,a,c,d,l,m,f,p,y,b,g){let A=C([W("sqrtPriceX64"),R("collectFeeOn"),ye("enableDynamicFee")]),w=[{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:T.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:De,isSigner:!1,isWritable:!1},...b.map(k=>({pubkey:k,isSigner:!1,isWritable:!1})),...g?[{pubkey:g,isSigner:!1,isWritable:!1}]:[]],B=Buffer.alloc(A.span);A.encode({sqrtPriceX64:p,collectFeeOn:y,enableDynamicFee:g!==void 0},B);let L=Buffer.from([...Se.createCustomizablePool,...B]);return new T.TransactionInstruction({keys:w,programId:e,data:L})}static createPermissionedPoolInstruction(e,t,n,o,u,r,a,c,d,l,m,f,p,y,b,g,A,w,B){let L=C([W("sqrtPriceX64"),R("collectFeeOn"),ye("enableDynamicFee"),fe("seedIndex")]),k=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:T.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:De,isSigner:!1,isWritable:!1},...w.map(O=>({pubkey:O,isSigner:!1,isWritable:!1})),...B?[{pubkey:B,isSigner:!1,isWritable:!1}]:[]],x=Buffer.alloc(L.span);L.encode({sqrtPriceX64:b,collectFeeOn:g,enableDynamicFee:B!==void 0,seedIndex:A},x);let S=Buffer.from([...Se.createPermissionedPool,...x]);return new T.TransactionInstruction({keys:k,programId:e,data:S})}static initializeRewardInstruction(e,t,n,o,u,r,a,c,d,l,m,f){let p=C([s("openTime"),s("endTime"),W("emissionsPerSecondX64")]),y=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:T.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:De,isSigner:!1,isWritable:!1}],b=Buffer.alloc(p.span);p.encode({openTime:l,endTime:m,emissionsPerSecondX64:f},b);let g=Buffer.from([...Se.initializeReward,...b]);return new T.TransactionInstruction({keys:y,programId:e,data:g})}static updateRewardInfosInstruction(e,t){let n=[{pubkey:t,isSigner:!1,isWritable:!0}],o=Buffer.from([...Se.updateRewardInfos]);return new T.TransactionInstruction({keys:n,programId:e,data:o})}static setRewardParamsInstruction(e,t,n,o,u,r,a,c,d,l,m,f){let p=C([R("rewardIndex"),W("emissionsPerSecondX64"),s("openTime"),s("endTime")]),y=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0}],b=Buffer.alloc(p.span);p.encode({rewardIndex:d,emissionsPerSecondX64:f,openTime:l,endTime:m},b);let g=Buffer.from([...Se.setRewardParams,...b]);return new T.TransactionInstruction({keys:y,programId:e,data:g})}static closePositionInstruction(e,t,n,o,u,r,a){let c=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:T.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:r?D.TOKEN_2022_PROGRAM_ID:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1}];a&&c.push({pubkey:a,isSigner:!1,isWritable:!0});let d=Buffer.from([...Se.closePosition]);return new T.TransactionInstruction({keys:c,programId:e,data:d})}static openPositionV2Instruction(e,t,n,o,u,r,a,c,d,l,m,f,p,y,b,g,A,w,B,L,k,x,S,O,N,K,z){let U=C([ge("tickLower"),ge("tickUpper"),ge("tickArrayLowerStart"),ge("tickArrayUpperStart"),W("liquidity"),s("amountMaxA"),s("amountMaxB"),ye("withMetadata"),R("optionBaseFlag"),ye("baseFlag")]),V=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:De,isSigner:!1,isWritable:!1},{pubkey:T.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:D.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:bt,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:A,isSigner:!1,isWritable:!1},...z?[{pubkey:z,isSigner:!1,isWritable:!0}]:[]],H=Buffer.alloc(U.span);U.encode({tickLower:w,tickUpper:B,tickArrayLowerStart:L,tickArrayUpperStart:k,liquidity:x,amountMaxA:S,amountMaxB:O,withMetadata:N,optionBaseFlag:K!==null?1:0,baseFlag:K!=null?K:!1},H);let Y=Buffer.from([...Se.openPositionV2,...H]);return new T.TransactionInstruction({keys:V,programId:e,data:Y})}static increaseLiquidityV2Instruction(e,t,n,o,u,r,a,c,d,l,m,f,p,y,b,g,A,w,B){let L=C([W("liquidity"),s("amountMaxA"),s("amountMaxB"),R("optionBaseFlag"),ye("baseFlag")]),k=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},...B?[{pubkey:B,isSigner:!1,isWritable:!0}]:[]],x=Buffer.alloc(L.span);L.encode({liquidity:b,amountMaxA:g,amountMaxB:A,optionBaseFlag:w!==null?1:0,baseFlag:w!=null?w:!1},x);let S=Buffer.from([...Se.increaseLiquidityV2,...x]);return new T.TransactionInstruction({keys:k,programId:e,data:S})}static decreaseLiquidityV2Instruction(e,t,n,o,u,r,a,c,d,l,m,f,p,y,b,g,A,w,B){let L=C([W("liquidity"),s("amountMinA"),s("amountMinB")]),k=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:yt,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},...B?[{pubkey:B,isSigner:!1,isWritable:!0}]:[],...b.map(O=>[{pubkey:O.poolRewardVault,isSigner:!1,isWritable:!0},{pubkey:O.ownerRewardVault,isSigner:!1,isWritable:!0},{pubkey:O.rewardMint,isSigner:!1,isWritable:!1}]).flat()],x=Buffer.alloc(L.span);L.encode({liquidity:g,amountMinA:A,amountMinB:w},x);let S=Buffer.from([...Se.decreaseLiquidityV2,...x]);return new T.TransactionInstruction({keys:k,programId:e,data:S})}static swapV2Instruction(e,t,n,o,u,r,a,c,d,l,m,f,p,y,b,g,A){let w=C([s("amount"),s("otherAmountThreshold"),W("sqrtPriceLimitX64"),ye("isBaseInput")]),B=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:yt,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},...A?[{pubkey:A,isSigner:!1,isWritable:!0}]:[],...m.map(x=>({pubkey:x,isSigner:!1,isWritable:!0}))],L=Buffer.alloc(w.span);w.encode({amount:p,otherAmountThreshold:y,sqrtPriceLimitX64:b,isBaseInput:g},L);let k=Buffer.from([...Se.swapV2,...L]);return new T.TransactionInstruction({keys:B,programId:e,data:k})}static collectRemainingRewardsInstruction(e,t,n,o,u,r,a){let c=C([R("rewardIndex")]),d=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:yt,isSigner:!1,isWritable:!1}],l=Buffer.alloc(c.span);c.encode({rewardIndex:a},l);let m=Buffer.from([...Se.collectRemainingRewards,...l]);return new T.TransactionInstruction({keys:d,programId:e,data:m})}static openPositionWithToken22NftInstruction(e,t,n,o,u,r,a,c,d,l,m,f,p,y,b,g,A,w,B,L,k,x,S,O,N,K){let z=C([ge("tickLower"),ge("tickUpper"),ge("tickArrayLowerStart"),ge("tickArrayUpperStart"),W("liquidity"),s("amountMaxA"),s("amountMaxB"),ye("withMetadata"),R("optionBaseFlag"),ye("baseFlag")]),U=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:De,isSigner:!1,isWritable:!1},{pubkey:T.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:D.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},...K?[{pubkey:K,isSigner:!1,isWritable:!0}]:[]],V=Buffer.alloc(z.span);z.encode({tickLower:A,tickUpper:w,tickArrayLowerStart:B,tickArrayUpperStart:L,liquidity:k,amountMaxA:x,amountMaxB:S,withMetadata:O,optionBaseFlag:N!==null?1:0,baseFlag:N!=null?N:!1},V);let H=Buffer.from([...Se.openPositionWithToken22Nft,...V]);return new T.TransactionInstruction({keys:U,programId:e,data:H})}static openLimitOrderInstruction(e,t,n,o,u,r,a,c,d,l,m,f,p,y,b,g,A,w){let B=C([R("nonceIndex"),ye("zeroForOne"),ge("tickIndex"),s("amount")]),L=[{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:T.SystemProgram.programId,isSigner:!1,isWritable:!1},...w?[{pubkey:w,isSigner:!1,isWritable:!0}]:[]],k=Buffer.alloc(B.span);B.encode({nonceIndex:y,zeroForOne:b,tickIndex:g,amount:A},k);let x=Buffer.from([...Se.openLimitOrder,...k]);return new T.TransactionInstruction({keys:L,programId:e,data:x})}static increaseLimitOrderInstruction(e,t,n,o,u,r,a,c,d,l){let m=C([s("amount")]),f=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1}],p=Buffer.alloc(m.span);m.encode({amount:l},p);let y=Buffer.from([...Se.increaseLimitOrder,...p]);return new T.TransactionInstruction({keys:f,programId:e,data:y})}static decreaseLimitOrderInstruction(e,t,n,o,u,r,a,c,d,l,m,f,p,y){let b=C([s("amount"),s("amountMin")]),g=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},...y?[{pubkey:y,isSigner:!1,isWritable:!0}]:[]],A=Buffer.alloc(b.span);b.encode({amount:f,amountMin:p},A);let w=Buffer.from([...Se.decreaseLimitOrder,...A]);return new T.TransactionInstruction({keys:g,programId:e,data:w})}static settleLimitOrderInstruction(e,t,n,o,u,r,a,c,d){let l=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1}],m=Buffer.from([...Se.settleLimitOrder]);return new T.TransactionInstruction({keys:l,programId:e,data:m})}static closeLimitOrderInstruction(e,t,n,o){let u=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0}],r=Buffer.from([...Se.closeLimitOrder]);return new T.TransactionInstruction({keys:u,programId:e,data:r})}static createPoolInstructions(e){let{programId:t,owner:n,mintA:o,mintB:u,ammConfigId:r,initialPriceX64:a,extendMintAccount:c}=e,[d,l]=[new T.PublicKey(o.address),new T.PublicKey(u.address)],[m,f]=[new T.PublicKey(o.programId||D.TOKEN_PROGRAM_ID),new T.PublicKey(u.programId||D.TOKEN_PROGRAM_ID)],{publicKey:p}=Br(t,r,d,l),{publicKey:y}=Co(t,p),{publicKey:b}=Ht(t,p,d),{publicKey:g}=Ht(t,p,l),A=Ie(t,p).publicKey,w=[this.createPoolInstruction(t,p,n,r,y,d,b,m,l,g,f,A,a,c)];return{signers:[],instructions:w,instructionTypes:[_.CreateAccount,_.ClmmCreatePool],address:{poolId:p,observationId:y,exBitmapAccount:A,mintA:d,mintB:l,mintAProgram:m,mintBProgram:f,mintAVault:b,mintBVault:g},lookupTableAddress:[]}}static createPermissionedPoolInstructions(e){let{programId:t,owner:n,mintA:o,mintB:u,ammConfigId:r,initialPriceX64:a,extendMintAccount:c,payer:d,seedIndex:l}=e,[m,f]=[new T.PublicKey(o.address),new T.PublicKey(u.address)],[p,y]=[new T.PublicKey(o.programId||D.TOKEN_PROGRAM_ID),new T.PublicKey(u.programId||D.TOKEN_PROGRAM_ID)],{publicKey:b}=xr(t,r,m,f,l),{publicKey:g}=Ir(t,d),{publicKey:A}=Co(t,b),{publicKey:w}=Ht(t,b,m),{publicKey:B}=Ht(t,b,f),L=Ie(t,b).publicKey,k=[this.createPoolInstruction(t,b,n,r,A,m,w,p,f,B,y,L,a,c)];return{signers:[],instructions:k,instructionTypes:[_.CreateAccount,_.ClmmCreatePool],address:{poolId:b,observationId:A,exBitmapAccount:L,mintA:m,mintB:f,mintAProgram:p,mintBProgram:y,mintAVault:w,mintBVault:B,permission:g},lookupTableAddress:[]}}static async openPositionInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,tickLower:o,tickUpper:u,liquidity:r,amountMaxA:a,amountMaxB:c,base:d,withMetadata:l,getEphemeralSigners:m,nft2022:f}){let p=[],[y,b]=[new T.PublicKey(e.programId),new T.PublicKey(e.id)],g;if(m)g=new T.PublicKey((await m(1))[0]);else{let K=T.Keypair.generate();p.push(K),g=K.publicKey}let A=le.getTickArrayStartIndex(o,e.config.tickSpacing),w=le.getTickArrayStartIndex(u,e.config.tickSpacing),{publicKey:B}=Te(y,b,A),{publicKey:L}=Te(y,b,w),{publicKey:k}=f?Z(n.wallet,g,D.TOKEN_2022_PROGRAM_ID):Z(n.wallet,g,D.TOKEN_PROGRAM_ID),{publicKey:x}=Nt(g),{publicKey:S}=ze(y,g),{publicKey:O}=lt(y,b,o,u),N=f?this.openPositionWithToken22NftInstruction(y,n.feePayer,b,n.wallet,g,k,O,B,L,S,n.tokenAccountA,n.tokenAccountB,new T.PublicKey(t.vault.A),new T.PublicKey(t.vault.B),new T.PublicKey(e.mintA.address),new T.PublicKey(e.mintB.address),o,u,A,w,r,a,c,l==="create",d&&d==="MintA",qe.isOverflowDefaultTickarrayBitmap({tickSpacing:e.config.tickSpacing,tickIndexs:[A,w]})?Ie(y,b).publicKey:void 0):this.openPositionV2Instruction(y,n.feePayer,b,n.wallet,g,k,x,O,B,L,S,n.tokenAccountA,n.tokenAccountB,new T.PublicKey(t.vault.A),new T.PublicKey(t.vault.B),new T.PublicKey(e.mintA.address),new T.PublicKey(e.mintB.address),o,u,A,w,r,a,c,l==="create",null,qe.isOverflowDefaultTickarrayBitmap({tickSpacing:e.config.tickSpacing,tickIndexs:[A,w]})?Ie(y,b).publicKey:void 0);return{signers:p,instructions:[N],instructionTypes:[_.ClmmOpenPosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[],address:{nftMint:g,tickArrayLower:B,tickArrayUpper:L,positionNftAccount:k,metadataAccount:x,personalPosition:S,protocolPosition:O}}}static async openPositionFromBaseInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,tickLower:o,tickUpper:u,base:r,baseAmount:a,otherAmountMax:c,liquidity:d,withMetadata:l,getEphemeralSigners:m,nft2022:f}){let p=[],[y,b]=[new T.PublicKey(e.programId),new T.PublicKey(e.id)],g;if(m)g=new T.PublicKey((await m(1))[0]);else{let K=T.Keypair.generate();p.push(K),g=K.publicKey}let A=le.getTickArrayStartIndex(o,e.config.tickSpacing),w=le.getTickArrayStartIndex(u,e.config.tickSpacing),{publicKey:B}=Te(y,b,A),{publicKey:L}=Te(y,b,w),{publicKey:k}=f?Z(n.wallet,g,D.TOKEN_2022_PROGRAM_ID):Z(n.wallet,g,D.TOKEN_PROGRAM_ID),{publicKey:x}=Nt(g),{publicKey:S}=ze(y,g),{publicKey:O}=lt(y,b,o,u),N=f?this.openPositionWithToken22NftInstruction(y,n.feePayer,b,n.wallet,g,k,O,B,L,S,n.tokenAccountA,n.tokenAccountB,new T.PublicKey(t.vault.A),new T.PublicKey(t.vault.B),new T.PublicKey(e.mintA.address),new T.PublicKey(e.mintB.address),o,u,A,w,d,!r||r==="MintA"?a:c,!r||r==="MintA"?c:a,l==="create",r&&r==="MintA",qe.isOverflowDefaultTickarrayBitmap({tickSpacing:e.config.tickSpacing,tickIndexs:[A,w]})?Ie(y,b).publicKey:void 0):this.openPositionV2Instruction(y,n.feePayer,b,n.wallet,g,k,x,O,B,L,S,n.tokenAccountA,n.tokenAccountB,new T.PublicKey(t.vault.A),new T.PublicKey(t.vault.B),new T.PublicKey(e.mintA.address),new T.PublicKey(e.mintB.address),o,u,A,w,j,r==="MintA"?a:c,r==="MintA"?c:a,l==="create",r==="MintA",qe.isOverflowDefaultTickarrayBitmap({tickSpacing:e.config.tickSpacing,tickIndexs:[A,w]})?Ie(y,b).publicKey:void 0);return{address:{nftMint:g,tickArrayLower:B,tickArrayUpper:L,positionNftAccount:k,metadataAccount:x,personalPosition:S,protocolPosition:O},instructions:[N],signers:p,instructionTypes:[_.ClmmOpenPosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static async openPositionFromLiquidityInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,tickLower:o,tickUpper:u,liquidity:r,amountMaxA:a,amountMaxB:c,base:d,withMetadata:l,getEphemeralSigners:m,nft2022:f}){let p,y=[];if(m)p=new T.PublicKey((await m(1))[0]);else{let K=T.Keypair.generate();y.push(K),p=K.publicKey}let[b,g]=[new T.PublicKey(e.programId),new T.PublicKey(e.id)],A=le.getTickArrayStartIndex(o,e.config.tickSpacing),w=le.getTickArrayStartIndex(u,e.config.tickSpacing),{publicKey:B}=Te(b,g,A),{publicKey:L}=Te(b,g,w),{publicKey:k}=f?Z(n.wallet,p,D.TOKEN_2022_PROGRAM_ID):Z(n.wallet,p,D.TOKEN_PROGRAM_ID),{publicKey:x}=Nt(p),{publicKey:S}=ze(b,p),{publicKey:O}=lt(b,g,o,u),N=f?this.openPositionWithToken22NftInstruction(b,n.wallet,g,n.wallet,p,k,O,B,L,S,n.tokenAccountA,n.tokenAccountB,new T.PublicKey(t.vault.A),new T.PublicKey(t.vault.B),new T.PublicKey(t.mintA.address),new T.PublicKey(t.mintB.address),o,u,A,w,r,a,c,l==="create",d&&d==="MintA",qe.isOverflowDefaultTickarrayBitmap({tickSpacing:e.config.tickSpacing,tickIndexs:[A,w]})?Ie(b,g).publicKey:void 0):this.openPositionV2Instruction(b,n.wallet,g,n.wallet,p,k,x,O,B,L,S,n.tokenAccountA,n.tokenAccountB,new T.PublicKey(t.vault.A),new T.PublicKey(t.vault.B),new T.PublicKey(t.mintA.address),new T.PublicKey(t.mintB.address),o,u,A,w,r,a,c,l==="create",null,qe.isOverflowDefaultTickarrayBitmap({tickSpacing:e.config.tickSpacing,tickIndexs:[A,w]})?Ie(b,g).publicKey:void 0);return{address:{nftMint:p,tickArrayLower:B,tickArrayUpper:L,positionNftAccount:k,metadataAccount:x,personalPosition:S,protocolPosition:O},instructions:[N],signers:y,instructionTypes:[_.ClmmOpenPosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static closePositionInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,ownerPosition:o,nft2022:u}){let r=new T.PublicKey(e.programId),a=u?Z(n.wallet,o.nftMint,D.TOKEN_2022_PROGRAM_ID).publicKey:Z(n.wallet,o.nftMint,D.TOKEN_PROGRAM_ID).publicKey,{publicKey:c}=ze(r,o.nftMint),d=[];return d.push(this.closePositionInstruction(r,n.wallet,o.nftMint,a,c,!!u,new T.PublicKey(e.id))),{address:{positionNftAccount:a,personalPosition:c},signers:[],instructions:d,instructionTypes:[_.ClmmClosePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static increasePositionFromLiquidityInstructions({poolInfo:e,poolKeys:t,ownerPosition:n,ownerInfo:o,liquidity:u,amountMaxA:r,amountMaxB:a,nft2022:c}){let[d,l]=[new T.PublicKey(e.programId),new T.PublicKey(e.id)],m=le.getTickArrayStartIndex(n.tickLower,e.config.tickSpacing),f=le.getTickArrayStartIndex(n.tickUpper,e.config.tickSpacing),{publicKey:p}=Te(d,l,m),{publicKey:y}=Te(d,l,f),{publicKey:b}=c?Z(o.wallet,n.nftMint,D.TOKEN_2022_PROGRAM_ID):Z(o.wallet,n.nftMint,D.TOKEN_PROGRAM_ID),{publicKey:g}=ze(d,n.nftMint),{publicKey:A}=lt(d,l,n.tickLower,n.tickUpper),w=this.increaseLiquidityV2Instruction(d,o.wallet,b,g,l,A,p,y,o.tokenAccountA,o.tokenAccountB,new T.PublicKey(t.vault.A),new T.PublicKey(t.vault.B),new T.PublicKey(e.mintA.address),new T.PublicKey(e.mintB.address),u,r,a,null,qe.isOverflowDefaultTickarrayBitmap({tickSpacing:e.config.tickSpacing,tickIndexs:[m,f]})?Ie(d,l).publicKey:void 0);return{address:{tickArrayLower:p,tickArrayUpper:y,positionNftAccount:b,personalPosition:g,protocolPosition:A},signers:[],instructions:[w],instructionTypes:[_.ClmmIncreasePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static increasePositionFromBaseInstructions({poolInfo:e,poolKeys:t,ownerPosition:n,ownerInfo:o,base:u,baseAmount:r,otherAmountMax:a,nft2022:c}){let[d,l]=[new T.PublicKey(e.programId),new T.PublicKey(e.id)],m=le.getTickArrayStartIndex(n.tickLower,e.config.tickSpacing),f=le.getTickArrayStartIndex(n.tickUpper,e.config.tickSpacing),{publicKey:p}=Te(d,l,m),{publicKey:y}=Te(d,l,f),{publicKey:b}=c?Z(o.wallet,n.nftMint,D.TOKEN_2022_PROGRAM_ID):Z(o.wallet,n.nftMint,D.TOKEN_PROGRAM_ID),{publicKey:g}=ze(d,n.nftMint),{publicKey:A}=lt(d,l,n.tickLower,n.tickUpper);return{address:{tickArrayLower:p,tickArrayUpper:y,positionNftAccount:b,personalPosition:g,protocolPosition:A},instructions:[this.increaseLiquidityV2Instruction(d,o.wallet,b,g,l,A,p,y,o.tokenAccountA,o.tokenAccountB,new T.PublicKey(t.vault.A),new T.PublicKey(t.vault.B),new T.PublicKey(e.mintA.address),new T.PublicKey(e.mintB.address),j,u==="MintA"?r:a,u==="MintA"?a:r,u==="MintA",qe.isOverflowDefaultTickarrayBitmap({tickSpacing:e.config.tickSpacing,tickIndexs:[m,f]})?Ie(d,l).publicKey:void 0)],signers:[],instructionTypes:[_.ClmmIncreasePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static decreaseLiquidityInstructions({poolInfo:e,poolKeys:t,ownerPosition:n,ownerInfo:o,liquidity:u,amountMinA:r,amountMinB:a,programId:c,nft2022:d}){let[l,m]=[new T.PublicKey(e.programId),new T.PublicKey(e.id)],f=le.getTickArrayStartIndex(n.tickLower,e.config.tickSpacing),p=le.getTickArrayStartIndex(n.tickUpper,e.config.tickSpacing),{publicKey:y}=Te(l,m,f),{publicKey:b}=Te(l,m,p),{publicKey:g}=d?Z(o.wallet,n.nftMint,D.TOKEN_2022_PROGRAM_ID):Z(o.wallet,n.nftMint,c),{publicKey:A}=ze(l,n.nftMint),{publicKey:w}=lt(l,m,n.tickLower,n.tickUpper),B=new Map;for(let S=0;S<t.rewardInfos.length;S++)B.set(t.rewardInfos[S].mint.address,o.rewardAccounts[S]);let L=[];for(let S=0;S<t.rewardInfos.length;S++){let O=t.rewardInfos[S].mint.address,N=B.get(O);N&&L.push({poolRewardVault:new T.PublicKey(t.rewardInfos[S].vault),ownerRewardVault:N,rewardMint:new T.PublicKey(O)})}let k=[],x=this.decreaseLiquidityV2Instruction(l,o.wallet,g,A,m,w,y,b,o.tokenAccountA,o.tokenAccountB,new T.PublicKey(t.vault.A),new T.PublicKey(t.vault.B),new T.PublicKey(e.mintA.address),new T.PublicKey(e.mintB.address),L,u,r,a,qe.isOverflowDefaultTickarrayBitmap({tickSpacing:e.config.tickSpacing,tickIndexs:[f,p]})?Ie(l,m).publicKey:void 0);return k.push(x),{address:{tickArrayLower:y,tickArrayUpper:b,positionNftAccount:g,personalPosition:A,protocolPosition:w},signers:[],instructions:k,instructionTypes:[_.ClmmDecreasePosition],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static makeSwapBaseInInstructions({poolInfo:e,poolKeys:t,observationId:n,ownerInfo:o,inputMint:u,amountIn:r,amountOutMin:a,sqrtPriceLimitX64:c,remainingAccounts:d}){let[l,m]=[new T.PublicKey(e.programId),new T.PublicKey(e.id)],[f,p]=[new T.PublicKey(t.vault.A),new T.PublicKey(t.vault.B)],[y,b]=[new T.PublicKey(e.mintA.address),new T.PublicKey(e.mintB.address)],g=e.mintA.address.toString()===u.toString(),A=[this.swapV2Instruction(l,o.wallet,m,new T.PublicKey(e.config.id),g?o.tokenAccountA:o.tokenAccountB,g?o.tokenAccountB:o.tokenAccountA,g?f:p,g?p:f,g?y:b,g?b:y,d,n,r,a,c,!0,Ie(l,m).publicKey)];return{signers:[],instructions:A,instructionTypes:[_.ClmmSwapBaseIn],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[],address:{}}}static makeSwapBaseOutInstructions({poolInfo:e,poolKeys:t,observationId:n,ownerInfo:o,outputMint:u,amountOut:r,amountInMax:a,sqrtPriceLimitX64:c,remainingAccounts:d}){let[l,m]=[new T.PublicKey(e.programId),new T.PublicKey(e.id)],[f,p]=[new T.PublicKey(t.vault.A),new T.PublicKey(t.vault.B)],[y,b]=[new T.PublicKey(e.mintA.address),new T.PublicKey(e.mintB.address)],g=e.mintB.address.toString()===u.toBase58(),A=[this.swapV2Instruction(l,o.wallet,m,new T.PublicKey(e.config.id),g?o.tokenAccountA:o.tokenAccountB,g?o.tokenAccountB:o.tokenAccountA,g?f:p,g?p:f,g?y:b,g?b:y,d,n,r,a,c,!1,Ie(l,m).publicKey)];return{signers:[],instructions:A,instructionTypes:[_.ClmmSwapBaseOut],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[],address:{}}}static initRewardInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,rewardInfo:o}){let[u,r]=[new T.PublicKey(e.programId),new T.PublicKey(e.id)],a=Sr(u,r,o.mint).publicKey,c=Vn(u).publicKey,d=[this.initializeRewardInstruction(u,n.wallet,r,c,new T.PublicKey(e.config.id),n.tokenAccount,o.programId,o.mint,a,new mn.default(o.openTime),new mn.default(o.endTime),o.emissionsPerSecondX64)];return{address:{poolRewardVault:a,operationId:c},signers:[],instructions:d,instructionTypes:[_.ClmmInitReward],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static setRewardInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,rewardInfo:o}){let[u,r]=[new T.PublicKey(e.programId),new T.PublicKey(e.id)],a,c,d;for(let f=0;f<e.rewardDefaultInfos.length;f++)e.rewardDefaultInfos[f].mint.address===o.mint.toString()&&(a=f,c=new T.PublicKey(t.rewardInfos[f].vault),d=new T.PublicKey(t.rewardInfos[f].mint.address));(a===void 0||c===void 0)&&Fr.logWithError("reward mint check error","no reward mint",e.rewardDefaultInfos);let l=Vn(u).publicKey,m=[this.setRewardParamsInstruction(u,n.wallet,r,l,new T.PublicKey(e.config.id),n.tokenAccount,c,d,a,new mn.default(o.openTime),new mn.default(o.endTime),o.emissionsPerSecondX64)];return{address:{rewardVault:c,operationId:l},signers:[],instructions:m,instructionTypes:[_.ClmmSetReward],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static collectRewardInstructions({poolInfo:e,poolKeys:t,ownerInfo:n,rewardMint:o}){let[u,r]=[new T.PublicKey(e.programId),new T.PublicKey(e.id)],a,c;for(let l=0;l<e.rewardDefaultInfos.length;l++)e.rewardDefaultInfos[l].mint.address===o.toString()&&(a=l,c=new T.PublicKey(t.rewardInfos[l].vault));(a===void 0||c===void 0)&&Fr.logWithError("reward mint check error","no reward mint",e.rewardDefaultInfos);let d=[this.collectRemainingRewardsInstruction(u,n.wallet,r,n.tokenAccount,c,o,a)];return{address:{rewardVault:c},signers:[],instructions:d,instructionTypes:[_.ClmmCollectReward],lookupTableAddress:t.lookupTableAccount?[t.lookupTableAccount]:[]}}static async makeLockPositions({programId:e,authProgramId:t,poolProgramId:n,payer:o,wallet:u,nftMint:r,nft2022:a,getEphemeralSigners:c}){let d=[],l;if(c)l=new T.PublicKey((await c(1))[0]);else{let A=T.Keypair.generate();d.push(A),l=A.publicKey}let m=a?Z(u,r,D.TOKEN_2022_PROGRAM_ID).publicKey:Z(u,r,D.TOKEN_PROGRAM_ID).publicKey,{publicKey:f}=ze(n,r),p=Lo(e,l).publicKey,y=Z(u,l,D.TOKEN_PROGRAM_ID).publicKey,b=Nt(l).publicKey,g=dt.lockPositionInstructionV2({programId:e,auth:t,payer:o,positionOwner:u,lockOwner:u,positionNftAccount:m,positionId:f,lockPositionId:p,lockNftMint:l,lockNftAccount:y,metadataAccount:b,withMetadata:!0,nft2022:a,positionNftMint:r,authPositionNftAccount:Z(t,r,a?D.TOKEN_2022_PROGRAM_ID:D.TOKEN_PROGRAM_ID).publicKey,positionNftProgram:a?D.TOKEN_2022_PROGRAM_ID:D.TOKEN_PROGRAM_ID});return{address:{positionId:f,lockPositionId:p,lockNftAccount:y,lockNftMint:l,positionNftAccount:m,metadataAccount:b},instructions:[g],signers:d,instructionTypes:[_.ClmmLockPosition],lookupTableAddress:[]}}static lockPositionInstructionV2({programId:e,auth:t,payer:n,positionOwner:o,lockOwner:u,positionNftAccount:r,positionId:a,positionNftMint:c,authPositionNftAccount:d,positionNftProgram:l,lockPositionId:m,lockNftMint:f,lockNftAccount:p,metadataAccount:y,withMetadata:b}){let g=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!0,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:bt,isSigner:!1,isWritable:!1},{pubkey:D.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:De,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:T.SystemProgram.programId,isSigner:!1,isWritable:!1}],A=C([ye("withMetadata")]),w=Buffer.alloc(A.span);A.encode({withMetadata:b},w);let B=Buffer.from([...vr,...w]);return new T.TransactionInstruction({keys:g,programId:e,data:B})}static lockPositionInstruction({programId:e,authProgramId:t,poolProgramId:n,owner:o,positionNft:u}){let{publicKey:r}=Z(o,u,D.TOKEN_PROGRAM_ID),{publicKey:a}=ze(n,u),c=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:Ro(e,a).publicKey,isSigner:!1,isWritable:!0},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:T.SystemProgram.programId,isSigner:!1,isWritable:!1}];return new T.TransactionInstruction({keys:c,programId:e,data:Buffer.from(vr)})}static harvestLockPositionInstruction(e){let[t,n]=[new T.PublicKey(e.poolKeys.programId),new T.PublicKey(e.poolKeys.id)],o=le.getTickArrayStartIndex(e.ownerPosition.tickLower,e.poolKeys.config.tickSpacing),u=le.getTickArrayStartIndex(e.ownerPosition.tickUpper,e.poolKeys.config.tickSpacing),{publicKey:r}=Te(t,n,o),{publicKey:a}=Te(t,n,u),{publicKey:c}=Z(e.owner,e.ownerPosition.nftMint,D.TOKEN_PROGRAM_ID),{publicKey:d}=ze(t,e.ownerPosition.nftMint),{publicKey:l}=lt(t,n,e.ownerPosition.tickLower,e.ownerPosition.tickUpper),m=[];for(let y=0;y<e.poolKeys.rewardInfos.length;y++)m.push({poolRewardVault:new T.PublicKey(e.poolKeys.rewardInfos[y].vault),ownerRewardVault:e.ownerRewardAccounts[y],rewardMint:new T.PublicKey(e.poolKeys.rewardInfos[y].mint.address)});let f=[...m.map(y=>[{pubkey:y.poolRewardVault,isSigner:!1,isWritable:!0},{pubkey:y.ownerRewardVault,isSigner:!1,isWritable:!0},{pubkey:y.rewardMint,isSigner:!1,isWritable:!1}]).flat()],p=[{pubkey:e.authProgramId,isSigner:!1,isWritable:!1},{pubkey:Ro(e.programId,d).publicKey,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:e.owner,isSigner:!0,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:new T.PublicKey(e.poolKeys.vault.A),isSigner:!1,isWritable:!0},{pubkey:new T.PublicKey(e.poolKeys.vault.B),isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:e.userVaultA,isSigner:!1,isWritable:!0},{pubkey:e.userVaultB,isSigner:!1,isWritable:!0},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:yt,isSigner:!1,isWritable:!1},{pubkey:new T.PublicKey(e.poolKeys.mintA.address),isSigner:!1,isWritable:!1},{pubkey:new T.PublicKey(e.poolKeys.mintB.address),isSigner:!1,isWritable:!1},...f];return new T.TransactionInstruction({keys:p,programId:e.programId,data:Buffer.from(_r)})}static harvestLockPositionInstructionV2({programId:e,auth:t,lockPositionId:n,clmmProgram:o,lockOwner:u,lockNftMint:r,lockNftAccount:a,positionNftAccount:c,positionId:d,poolId:l,protocolPosition:m,vaultA:f,vaultB:p,tickArrayLower:y,tickArrayUpper:b,userVaultA:g,userVaultB:A,mintA:w,mintB:B,rewardAccounts:L,exTickArrayBitmap:k}){let x=[...k?[{pubkey:k,isSigner:!1,isWritable:!0}]:[],...L.map(O=>[{pubkey:O.poolRewardVault,isSigner:!1,isWritable:!0},{pubkey:O.ownerRewardVault,isSigner:!1,isWritable:!0},{pubkey:O.rewardMint,isSigner:!1,isWritable:!1}]).flat()],S=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!0,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!0},{pubkey:D.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:D.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:yt,isSigner:!1,isWritable:!1},{pubkey:w,isSigner:!1,isWritable:!1},{pubkey:B,isSigner:!1,isWritable:!1},...x];return new T.TransactionInstruction({keys:S,programId:e,data:Buffer.from(_r)})}};var En=require("@solana/web3.js");var Fo=C([R("instruction")]),Js=C([R("instruction")]),eu=C([s("rewardState"),s("rewardOpenTime"),s("rewardEndTime"),s("rewardLastUpdateTime"),s("totalReward"),s("totalRewardEmissioned"),s("rewardClaimed"),s("rewardPerSecond"),W("accRewardPerShare"),P("rewardVault"),P("rewardMint"),P("rewardSender"),s("rewardType"),M(s(),15,"padding")]),tu=C([s("state"),s("nonce"),P("lpVault"),P("rewardVault"),P(),P(),s(),s(),s("totalReward"),W("perShareReward"),s("lastSlot"),s("perSlotReward")]),nu=C([s("state"),s("nonce"),P("lpVault"),P("rewardVaultA"),s("totalRewardA"),W("perShareRewardA"),s("perSlotRewardA"),R("option"),P("rewardVaultB"),X(7),s("totalRewardB"),W("perShareRewardB"),s("perSlotRewardB"),s("lastSlot"),P()]),ou=C([s(),s("state"),s("nonce"),s("validRewardTokenNum"),W("rewardMultiplier"),s("rewardPeriodMax"),s("rewardPeriodMin"),s("rewardPeriodExtend"),P("lpMint"),P("lpVault"),M(eu,5,"rewardInfos"),P("creator"),P(),M(s(),32,"padding")]),iu=new Proxy(tu,{get(i,e,t){return e==="decode"?(...n)=>{let o=i.decode(...n);return G(v({},o),{version:3,rewardInfos:[{rewardVault:o.rewardVault,totalReward:o.totalReward,perSlotReward:o.perSlotReward,perShareReward:o.perShareReward}]})}:Reflect.get(i,e,t)}}),ru=new Proxy(nu,{get(i,e,t){return e==="decode"?(...n)=>{let o=i.decode(...n);return G(v({},o),{version:5,rewardInfos:[{rewardVault:o.rewardVaultA,totalReward:o.totalRewardA,perSlotReward:o.perSlotRewardA,perShareReward:o.perShareRewardA},{rewardVault:o.rewardVaultB,totalReward:o.totalRewardB,perSlotReward:o.perSlotRewardB,perShareReward:o.perShareRewardB}]})}:Reflect.get(i,e,t)}}),Wr=new Proxy(ou,{get(i,e,t){return e==="decode"?(...n)=>{let o=i.decode(...n);return G(v({},o),{version:6,rewardInfos:o.rewardInfos.map(u=>{var r;return G(v({},u),{rewardType:((r=Object.entries(dn).find(a=>String(a[1])===u.rewardType.toString()))!=null?r:["Standard SPL"])[0]})})})}:Reflect.get(i,e,t)}}),au=C([s("isSet"),s("rewardPerSecond"),s("rewardOpenTime"),s("rewardEndTime"),s("rewardType")]),su=C([R("instruction"),s("nonce"),M(au,5,"rewardTimeInfo")]),uu=C([R("instruction"),s("rewardReopenTime"),s("rewardEndTime"),s("rewardPerSecond")]),cu=C([R("instruction"),s("isSet"),s("rewardPerSecond"),s("rewardOpenTime"),s("rewardEndTime"),s("rewardType")]),lb=C([s("state"),P("id"),P("owner"),s("deposited"),M(s(),1,"rewardDebts")]),vo=C([s("state"),P("id"),P("owner"),s("deposited"),M(W(),1,"rewardDebts"),s(""),s("voteLockedBalance"),M(s(),15)]),mb=C([s("state"),P("id"),P("owner"),s("deposited"),M(s(),2,"rewardDebts")]),qr=C([s("state"),P("id"),P("owner"),s("deposited"),M(W(),2,"rewardDebts"),M(s(),17)]),Ur=C([s(),s("state"),P("id"),P("owner"),s("deposited"),M(W(),5,"rewardDebts"),M(s(),16)]),Ft=C([R("instruction"),s("amount")]),lu=C([P("mint"),P("grantAuthority"),s("baselineVoteWeightScaledFactor"),s("maxExtraLockupVoteWeightScaledFactor"),s("lockupSaturationSecs"),Qi("digitShift"),M(R(),7,"reserved1"),M(s(),7,"reserved2")]),mu=C([X(8),P("governanceProgramId"),P("realm"),P("realmGoverningTokenMint"),P("realmAuthority"),M(R(),32,"reserved1"),M(lu,4,"votingMints"),Xt("timeOffset"),R("bump"),M(R(),7,"reserved2"),M(s(),11,"reserved3")]),du=C([Xt("startTime"),Xt("endTime"),R("kind"),M(R(),15,"reserved")]),pu=C([M(du,1,"lockup"),s("amountDeposited_native"),s("amountInitiallyLockedNative"),ye("isUsed"),ye("allowClawback"),R("votingMintConfigIdx"),M(R(),29,"reserved")]),fu=C([X(8),P("voterAuthority"),P("registrar"),M(pu,32,"deposits"),R("voterBump"),R("voterWweightRecordBump"),M(R(),94,"reserved")]);var yu=require("@solana/spl-token"),Pb=Q("Raydium_farm_config"),bu=new En.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),gu=new En.PublicKey("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Ab=new En.PublicKey("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var _o={3:vo,5:qr,6:Ur};var dn={"Standard SPL":0,"Option tokens":1},Dn={[or.toString()]:3,[ir.toString()]:4,[rr.toString()]:5,[ko.toString()]:6,[st.FARM_PROGRAM_ID_V3.toString()]:3,[st.FARM_PROGRAM_ID_V4.toString()]:4,[st.FARM_PROGRAM_ID_V5.toString()]:5,[st.FARM_PROGRAM_ID_V6.toString()]:6};var re=require("@solana/web3.js"),Tu=F(require("bn.js")),Qt=require("@solana/spl-token");var wu=F(require("bn.js"));var Gr=require("@solana/web3.js"),zr=F(require("bn.js"));function Pu(i){return typeof i=="object"&&i!==null&&![be,Re,Gr.PublicKey,te,zr.default,Qe,He].some(e=>typeof e=="object"&&i instanceof e)}function pt(i){return typeof i=="string"?oo(i):Array.isArray(i)?i.map(e=>pt(e)):Pu(i)?Object.fromEntries(Object.entries(i).map(([e,t])=>[e,pt(t)])):i}var ku=Q("Raydium.farm.util");function vt({programId:i,poolId:e,owner:t,version:n}){let{publicKey:o}=oe([e.toBuffer(),t.toBuffer(),Buffer.from(n===6?"farmer_info_associated_seed":"staker_info_v2_associated_seed","utf-8")],i);return o}function Vo(i){let e=_o[i];return e||ku.logWithError("invalid version",i),e}var hu=Q("Raydium_farm_instruction"),ag={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])};function Eo(i){let{version:e,id:t,ledger:n,programId:o,owner:u}=i,r={3:9,5:10}[e];r||hu.logWithError(`invalid farm pool version: ${e}`);let a=Buffer.alloc(Fo.span);Fo.encode({instruction:r},a);let c=[I({pubkey:t}),I({pubkey:n}),I({pubkey:u,isWritable:!1}),I({pubkey:re.SystemProgram.programId,isWritable:!1}),I({pubkey:re.SYSVAR_RENT_PUBKEY,isWritable:!1})];return{instruction:new re.TransactionInstruction({programId:o,keys:c,data:a}),instructionType:_.FarmV3CreateLedger}}function Do(i){let{farmInfo:e,farmKeys:t,lpAccount:n,rewardAccounts:o,owner:u,amount:r}=i,[a,c]=[new re.PublicKey(e.programId),new re.PublicKey(e.id)],d=vt({programId:a,poolId:c,owner:u,version:6}),l=Buffer.alloc(Ft.span);Ft.encode({instruction:2,amount:ee(r)},l);let m=[I({pubkey:Qt.TOKEN_PROGRAM_ID,isWritable:!1}),I({pubkey:c}),I({pubkey:new re.PublicKey(t.authority),isWritable:!1}),I({pubkey:new re.PublicKey(t.lpVault)}),I({pubkey:d}),I({pubkey:u,isWritable:!1,isSigner:!0}),I({pubkey:n})];for(let f=0;f<t.rewardInfos.length;f++)m.push(I({pubkey:new re.PublicKey(t.rewardInfos[f].vault)})),m.push(I({pubkey:o[f]}));return new re.TransactionInstruction({programId:a,keys:m,data:l})}function Wo(i){let{farmInfo:e,farmKeys:t,lpAccount:n,rewardAccounts:o,owner:u,amount:r,userAuxiliaryLedgers:a}=i,[c,d]=[new re.PublicKey(e.programId),new re.PublicKey(e.id)],l=vt({programId:c,poolId:d,owner:u,version:5}),m=Buffer.alloc(Ft.span);Ft.encode({instruction:12,amount:ee(r)},m);let f=[I({pubkey:d}),I({pubkey:new re.PublicKey(t.authority),isWritable:!1}),I({pubkey:l}),I({pubkey:u,isWritable:!1,isSigner:!0}),I({pubkey:n}),I({pubkey:new re.PublicKey(t.lpVault)}),I({pubkey:o[0]}),I({pubkey:new re.PublicKey(t.rewardInfos[0].vault)}),I({pubkey:re.SYSVAR_CLOCK_PUBKEY,isWritable:!1}),I({pubkey:Qt.TOKEN_PROGRAM_ID,isWritable:!1})];for(let p=1;p<t.rewardInfos.length;p++)f.push(I({pubkey:o[p]})),f.push(I({pubkey:new re.PublicKey(t.rewardInfos[p].vault)}));if(a)for(let p of a)f.push(I({pubkey:p}));return new re.TransactionInstruction({programId:c,keys:f,data:m})}function qo(i){let{farmInfo:e,farmKeys:t,lpAccount:n,rewardAccounts:o,owner:u,amount:r,userAuxiliaryLedgers:a}=i,[c,d]=[new re.PublicKey(e.programId),new re.PublicKey(e.id)],l=vt({programId:c,poolId:d,owner:u,version:3}),m=Buffer.alloc(Ft.span);Ft.encode({instruction:11,amount:ee(r)},m);let f=[I({pubkey:d}),I({pubkey:new re.PublicKey(t.authority),isWritable:!1}),I({pubkey:l}),I({pubkey:u,isWritable:!1,isSigner:!0}),I({pubkey:n}),I({pubkey:new re.PublicKey(t.lpVault)}),I({pubkey:o[0]}),I({pubkey:new re.PublicKey(t.rewardInfos[0].vault)}),I({pubkey:re.SYSVAR_CLOCK_PUBKEY,isWritable:!1}),I({pubkey:Qt.TOKEN_PROGRAM_ID,isWritable:!1})];if(a)for(let p of a)f.push(I({pubkey:p}));return new re.TransactionInstruction({programId:c,keys:f,data:m})}var xu=F(require("bn.js"));var Mu=require("@solana/web3.js"),pn=require("@solana/spl-token");var Cu=F(require("bn.js"));var Yr=F(require("bn.js"));var qg=new Yr.default(0);var Su=F(require("bn.js"));var Hr=F(require("bn.js")),it=new Hr.default(1e6);var Fu=F(require("bn.js")),vu=F(require("decimal.js"));var Wn=require("@solana/web3.js"),Uo=require("@solana/spl-token");var sP=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),uP=Buffer.from("amm_config","utf8"),cP=Buffer.from("pool","utf8"),lP=Buffer.from("pool_lp_mint","utf8"),mP=Buffer.from("pool_vault","utf8"),dP=Buffer.from("observation","utf8"),pP=Buffer.from("permission","utf8"),fP=Buffer.from("support_mint","utf8"),yP=Buffer.from("creator_fee_share","utf8");var bP=Buffer.from("locked_liquidity","utf8");var KP=Q("Raydium_cpmm"),CP={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 Lu=C([X(8),R("bump"),ye("disableCreatePool"),fe("index"),s("tradeFeeRate"),s("protocolFeeRate"),s("fundFeeRate"),s("createPoolFee"),P("protocolOwner"),P("fundOwner"),s("creatorFeeRate"),s("creatorFeeShareRate"),M(s(),14)]),Qr=C([X(8),P("configId"),P("poolCreator"),P("vaultA"),P("vaultB"),P("mintLp"),P("mintA"),P("mintB"),P("mintProgramA"),P("mintProgramB"),P("observationId"),R("bump"),R("status"),R("lpDecimals"),R("mintDecimalA"),R("mintDecimalB"),s("lpAmount"),s("protocolFeesMintA"),s("protocolFeesMintB"),s("fundFeesMintA"),s("fundFeesMintB"),s("openTime"),s("epoch"),R("feeOn"),ye("enableCreatorFee"),M(R(),6),s("creatorFeesMintA"),s("creatorFeesMintB"),M(s(),28)]),OP=C([X(8),P("configId"),M(s(),30)]),NP=C([X(8),R("bump"),P("creator"),P("ammConfig"),s("shareRate"),M(s(),8)]);var ga=require("@solana/web3.js"),Zt=require("@solana/spl-token"),Pa=F(require("bn.js")),Sc=F(require("decimal.js"));var Go=F(require("bn.js")),zo=new Go.default(25),qn=new Go.default(1e4);var $r=new Set(["5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1","3uaZBfHPfmpAHW7dsimC1SnyR61X4bJqQZKWmRSCXJxv","GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"]);var Xo=C([R("instruction"),s("amountIn"),s("minAmountOut")]),Yo=C([R("instruction"),s("maxAmountIn"),s("amountOut")]),WA=C([R("instruction"),R("nonce")]),_u=C([R("instruction"),R("nonce"),s("startTime")]),Ho=C([s("status"),s("nonce"),s("maxOrder"),s("depth"),s("baseDecimal"),s("quoteDecimal"),s("state"),s("resetFlag"),s("minSize"),s("volMaxCutRatio"),s("amountWaveRatio"),s("baseLotSize"),s("quoteLotSize"),s("minPriceMultiplier"),s("maxPriceMultiplier"),s("systemDecimalValue"),s("minSeparateNumerator"),s("minSeparateDenominator"),s("tradeFeeNumerator"),s("tradeFeeDenominator"),s("pnlNumerator"),s("pnlDenominator"),s("swapFeeNumerator"),s("swapFeeDenominator"),s("baseNeedTakePnl"),s("quoteNeedTakePnl"),s("quoteTotalPnl"),s("baseTotalPnl"),s("poolOpenTime"),s("punishPcAmount"),s("punishCoinAmount"),s("orderbookToInitTime"),W("swapBaseInAmount"),W("swapQuoteOutAmount"),s("swapBase2QuoteFee"),W("swapQuoteInAmount"),W("swapBaseOutAmount"),s("swapQuote2BaseFee"),P("baseVault"),P("quoteVault"),P("baseMint"),P("quoteMint"),P("lpMint"),P("openOrders"),P("marketId"),P("marketProgramId"),P("targetOrders"),P("withdrawQueue"),P("lpVault"),P("owner"),s("lpReserve"),M(s(),3,"padding")]),qA=C([s("accountType"),s("status"),s("nonce"),s("maxOrder"),s("depth"),s("baseDecimal"),s("quoteDecimal"),s("state"),s("resetFlag"),s("minSize"),s("volMaxCutRatio"),s("amountWaveRatio"),s("baseLotSize"),s("quoteLotSize"),s("minPriceMultiplier"),s("maxPriceMultiplier"),s("systemDecimalsValue"),s("abortTradeFactor"),s("priceTickMultiplier"),s("priceTick"),s("minSeparateNumerator"),s("minSeparateDenominator"),s("tradeFeeNumerator"),s("tradeFeeDenominator"),s("pnlNumerator"),s("pnlDenominator"),s("swapFeeNumerator"),s("swapFeeDenominator"),s("baseNeedTakePnl"),s("quoteNeedTakePnl"),s("quoteTotalPnl"),s("baseTotalPnl"),s("poolOpenTime"),s("punishPcAmount"),s("punishCoinAmount"),s("orderbookToInitTime"),W("swapBaseInAmount"),W("swapQuoteOutAmount"),W("swapQuoteInAmount"),W("swapBaseOutAmount"),s("swapQuote2BaseFee"),s("swapBase2QuoteFee"),P("baseVault"),P("quoteVault"),P("baseMint"),P("quoteMint"),P("lpMint"),P("modelDataAccount"),P("openOrders"),P("marketId"),P("marketProgramId"),P("targetOrders"),P("owner"),M(s(),64,"padding")]),Qo=C([R("instruction"),s("baseAmountIn"),s("quoteAmountIn"),s("fixedSide"),s("otherAmountMin")]),Zo=C([R("instruction"),s("lpAmount"),s("baseAmountMin"),s("quoteAmountMin")]);var jr=C([s("fee")]);var ta=require("@solana/web3.js"),fn=F(require("decimal.js")),na=require("@solana/spl-token");var Jr=require("@solana/web3.js");var Vu=Q("Raydium_liquidity_serum");function ea({programId:i,marketId:e}){let t=[e.toBuffer()],n=0,o;for(;n<100;){try{let u=t.concat(Buffer.from([n]),Buffer.alloc(7));o=Jr.PublicKey.createProgramAddressSync(u,i)}catch(u){if(u instanceof TypeError)throw u;n++;continue}return{publicKey:o,nonce:n}}throw Vu.logWithError("unable to find a viable program address nonce","params",{programId:i,marketId:e}),new Error("unable to find a viable program address nonce")}function Un({programId:i}){let{publicKey:e}=oe([Buffer.from("amm_config_account_seed","utf-8")],i);return e}function _t({name:i,programId:e,marketId:t}){let{publicKey:n}=oe([e.toBuffer(),t.toBuffer(),Buffer.from(i,"utf-8")],e);return n}function Eu({programId:i,marketId:e}){let{publicKey:t}=oe([i.toBuffer(),e.toBuffer(),Buffer.from("open_order_associated_seed","utf-8")],i);return t}function oa({programId:i}){return oe([Buffer.from([97,109,109,32,97,117,116,104,111,114,105,116,121])],i)}function jo({version:i,marketVersion:e,marketId:t,baseMint:n,quoteMint:o,baseDecimals:u,quoteDecimals:r,programId:a,marketProgramId:c}){let d=_t({name:"amm_associated_seed",programId:a,marketId:t}),l=_t({name:"lp_mint_associated_seed",programId:a,marketId:t}),{publicKey:m,nonce:f}=oa({programId:a}),p=_t({name:"coin_vault_associated_seed",programId:a,marketId:t}),y=_t({name:"pc_vault_associated_seed",programId:a,marketId:t}),b=_t({name:"temp_lp_token_associated_seed",programId:a,marketId:t}),g=Eu({programId:a,marketId:t}),A=_t({name:"target_associated_seed",programId:a,marketId:t}),w=_t({name:"withdraw_associated_seed",programId:a,marketId:t}),{publicKey:B}=ea({programId:c,marketId:t});return{id:d,baseMint:n,quoteMint:o,lpMint:l,baseDecimals:u,quoteDecimals:r,lpDecimals:u,version:i,programId:a,authority:m,nonce:f,baseVault:p,quoteVault:y,lpVault:b,openOrders:g,targetOrders:A,withdrawQueue:w,marketVersion:e,marketProgramId:c,marketId:t,marketAuthority:B,lookupTableAccount:ta.PublicKey.default,configId:Un({programId:a})}}var $o={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]},Jo=i=>{let e={},t=na.TOKEN_PROGRAM_ID.toBase58();return Object.keys(i).map(n=>{let o=i[n],[u,r]=[o.baseMint.toBase58(),o.quoteMint.toBase58()];e[n]={id:n,version:4,status:o.status.toNumber(),programId:o.programId.toBase58(),mintA:At({address:u,programId:t,decimals:o.baseDecimal.toNumber()}),mintB:At({address:r,programId:t,decimals:o.quoteDecimal.toNumber()}),rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:o.poolPrice.toNumber(),mintAmountA:new fn.default(o.mintAAmount.toString()).div(10**o.baseDecimal.toNumber()).toNumber(),mintAmountB:new fn.default(o.mintBAmount.toString()).div(10**o.quoteDecimal.toNumber()).toNumber(),baseReserve:o.baseReserve,quoteReserve:o.quoteReserve,feeRate:new fn.default(o.tradeFeeNumerator.toString()).div(o.tradeFeeDenominator.toString()).toNumber(),openTime:o.poolOpenTime.toString(),tvl:0,day:$o,week:$o,month:$o,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,type:"Standard",marketId:o.marketId.toBase58(),configId:Un({programId:o.programId}).toBase58(),lpPrice:0,lpAmount:new fn.default(o.lpReserve.toString()).div(10**Math.min(o.baseDecimal.toNumber(),o.quoteDecimal.toNumber())).toNumber(),lpMint:At({address:o.lpMint.toBase58(),programId:t,decimals:Math.min(o.baseDecimal.toNumber(),o.quoteDecimal.toNumber())}),burnPercent:0,feeOn:"Both",hasDynamicFee:!1,tips:[],launchMigratePool:!1}}),e};var rt=require("@solana/spl-token"),J=require("@solana/web3.js");var yn=F(require("bn.js"));var Gn=Q("Raydium_liquidity_instruction");function ia(i){let{poolInfo:e,poolKeys:t,userKeys:n,baseAmountIn:o,quoteAmountIn:u,fixedSide:r,otherAmountMin:a,modelDataPubKey:c=Ct}=i,d=Buffer.alloc(Qo.span);Qo.encode({instruction:3,baseAmountIn:ee(o),quoteAmountIn:ee(u),otherAmountMin:ee(a),fixedSide:r==="base"?j:wt},d);let l=[I({pubkey:rt.TOKEN_PROGRAM_ID,isWritable:!1}),I({pubkey:new J.PublicKey(e.id)}),I({pubkey:new J.PublicKey(t.authority),isWritable:!1}),I({pubkey:new J.PublicKey(t.openOrders),isWritable:!1}),I({pubkey:new J.PublicKey(t.targetOrders)}),I({pubkey:new J.PublicKey(e.lpMint.address)}),I({pubkey:new J.PublicKey(t.vault.A)}),I({pubkey:new J.PublicKey(t.vault.B)})];return e.pooltype.includes("StablePool")&&l.push(I({pubkey:c})),l.push(I({pubkey:new J.PublicKey(e.marketId),isWritable:!1}),I({pubkey:n.baseTokenAccount}),I({pubkey:n.quoteTokenAccount}),I({pubkey:n.lpTokenAccount}),I({pubkey:n.owner,isWritable:!1,isSigner:!0}),I({pubkey:new J.PublicKey(t.marketEventQueue),isWritable:!1})),new J.TransactionInstruction({programId:new J.PublicKey(e.programId),keys:l,data:d})}function ei(i){let{poolInfo:e,poolKeys:t,userKeys:n,lpAmount:o,baseAmountMin:u,quoteAmountMin:r,modelDataPubKey:a=Ct}=i,c=pt(t),d=4;if(e.pooltype.includes("StablePool")&&(d=5),d===4||d===5){let l=Buffer.alloc(Zo.span);Zo.encode({instruction:4,lpAmount:ee(o),baseAmountMin:ee(u),quoteAmountMin:ee(r)},l);let m=[I({pubkey:rt.TOKEN_PROGRAM_ID,isWritable:!1}),I({pubkey:c.id}),I({pubkey:c.authority,isWritable:!1}),I({pubkey:c.openOrders}),I({pubkey:c.targetOrders}),I({pubkey:c.mintLp.address}),I({pubkey:c.vault.A}),I({pubkey:c.vault.B})];return d===5?m.push(I({pubkey:a})):(m.push(I({pubkey:c.id})),m.push(I({pubkey:c.id}))),m.push(I({pubkey:c.marketProgramId,isWritable:!1}),I({pubkey:c.marketId}),I({pubkey:c.marketBaseVault}),I({pubkey:c.marketQuoteVault}),I({pubkey:c.marketAuthority,isWritable:!1}),I({pubkey:n.lpTokenAccount}),I({pubkey:n.baseTokenAccount}),I({pubkey:n.quoteTokenAccount}),I({pubkey:n.owner,isWritable:!1,isSigner:!0}),I({pubkey:c.marketEventQueue}),I({pubkey:c.marketBids}),I({pubkey:c.marketAsks})),new J.TransactionInstruction({programId:c.programId,keys:m,data:l})}return new J.TransactionInstruction({programId:c.programId,keys:[]})}function ti({programId:i,ammId:e,ammAuthority:t,ammOpenOrders:n,lpMint:o,coinMint:u,pcMint:r,coinVault:a,pcVault:c,withdrawQueue:d,ammTargetOrders:l,poolTempLp:m,marketProgramId:f,marketId:p,userWallet:y,userCoinVault:b,userPcVault:g,userLpVault:A,nonce:w,openTime:B,coinAmount:L,pcAmount:k,ammConfigId:x,feeDestinationId:S}){let O=C([R("instruction"),R("nonce"),s("openTime"),s("pcAmount"),s("coinAmount")]),N=[{pubkey:rt.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:rt.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:J.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:De,isSigner:!1,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:x,isSigner:!1,isWritable:!1},{pubkey:S,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!0,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!0}],K=Buffer.alloc(O.span);return O.encode({instruction:1,nonce:w,openTime:B,coinAmount:L,pcAmount:k},K),{instruction:new J.TransactionInstruction({keys:N,programId:i,data:K}),instructionType:_.AmmV4CreatePool}}function Du({poolKeys:i,userKeys:e,amountIn:t,minAmountOut:n,modelDataPubKey:o=Ct},u){let r=pt(i),a=Buffer.alloc(Xo.span);Xo.encode({instruction:9,amountIn:ee(t),minAmountOut:ee(n)},a);let c=[I({pubkey:rt.TOKEN_PROGRAM_ID,isWritable:!1}),I({pubkey:r.id}),I({pubkey:r.authority,isWritable:!1}),I({pubkey:r.openOrders})];return u===4&&c.push(I({pubkey:r.targetOrders})),c.push(I({pubkey:r.vault.A}),I({pubkey:r.vault.B})),u===5&&c.push(I({pubkey:o})),c.push(I({pubkey:r.marketProgramId,isWritable:!1}),I({pubkey:r.marketId}),I({pubkey:r.marketBids}),I({pubkey:r.marketAsks}),I({pubkey:r.marketEventQueue}),I({pubkey:r.marketBaseVault}),I({pubkey:r.marketQuoteVault}),I({pubkey:r.marketAuthority,isWritable:!1}),I({pubkey:e.tokenAccountIn}),I({pubkey:e.tokenAccountOut}),I({pubkey:e.owner,isWritable:!1,isSigner:!0})),new J.TransactionInstruction({programId:r.programId,keys:c,data:a})}function Wu({poolKeys:i,userKeys:e,maxAmountIn:t,amountOut:n,modelDataPubKey:o=Ct},u){let r=pt(i),a=Buffer.alloc(Yo.span);Yo.encode({instruction:11,maxAmountIn:ee(t),amountOut:ee(n)},a);let c=[I({pubkey:rt.TOKEN_PROGRAM_ID,isWritable:!1}),I({pubkey:r.id}),I({pubkey:r.authority,isWritable:!1}),I({pubkey:r.openOrders}),I({pubkey:r.targetOrders}),I({pubkey:r.vault.A}),I({pubkey:r.vault.B})];return u===5&&c.push(I({pubkey:o})),c.push(I({pubkey:r.marketProgramId,isWritable:!1}),I({pubkey:r.marketId}),I({pubkey:r.marketBids}),I({pubkey:r.marketAsks}),I({pubkey:r.marketEventQueue}),I({pubkey:r.marketBaseVault}),I({pubkey:r.marketQuoteVault}),I({pubkey:r.marketAuthority,isWritable:!1}),I({pubkey:e.tokenAccountIn}),I({pubkey:e.tokenAccountOut}),I({pubkey:e.owner,isWritable:!1,isSigner:!0})),new J.TransactionInstruction({programId:r.programId,keys:c,data:a})}function qu(i,e,t,n,o,u,r,a,c,d){let l=C([R("instructionId"),s("amountIn"),s("minAmountOut")]),m=Buffer.alloc(l.span);l.encode({instructionId:16,amountIn:c,minAmountOut:d},m);let f=[{pubkey:rt.TOKEN_PROGRAM_ID,isWritable:!1,isSigner:!1},{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:t,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!0,isSigner:!1},{pubkey:o,isWritable:!0,isSigner:!1},{pubkey:u,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!0}];return new J.TransactionInstruction({programId:i,keys:f,data:m})}function Uu(i,e,t,n,o,u,r,a,c,d){let l=C([R("instructionId"),s("maxAmountIn"),s("amountOut")]),m=Buffer.alloc(l.span);l.encode({instructionId:17,maxAmountIn:c,amountOut:d},m);let f=[{pubkey:rt.TOKEN_PROGRAM_ID,isWritable:!1,isSigner:!1},{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:t,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!0,isSigner:!1},{pubkey:o,isWritable:!0,isSigner:!1},{pubkey:u,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!0}];return new J.TransactionInstruction({programId:i,keys:f,data:m})}function ni(i){let{poolKeys:e,version:t,userKeys:n,amountIn:o,amountOut:u,fixedSide:r}=i;if(t===4){if(r==="in")return qu(new J.PublicKey(e.programId),new J.PublicKey(e.id),new J.PublicKey(e.authority),new J.PublicKey(e.vault.A),new J.PublicKey(e.vault.B),n.tokenAccountIn,n.tokenAccountOut,n.owner,new yn.default(o.toString()),new yn.default(u.toString()));if(r==="out")return Uu(new J.PublicKey(e.programId),new J.PublicKey(e.id),new J.PublicKey(e.authority),new J.PublicKey(e.vault.A),new J.PublicKey(e.vault.B),n.tokenAccountIn,n.tokenAccountOut,n.owner,new yn.default(o.toString()),new yn.default(u.toString()));Gn.logWithError("invalid params","params",i)}throw Gn.logWithError("invalid version, only support pool v4","poolKeys.version",t),new Error("invalid version")}function oi(i){let{poolKeys:e,version:t,userKeys:n,amountIn:o,amountOut:u,fixedSide:r}=i;if(t===4||t===5){let a={poolKeys:e,userKeys:n};if(r==="in")return Du(G(v({},a),{amountIn:o,minAmountOut:u}),t);if(r==="out")return Wu(G(v({},a),{maxAmountIn:o,amountOut:u}),t);Gn.logWithError("invalid params","params",i)}throw Gn.logWithError("invalid version","poolKeys.version",t),new Error("invalid version")}var Et=5e4,Gu=C([s("x"),s("y"),s("price")]),zu=C([s("accountType"),s("status"),s("multiplier"),s("validDataCount"),M(Gu,Et,"DataElement")]);function Xu(i,e){return[0,Et-2]}function Yu(i){return[0,Et-2]}function Hu(i){return[0,Et-2]}function Qu(i,e,t){let[n,o]=Xu(e,t),u=n,r=o,a=0,c=e*i.multiplier/t;for(;u<=r;){if(a=Math.floor((r+u)/2),a===0||a>=Et-2)return[a,a,!1];let d=i.DataElement[a].x*i.multiplier/i.DataElement[a].y,l=i.DataElement[a-1].x*i.multiplier/i.DataElement[a-1].y,m=i.DataElement[a+1].x*i.multiplier/i.DataElement[a+1].y;if(c===d)return[a,a,!0];if(c===l)return[a-1,a-1,!0];if(c===m)return[a+1,a+1,!0];if(c<l)r=a-1;else{if(c>l&&c<d)return[a-1,a,!0];if(c>d&&c<m)return[a,a+1,!0];u=a+1}}return[a,a,!1]}function ii(i,e,t){let[n,o,u]=Qu(i,e,t);if(!u)return 0;if(n===o){let r=i.DataElement[n].x;return e*i.multiplier/r}else{let r=i.DataElement[n].x,a=i.DataElement[n].y,c=i.DataElement[o].x,d=i.DataElement[o].y,l=t*(c*a-r*d),m=r*l,f=(c-r)*(e*a-r*t)*d,p=m+f;return e*i.multiplier*l/p}}function Vt(i,e,t){return e*i.multiplier/t}function ra(i,e,t){return e*t/i.multiplier}function Zu(i,e){let[t,n]=Yu(e),o=t,u=n,r=0,a=e;for(;o<u;){if(r=Math.floor((u+o)/2),r<=0||r>Et-2)return[r,r,!1];let c=i.DataElement[r].x,d=i.DataElement[r-1].x,l=i.DataElement[r+1].x;if(a===c)return[r,r,!0];if(a===d)return[r-1,r-1,!0];if(a===l)return[r+1,r+1,!0];if(a<d)u=r-1;else{if(a>d&&a<c)return[r-1,r,!0];if(a>c&&a<l)return[r,r+1,!0];o=r+1}}return[r,r,!1]}function $u(i,e){let[t,n]=Hu(e),o=t,u=n,r=0,a=e;for(;o<=u;){if(r=Math.floor((u+o)/2),r<=0||r>=Et-2)return[r,r,!1];let c=i.DataElement[r].y,d=i.DataElement[r-1].y,l=i.DataElement[r+1].y;if(a===c)return[r,r,!0];if(a===d)return[r-1,r-1,!0];if(a===l)return[r+1,r+1,!0];if(a<l)o=r+1;else{if(a<d&&a>c)return[r-1,r,!0];if(a<c&&a>l)return[r,r+1,!0];u=r-1}}return[r,r,!1]}function aa(i,e,t,n){let o=n?e+t:e-t,[u,r,a]=Zu(i,o);if(!a)return[0,0,!1,a];if(u===r)return[i.DataElement[r].price,i.DataElement[r].y,!1,a];{let c=i.DataElement[u].x,d=i.DataElement[r].x,l=i.DataElement[u].price,m=i.DataElement[r].price,f=i.DataElement[u].y,p=i.DataElement[r].y;if(e>=c&&e<=d)return n?[m,p,!0,a]:[l,f,!0,a];{let y,b;return n?(y=l+(m-l)*(e-c)/(d-c),b=f-(o-c)*i.multiplier/m):(y=l+(m-l)*(e-c)/(d-c),b=p+(d-o)*i.multiplier/l),[y,b,!1,a]}}}function ju(i,e,t,n){let o=n?e-t:e+t,[u,r,a]=$u(i,o);if(!a)return[0,0,!1,a];if(u===r)return[i.DataElement[r].price,i.DataElement[r].x,!1,a];{let c=i.DataElement[u].x,d=i.DataElement[r].x,l=i.DataElement[u].price,m=i.DataElement[r].price,f=i.DataElement[u].y,p=i.DataElement[r].y;if(e>=p&&e<=f)return n?[m,d,!0,a]:[l,c,!0,a];{let y,b;return n?(y=l+(m-l)*(f-e)/(f-p),b=c+m*(f-o)/i.multiplier):(y=l+(m-l)*(f-e)/(f-p),b=d-l*(o-p)/i.multiplier),[y,b,!1,a]}}}function Ju(i,e){let t=aa(i,e,0,!1);return t[3]?t[0]:0}function sa(i,e,t,n){let o=ii(i,e,t),u=Vt(i,e,o),r=Vt(i,t,o),a=Vt(i,n,o),c=!0,[d,l,m,f]=aa(i,u,a,c);if(!f)return 0;if(m)return n*i.multiplier/d;{let p=r-l;return ra(i,p,o)}}function ua(i,e,t,n){let o=ii(i,e,t),u=Vt(i,e,o),r=Vt(i,t,o),a=Vt(i,n,o),c=!1,[d,l,m,f]=ju(i,r,a,c);if(!f)return 0;if(m)return n*d/i.multiplier;{let p=u-l;return ra(i,p,o)}}function ec(i){let e=zu.decode(i);return{accountType:e.accountType.toNumber(),status:e.status.toNumber(),multiplier:e.multiplier.toNumber(),validDataCount:e.validDataCount.toNumber(),DataElement:e.DataElement.map(t=>({x:t.x.toNumber(),y:t.y.toNumber(),price:t.price.toNumber()}))}}function ca(i,e,t,n){let o=Ju(i,Vt(i,e,ii(i,e,t)))/i.multiplier;return n?o:1/o}var zn=class{constructor({connection:e,modelDataPubKey:t=Ct}){this._layoutData={accountType:0,status:0,multiplier:0,validDataCount:0,DataElement:[]};this.connection=e,this.modelDataPubKey=t}get stableModelData(){return this._layoutData}async initStableModelLayout(){if(this._layoutData.validDataCount===0&&this.connection){let e=await this.connection.getAccountInfo(this.modelDataPubKey);e&&(this._layoutData=ec(e==null?void 0:e.data))}}};var ri=require("@solana/spl-token"),la=require("@solana/web3.js"),ma=F(require("bn.js"));var Bw=Buffer.from("vault_auth_seed","utf8"),Iw=Buffer.from("global_config","utf8"),xw=Buffer.from("pool_vesting","utf8"),Sw=Buffer.from("platform_config","utf8"),Kw=Buffer.from("platform_fee_vault_auth_seed","utf8"),Cw=Buffer.from("creator_fee_vault_auth_seed","utf8"),Rw=Buffer.from("platform_global_access","utf8"),Lw=Buffer.from("platform_allow_config","utf8"),Ow=Buffer.from("platform_curve_rule","utf8");var Ww={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 qw=new ma.default("18446744073709551615");var tc=C([s(),s("epoch"),R("curveType"),fe("index"),s("migrateFee"),s("tradeFeeRate"),s("maxShareFeeRate"),s("minSupplyA"),s("maxLockRate"),s("minSellRateA"),s("minMigrateRateA"),s("minFundRaisingB"),P("mintB"),P("protocolFeeOwner"),P("migrateFeeOwner"),P("migrateToAmmWallet"),P("migrateToCpmmWallet"),M(s(),16)]),nc=C([s("totalLockedAmount"),s("cliffPeriod"),s("unlockPeriod"),s("startTime"),s("totalAllocatedShare")]),oc=C([s(),s("epoch"),R("bump"),R("status"),R("mintDecimalsA"),R("mintDecimalsB"),R("migrateType"),s("supply"),s("totalSellA"),s("virtualA"),s("virtualB"),s("realA"),s("realB"),s("totalFundRaisingB"),s("protocolFee"),s("platformFee"),s("migrateFee"),nc.replicate("vestingSchedule"),P("configId"),P("platformId"),P("mintA"),P("mintB"),P("vaultA"),P("vaultB"),P("creator"),R("mintProgramFlag"),R("cpmmCreatorFeeOn"),s("platformVestingShare"),M(R(),54)]),Xw=C([s(),s("epoch"),P("poolId"),P("beneficiary"),s("claimedAmount"),s("tokenShareAmount"),M(s(),8)]),ic=C([R("migrateType"),R("migrateCpmmFeeOn"),s("supply"),s("totalSellA"),s("totalFundRaisingB"),s("totalLockedAmount"),s("cliffPeriod"),s("unlockPeriod")]),Yw=C([s("epoch"),R("index"),P("configId"),ic.replicate("bondingCurveParam"),M(s(),50)]),da=C([s(),s("epoch"),P("platformClaimFeeWallet"),P("platformLockNftWallet"),s("platformScale"),s("creatorScale"),s("burnScale"),s("feeRate"),M(R(),64,"name"),M(R(),256,"web"),M(R(),256,"img"),P("cpConfigId"),s("creatorFeeRate"),P("transferFeeExtensionAuth"),P("platformVestingWallet"),s("platformVestingScale"),P("platformCpCreator"),R("restrictGlobalConfig"),R("restrictCurveParam"),P("curveRuleManager"),M(R(),78)]),rc=C([R("field"),R("op"),W("value")]),ac=C([fe("groupId"),s("epoch"),wo(rc,"constraints")]),sc=C([s(),R("bump"),R("version"),P("platformId"),P("configId"),s("epoch"),M(s(),8),wo(ac,"groups")]);var pa=require("@solana/spl-token");var fa=F(require("bn.js"));var rk=new fa.default(1e6);var uc=F(require("bn.js")),cc=F(require("decimal.js"));var fc=F(require("bn.js")),yc=F(require("decimal.js"));var lc=F(require("bn.js")),mc=F(require("decimal.js"));var dc=F(require("bn.js")),pc=F(require("decimal.js"));var ai=F(require("bn.js")),Xn=F(require("decimal.js")),Yn=class{static _multipler(e){return new Xn.default(10).pow(e)}static getPrice({priceX64:e,decimalA:t,decimalB:n}){return new Xn.default(e.toString()).div(this._Q64).mul(this._multipler(t)).div(this._multipler(n))}static getPriceX64({price:e,decimalA:t,decimalB:n}){let o=e.mul(this._multipler(n)).div(this._multipler(t));return new ai.default(o.mul(this._Q64).toFixed(0))}};Yn._Q64=new Xn.default(new ai.default(1).shln(64).toString());var Dt=require("@solana/spl-token"),we=F(require("bn.js")),si=require("@solana/web3.js");var Tc=F(require("decimal.js")),YT={initPriceX64:new we.default("515752397214619"),supply:new we.default(1e15),totalSellA:new we.default(7931e11),totalFundRaisingB:new we.default(85e9),totalFundRaisingBUSD:new we.default(125e8),totalLockedAmount:new we.default("0"),cliffPeriod:new we.default("0"),unlockPeriod:new we.default("0"),decimals:6,virtualA:new we.default("1073471847374405"),virtualB:new we.default("30050573465"),realA:new we.default(0),realB:new we.default(0),protocolFee:new we.default(0),platformId:new si.PublicKey("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new we.default(0),cliffPeriod:new we.default(0),unlockPeriod:new we.default(0),startTime:new we.default(0),totalAllocatedShare:new we.default(0)}},HT=new we.default(1e4);var hc={[sr.toBase58()]:3};var Bc=C([X(5),X(8),P("ownAddress"),s("vaultSignerNonce"),P("baseMint"),P("quoteMint"),P("baseVault"),s("baseDepositsTotal"),s("baseFeesAccrued"),P("quoteVault"),s("quoteDepositsTotal"),s("quoteFeesAccrued"),s("quoteDustThreshold"),P("requestQueue"),P("eventQueue"),P("bids"),P("asks"),s("baseLotSize"),s("quoteLotSize"),s("feeRateBps"),s("referrerRebatesAccrued"),X(7)]);var Ic=require("@solana/web3.js");var kh=Q("Serum");var ui=require("@solana/spl-token"),ci=require("@solana/web3.js"),xc=F(require("bn.js"));var bB=new Pa.default(0);var kt=require("@solana/web3.js"),Aa=require("@solana/spl-token"),li=F(require("bn.js"));var Oe=class extends Ne{static getPdaPoolId(e,t){return oe([Oe.SEED_CONFIG.pool.id,t.toBuffer()],e)}static getPdaOwnerId(e,t,n,o){return oe([Oe.SEED_CONFIG.owner.id,t.toBuffer(),n.toBuffer(),Buffer.from(new li.default(o).toArray())],e)}static async getAllInfo({connection:e,programId:t,poolIds:n,wallet:o,chainTime:u}){if(n.length===0)return[];let r=n.map(l=>Oe.getPdaPoolId(t,l).publicKey),a=[];for(let l=0;l<Oe.VERSION_PROJECT.length;l++)a.push(...r.map(m=>Oe.getPdaOwnerId(t,m,o,l).publicKey));let c=await $e(e,[...r,...a]),d=[];for(let l=0;l<c.length;l++){let m=Math.floor(l/n.length),f=l%n.length,p=r[f],y=a[l],b=c[f],g=c[n.length+l];if(!(b&&g)||b.data.length!==Oe.POOL_LAYOUT.span||g.data.length!==Oe.OWNER_LAYOUT.span)continue;let A=Oe.POOL_LAYOUT.decode(b.data),w=Oe.OWNER_LAYOUT.decode(g.data),B=A.openTime.toNumber(),L=A.endTime.toNumber(),k=w.tokenInfo.map(O=>O.debtAmount.gt(new li.default(0))).filter(O=>!O).length!==3,x=u>B&&u<L&&A.status===1,S=k&&x;d.push({programId:t,poolId:p,ammId:A.ammId,ownerAccountId:y,snapshotLpAmount:w.lpAmount,project:Oe.VERSION_PROJECT[m],openTime:B,endTime:L,canClaim:S,canClaimErrorType:k?x?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:A.tokenInfo.map((O,N)=>({mintAddress:O.mintAddress,mintVault:O.mintVault,mintDecimals:O.mintDecimals,perLpLoss:O.perLpLoss,debtAmount:w.tokenInfo[N].debtAmount.add(w.tokenInfo[N].claimedAmount)}))})}return d}async makeClaimTransaction({poolInfo:e,ownerInfo:t,feePayer:n}){t.wallet||this.scope.checkOwner();let o=this.createTxBuilder(n),u=t.wallet||this.scope.ownerPubKey,r=[];for(let d of e.tokenInfo){let{account:l,instructionParams:m}=await this.scope.account.getOrCreateTokenAccount({mint:d.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:d.mintAddress.equals(be.WSOL.mint),createInfo:{payer:u,amount:0},skipCloseAccount:!d.mintAddress.equals(be.WSOL.mint),associatedOnly:d.mintAddress.equals(be.WSOL.mint)?!1:t.associatedOnly});m&&o.addInstruction(m),r.push(l)}o.addInstruction({instructions:[Oe.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:u,ownerPda:e.ownerAccountId,claimAddress:r}})]});let{transaction:a,signers:c}=o.build();return[{transaction:a,signer:c}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:t,feePayer:n}){let o=this.createTxBuilder(n),u=t.wallet||this.scope.ownerPubKey,r={};for(let l of e){let m=[];for(let f of l.tokenInfo){let{account:p,instructionParams:y}=await this.scope.account.getOrCreateTokenAccount({mint:f.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:f.mintAddress.equals(be.WSOL.mint),createInfo:{payer:u,amount:0},skipCloseAccount:!f.mintAddress.equals(be.WSOL.mint),associatedOnly:f.mintAddress.equals(be.WSOL.mint)?!1:t.associatedOnly});y&&o.addInstruction(y),p&&(r[f.mintAddress.toString()]=p,m.push(p))}o.addInstruction({instructions:[Oe.makeClaimInstruction({programId:l.programId,poolInfo:l,ownerInfo:{wallet:u,ownerPda:l.ownerAccountId,claimAddress:m}})]})}let{transaction:a,signers:c}=o.build(),d=o.allInstructions;return lo(d,[u,...c.map(l=>l.publicKey)])?[{transaction:a,signer:c}]:[{transaction:new kt.Transaction().add(...d.slice(0,o.AllTxData.instructions.length-1)),signer:c},{transaction:new kt.Transaction().add(...d.slice(o.AllTxData.instructions.length-1)),signer:[]},{transaction:new kt.Transaction().add(...o.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:t,ownerInfo:n}){let o=C([]),u=[{pubkey:n.wallet,isSigner:!0,isWritable:!0},{pubkey:t.poolId,isSigner:!1,isWritable:!0},{pubkey:n.ownerPda,isSigner:!1,isWritable:!0},...n.claimAddress.map(c=>({pubkey:c,isSigner:!1,isWritable:!0})),...t.tokenInfo.map(({mintVault:c})=>({pubkey:c,isSigner:!1,isWritable:!0})),{pubkey:Aa.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1}],r=Buffer.alloc(o.span);o.encode({},r);let a=Buffer.from([10,66,208,184,161,6,191,98,...r]);return new kt.TransactionInstruction({keys:u,programId:e,data:a})}},Je=Oe;Je.CLAIMED_NUM=3,Je.POOL_LAYOUT=C([X(8),R("bump"),R("status"),s("openTime"),s("endTime"),P("ammId"),M(C([R("mintDecimals"),P("mintAddress"),P("mintVault"),s("perLpLoss"),s("totalClaimedAmount")]),Oe.CLAIMED_NUM,"tokenInfo"),M(s(),10,"padding")]),Je.OWNER_LAYOUT=C([X(8),R("bump"),R("version"),P("poolId"),P("owner"),s("lpAmount"),M(C([P("mintAddress"),s("debtAmount"),s("claimedAmount")]),Oe.CLAIMED_NUM,"tokenInfo"),M(s(),4,"padding")]),Je.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new kt.PublicKey(e)),Je.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},Je.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];var Rc=require("@solana/spl-token"),Lc=require("@solana/web3.js"),Oc=F(require("bn.js"));var Me=require("@solana/web3.js"),$t=require("@solana/spl-token");function Kc(i="accountFlags"){let e=new On(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 mi=C([X(5),Kc("accountFlags"),P("ownAddress"),s("vaultSignerNonce"),P("baseMint"),P("quoteMint"),P("baseVault"),s("baseDepositsTotal"),s("baseFeesAccrued"),P("quoteVault"),s("quoteDepositsTotal"),s("quoteFeesAccrued"),s("quoteDustThreshold"),P("requestQueue"),P("eventQueue"),P("bids"),P("asks"),s("baseLotSize"),s("quoteLotSize"),s("feeRateBps"),s("referrerRebatesAccrued"),X(7)]);function Cc({programId:i,marketInfo:e}){let t=C([R("version"),me("instruction"),s("baseLotSize"),s("quoteLotSize"),fe("feeRateBps"),s("vaultSignerNonce"),s("quoteDustThreshold")]),n=[{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:Me.SYSVAR_RENT_PUBKEY,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}:[]),o=Buffer.alloc(t.span);return t.encode({version:0,instruction:0,baseLotSize:e.baseLotSize,quoteLotSize:e.quoteLotSize,feeRateBps:e.feeRateBps,vaultSignerNonce:e.vaultSignerNonce,quoteDustThreshold:e.quoteDustThreshold},o),new Me.TransactionInstruction({keys:n,programId:i,data:o})}async function di({connection:i,wallet:e,marketInfo:t}){var r,a,c,d,l,m,f,p;let n=new Me.Transaction,o=await i.getMinimumBalanceForRentExemption(165);n.add(Me.SystemProgram.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:t.baseVault.seed,newAccountPubkey:t.baseVault.publicKey,lamports:o,space:165,programId:$t.TOKEN_PROGRAM_ID}),Me.SystemProgram.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:t.quoteVault.seed,newAccountPubkey:t.quoteVault.publicKey,lamports:o,space:165,programId:$t.TOKEN_PROGRAM_ID}),(0,$t.createInitializeAccountInstruction)(t.baseVault.publicKey,t.baseMint,t.vaultOwner),(0,$t.createInitializeAccountInstruction)(t.quoteVault.publicKey,t.quoteMint,t.vaultOwner),Me.SystemProgram.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:t.id.seed,newAccountPubkey:t.id.publicKey,lamports:await i.getMinimumBalanceForRentExemption(mi.span),space:mi.span,programId:t.programId}));let u=new Me.Transaction;return u.add(Me.SystemProgram.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:t.requestQueue.seed,newAccountPubkey:t.requestQueue.publicKey,lamports:t.lowestFeeMarket?6208320:await i.getMinimumBalanceForRentExemption((r=t.requestQueueSpace)!=null?r:5120+12),space:t.lowestFeeMarket?764:(a=t.requestQueueSpace)!=null?a:5120+12,programId:t.programId}),Me.SystemProgram.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:t.eventQueue.seed,newAccountPubkey:t.eventQueue.publicKey,lamports:t.lowestFeeMarket?79594560:await i.getMinimumBalanceForRentExemption((c=t.eventQueueSpace)!=null?c:262144+12),space:t.lowestFeeMarket?11308:(d=t.eventQueueSpace)!=null?d:262144+12,programId:t.programId}),Me.SystemProgram.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:t.bids.seed,newAccountPubkey:t.bids.publicKey,lamports:t.lowestFeeMarket?101977920:await i.getMinimumBalanceForRentExemption((l=t.orderbookQueueSpace)!=null?l:65536+12),space:t.lowestFeeMarket?14524:(m=t.orderbookQueueSpace)!=null?m:65536+12,programId:t.programId}),Me.SystemProgram.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:t.asks.seed,newAccountPubkey:t.asks.publicKey,lamports:t.lowestFeeMarket?101977920:await i.getMinimumBalanceForRentExemption((f=t.orderbookQueueSpace)!=null?f:65536+12),space:t.lowestFeeMarket?14524:(p=t.orderbookQueueSpace)!=null?p:65536+12,programId:t.programId}),Cc({programId:t.programId,marketInfo:{id:t.id.publicKey,requestQueue:t.requestQueue.publicKey,eventQueue:t.eventQueue.publicKey,bids:t.bids.publicKey,asks:t.asks.publicKey,baseVault:t.baseVault.publicKey,quoteVault:t.quoteVault.publicKey,baseMint:t.baseMint,quoteMint:t.quoteMint,baseLotSize:t.baseLotSize,quoteLotSize:t.quoteLotSize,feeRateBps:t.feeRateBps,vaultSignerNonce:t.vaultSignerNonce,quoteDustThreshold:t.quoteDustThreshold}})),[{transaction:n,signer:[],instructionTypes:[_.CreateAccount,_.CreateAccount,_.InitAccount,_.InitAccount]},{transaction:u,signer:[],instructionTypes:[_.CreateAccount,_.CreateAccount,_.CreateAccount,_.CreateAccount,_.CreateAccount,_.InitMarket]}]}var Mc=require("@solana/web3.js"),bn=require("@solana/spl-token");var hx=new Tt.default(2),Bx=new Tt.default(3),Ix=new Tt.default(5),eo=new Tt.default(10),xx=new Tt.default(100),Sx=new Tt.default(1e3),Kx=new Tt.default(1e4);function ao(i){return eo.pow(ee(i))}function Hn(i,e){let t=i.divmod(e);return t.mod.isZero()?t.div:i.isNeg()===e.isNeg()?t.div.iaddn(1):t.div}function pi(i,e=1,t=[]){let n=[...i];if(e<=0)return t;for(;n.length;)t.push(n.splice(0,e));return t}var fi=F(require("bn.js"));function wa(i,e){let{div:t,mod:n}=i.divmod(e);return n.gt(new fi.default(0))?t.add(new fi.default(1)):t}var Qn=require("@solana/spl-token"),yi=Q("Raydium_accountInfo_util");async function $e(i,e,t){let{batchRequest:n,commitment:o="confirmed",chunkCount:u=100}=v({batchRequest:!1},t),r=pi(e,u),a=new Array(r.length).fill([]);if(n){let c=r.map(m=>{let f=i._buildArgs([m.map(p=>p.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:f}}),d=pi(c,10);a=(await(await Promise.all(d.map(async m=>await i._rpcBatchRequest(m)))).flat()).map(m=>(m.error&&yi.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${m.error.message}`),m.result.value.map(f=>{if(f){let{data:p,executable:y,lamports:b,owner:g,rentEpoch:A}=f;return p.length!==2&&p[1]!=="base64"&&yi.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:y,lamports:b,owner:new ka.PublicKey(g),rentEpoch:A}}return null})))}else try{a=await Promise.all(r.map(c=>i.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&yi.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}async function mt(i,e,t){let n=await $e(i,e.map(o=>o.pubkey),t);return e.map((o,u)=>G(v({},o),{accountInfo:n[u]}))}var ue=F(require("bn.js")),ae=F(require("decimal.js"));var gn=class extends Ne{constructor(t){super(t);this.stableLayout=new zn({connection:this.scope.connection,modelDataPubKey:this.scope.cluster==="mainnet"?void 0:st.MODEL_DATA_PUBKEY})}async initLayout(){await this.stableLayout.initStableModelLayout()}async load(){this.checkDisabled()}computePairAmount({poolInfo:t,amount:n,slippage:o,baseIn:u}){let r=new ue.default(new ae.default(n).mul(10**t[u?"mintA":"mintB"].decimals).toFixed(0)),a=Bo(t[u?"mintB":"mintA"]),[c,d]=[new ue.default(new ae.default(t.mintAmountA).mul(10**t.mintA.decimals).toString()),new ue.default(new ae.default(t.mintAmountB).mul(10**t.mintB.decimals).toString())],l=new ue.default(new ae.default(t.lpAmount).mul(10**t.lpMint.decimals).toFixed(0,ae.default.ROUND_DOWN));this.logDebug("baseReserve:",c.toString(),"quoteReserve:",d.toString()),this.logDebug("tokenIn:",u?t.mintA.symbol:t.mintB.symbol,"amountIn:",r.toString(),"anotherToken:",u?t.mintB.symbol:t.mintA.symbol,"slippage:",`${o.toSignificant()}%`,"baseReserve",c.toString(),"quoteReserve",d.toString());let m=u?"base":"quote";this.logDebug("input side:",m);let f=j;r.isZero()||(f=m==="base"?Hn(r.mul(d),c):Hn(r.mul(c),d)),this.logDebug("amountRaw:",f.toString(),"lpAmount:",l.toString());let p=Hn(r.mul(l),m==="base"?c:d);this.logDebug("liquidity:",p.toString());let y=new He(new ue.default(1)).add(o),b=new He(new ue.default(1)).sub(o),g=y.mul(f).quotient,A=b.mul(f).quotient,w=new Re(a,f),B=new Re(a,g),L=new Re(a,A);return this.logDebug("anotherAmount:",w.toFixed(),"maxAnotherAmount:",B.toFixed()),{anotherAmount:w,maxAnotherAmount:B,minAnotherAmount:L,liquidity:p}}async getAmmPoolKeys(t){return(await this.scope.api.fetchPoolKeysById({idList:[t]}))[0]}async addLiquidity(t){let{poolInfo:n,poolKeys:o,amountInA:u,amountInB:r,otherAmountMin:a,fixedSide:c,config:d,txVersion:l,computeBudgetConfig:m,txTipConfig:f,feePayer:p}=t;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),this.logDebug("amountInA:",u,"amountInB:",r),(u.isZero()||r.isZero())&&this.logAndCreateError("amounts must greater than zero","amountInA & amountInB",{amountInA:u.toFixed(),amountInB:r.toFixed()});let{account:y}=this.scope,{bypassAssociatedCheck:b,checkCreateATAOwner:g}=v({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},d),[A,w]=[u.token,r.token],B=await y.getCreatedTokenAccount({mint:A.mint,associatedOnly:!1}),L=await y.getCreatedTokenAccount({mint:w.mint,associatedOnly:!1});!B&&!L&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",y.tokenAccounts);let k=await y.getCreatedTokenAccount({mint:new pe.PublicKey(n.lpMint.address)}),x=[A,w],S=[B,L],O=[u.raw,r.raw],N=u.token.mint.toBase58()===n.mintA.address?"base":"quote",K="base";["quote","base"].includes(N)||this.logAndCreateError("invalid fixedSide","fixedSide",c),N==="quote"?(x.reverse(),S.reverse(),O.reverse(),K=c==="a"?"quote":"base"):N==="base"&&(K=c==="a"?"base":"quote");let[z,U]=x,[V,H]=S,[Y,ce]=O,se=o!=null?o:await this.getAmmPoolKeys(n.id),ke=this.createTxBuilder(p),at=await y.handleTokenAccount({side:"in",amount:Y,mint:z.mint,tokenAccount:V,bypassAssociatedCheck:b,checkCreateATAOwner:g}),{tokenAccount:Ve}=at,Xe=Ce(at,["tokenAccount"]);ke.addInstruction(Xe);let Ue=await y.handleTokenAccount({side:"in",amount:ce,mint:U.mint,tokenAccount:H,bypassAssociatedCheck:b,checkCreateATAOwner:g}),{tokenAccount:et}=Ue,Ee=Ce(Ue,["tokenAccount"]);ke.addInstruction(Ee);let Fe=await y.handleTokenAccount({side:"out",amount:0,mint:new pe.PublicKey(n.lpMint.address),tokenAccount:k,bypassAssociatedCheck:b,checkCreateATAOwner:g}),{tokenAccount:Be}=Fe,tt=Ce(Fe,["tokenAccount"]);return ke.addInstruction(tt),ke.addInstruction({instructions:[ia({poolInfo:n,poolKeys:se,userKeys:{baseTokenAccount:Ve,quoteTokenAccount:et,lpTokenAccount:Be,owner:this.scope.ownerPubKey},baseAmountIn:Y,quoteAmountIn:ce,otherAmountMin:a.raw,fixedSide:K})],instructionTypes:[n.pooltype.includes("StablePool")?_.AmmV5AddLiquidity:_.AmmV4AddLiquidity],lookupTableAddress:se.lookupTableAccount?[se.lookupTableAccount]:[]}),ke.addCustomComputeBudget(m),ke.addTipInstruction(f),l===0?await ke.buildV0():ke.build()}async removeLiquidity(t){this.scope.availability.removeStandardPosition===!1&&this.logAndCreateError("remove liquidity feature disabled in your region");let{poolInfo:n,poolKeys:o,lpAmount:u,baseAmountMin:r,quoteAmountMin:a,config:c,txVersion:d,computeBudgetConfig:l,txTipConfig:m,feePayer:f}=t,p=o!=null?o:await this.getAmmPoolKeys(n.id),[y,b,g]=[new pe.PublicKey(n.mintA.address),new pe.PublicKey(n.mintB.address),new pe.PublicKey(n.lpMint.address)];this.logDebug("lpAmount:",u),this.logDebug("baseAmountMin:",r),this.logDebug("quoteAmountMin:",a),u.isZero()&&this.logAndCreateError("amount must greater than zero","lpAmount",u.toString());let{account:A}=this.scope,w=await A.getCreatedTokenAccount({mint:g,associatedOnly:!1});w||this.logAndCreateError("cannot found lpTokenAccount","tokenAccounts",A.tokenAccounts);let B=await A.getCreatedTokenAccount({mint:y}),L=await A.getCreatedTokenAccount({mint:b}),k=this.createTxBuilder(f),{bypassAssociatedCheck:x,checkCreateATAOwner:S}=v({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},c),U=await A.handleTokenAccount({side:"out",amount:0,mint:y,tokenAccount:B,bypassAssociatedCheck:x,checkCreateATAOwner:S}),{tokenAccount:O}=U,N=Ce(U,["tokenAccount"]);k.addInstruction(N);let V=await A.handleTokenAccount({side:"out",amount:0,mint:b,tokenAccount:L,bypassAssociatedCheck:x,checkCreateATAOwner:S}),{tokenAccount:K}=V,z=Ce(V,["tokenAccount"]);return k.addInstruction(z),k.addInstruction({instructions:[ei({poolInfo:n,poolKeys:p,userKeys:{lpTokenAccount:w,baseTokenAccount:O,quoteTokenAccount:K,owner:this.scope.ownerPubKey},lpAmount:u,baseAmountMin:r,quoteAmountMin:a})],lookupTableAddress:p.lookupTableAccount?[p.lookupTableAccount]:[],instructionTypes:[n.pooltype.includes("StablePool")?_.AmmV5RemoveLiquidity:_.AmmV4RemoveLiquidity]}),k.addCustomComputeBudget(l),k.addTipInstruction(m),d===0?await k.buildV0():k.build()}async removeAllLpAndCreateClmmPosition({poolInfo:t,clmmPoolInfo:n,removeLpAmount:o,createPositionInfo:u,farmInfo:r,userFarmLpAmount:a,base:c,computeBudgetConfig:d,payer:l,userAuxiliaryLedgers:m,tokenProgram:f=he.TOKEN_PROGRAM_ID,checkCreateATAOwner:p=!0,getEphemeralSigners:y,txVersion:b,feePayer:g}){if((this.scope.availability.removeStandardPosition===!1||this.scope.availability.createConcentratedPosition===!1)&&this.logAndCreateError("remove liquidity or create position feature disabled in your region"),!(t.mintA.address===n.mintA.address||t.mintA.address===n.mintB.address)||!(t.mintB.address===n.mintA.address||t.mintB.address===n.mintB.address))throw Error("mint check error");let A=this.createTxBuilder(g),w={};for(let se of this.scope.account.tokenAccountRawInfos)(w[se.accountInfo.mint.toString()]===void 0||Z(this.scope.ownerPubKey,se.accountInfo.mint,he.TOKEN_PROGRAM_ID).publicKey.equals(se.pubkey))&&(w[se.accountInfo.mint.toString()]=se.pubkey);let B=w[t.lpMint.address];if(B===void 0)throw Error("find lp account error in trade accounts");let L=o.add(a!=null?a:new ue.default(0)),k=t.mintA.address===be.WSOL.mint.toString(),x=t.mintB.address===be.WSOL.mint.toString(),{account:S,instructionParams:O}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:he.TOKEN_PROGRAM_ID,mint:new pe.PublicKey(t.mintA.address),owner:this.scope.ownerPubKey,createInfo:k?{payer:this.scope.ownerPubKey}:void 0,skipCloseAccount:!k,notUseTokenAccount:k,associatedOnly:!0,checkCreateATAOwner:p});if(A.addInstruction(O||{}),S===void 0)throw new Error("base token account not found");let{account:N,instructionParams:K}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:he.TOKEN_PROGRAM_ID,mint:new pe.PublicKey(t.mintB.address),owner:this.scope.ownerPubKey,createInfo:x?{payer:this.scope.ownerPubKey,amount:0}:void 0,skipCloseAccount:!x,notUseTokenAccount:x,associatedOnly:!0,checkCreateATAOwner:p});if(A.addInstruction(K||{}),N===void 0)throw new Error("quote token account not found");if(w[t.mintA.address]=S,w[t.mintB.address]=N,r!==void 0&&!(a!=null&&a.isZero())){let se=Dn[r.programId],ke=vt({programId:new pe.PublicKey(r.programId),poolId:new pe.PublicKey(r.id),owner:this.scope.ownerPubKey,version:se}),Ve,Xe=await this.scope.connection.getAccountInfo(ke);if(Xe&&(Ve=Vo(se).decode(Xe.data)),se!==6&&!Ve){let{instruction:Fe,instructionType:ft}=Eo({id:new pe.PublicKey(r.id),programId:new pe.PublicKey(r.programId),version:se,ledger:ke,owner:this.scope.ownerPubKey});A.addInstruction({instructions:[Fe],instructionTypes:[ft]})}let et=[];for(let Fe of r.rewardInfos){let ft=Fe.mint.address===be.WSOL.mint.toString();if(w[Fe.mint.address])et.push(w[Fe.mint.address]);else{let{account:jt,instructionParams:ht}=await this.scope.account.getOrCreateTokenAccount({mint:new pe.PublicKey(Fe.mint.address),tokenProgram:f,owner:this.scope.ownerPubKey,skipCloseAccount:!ft,createInfo:{payer:l||this.scope.ownerPubKey},associatedOnly:!0,checkCreateATAOwner:p});jt||this.logAndCreateError("farm reward account not found:",Fe.mint.address),ht&&A.addInstruction(ht),et.push(jt)}}let Ee=(await this.scope.api.fetchFarmKeysById({ids:r.id}))[0],Be={userAuxiliaryLedgers:m,amount:a,owner:this.scope.ownerPubKey,farmInfo:r,farmKeys:Ee,lpAccount:B,rewardAccounts:et},tt=Dn[r.programId],at=tt===6?Do(Be):tt===5?Wo(Be):qo(Be),Ue={3:_.FarmV3Withdraw,5:_.FarmV5Withdraw,6:_.FarmV6Withdraw};A.addInstruction({instructions:[at],instructionTypes:[Ue[tt]]})}let z=await this.getAmmPoolKeys(t.id),U=ei({poolInfo:t,poolKeys:z,userKeys:{lpTokenAccount:B,baseTokenAccount:S,quoteTokenAccount:N,owner:this.scope.ownerPubKey},lpAmount:L,baseAmountMin:0,quoteAmountMin:0});A.addInstruction({instructions:[U],instructionTypes:[t.pooltype.includes("StablePool")?_.AmmV5RemoveLiquidity:_.AmmV4RemoveLiquidity],lookupTableAddress:z.lookupTableAccount?[z.lookupTableAccount]:[]});let[V,H]=t.mintA.address===n.mintA.address?[S,N]:[N,S],Y=await this.scope.clmm.getClmmPoolKeys(n.id),ce=await dt.openPositionFromBaseInstructions(G(v({poolInfo:n,poolKeys:Y,ownerInfo:{feePayer:this.scope.ownerPubKey,wallet:this.scope.ownerPubKey,tokenAccountA:V,tokenAccountB:H},withMetadata:"create"},u),{liquidity:new ue.default(0),base:c,getEphemeralSigners:y}));return A.addInstruction({instructions:[...ce.instructions],signers:ce.signers,instructionTypes:[...ce.instructionTypes],lookupTableAddress:Y.lookupTableAccount?[Y.lookupTableAccount]:[]}),b===0?A.sizeCheckBuildV0({computeBudgetConfig:d}):A.sizeCheckBuild({computeBudgetConfig:d})}async createPoolV4({programId:t,marketInfo:n,baseMintInfo:o,quoteMintInfo:u,baseAmount:r,quoteAmount:a,startTime:c,ownerInfo:d,associatedOnly:l=!1,checkCreateATAOwner:m=!1,tokenProgram:f,txVersion:p,feeDestinationId:y,computeBudgetConfig:b,txTipConfig:g,feePayer:A}){var H;let w=d.feePayer||((H=this.scope.owner)==null?void 0:H.publicKey),B=d.useSOLBalance&&o.mint.equals(he.NATIVE_MINT),L=d.useSOLBalance&&u.mint.equals(he.NATIVE_MINT),k=this.createTxBuilder(A),{account:x,instructionParams:S}=await this.scope.account.getOrCreateTokenAccount({mint:o.mint,owner:this.scope.ownerPubKey,createInfo:B?{payer:w,amount:r}:void 0,notUseTokenAccount:B,skipCloseAccount:!B,associatedOnly:B?!1:l,checkCreateATAOwner:m});k.addInstruction(S||{});let{account:O,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({mint:u.mint,owner:this.scope.ownerPubKey,createInfo:L?{payer:w,amount:a}:void 0,notUseTokenAccount:L,skipCloseAccount:!L,associatedOnly:L?!1:l,checkCreateATAOwner:m});if(k.addInstruction(N||{}),x===void 0||O===void 0)throw Error("you don't has some token account");let K=jo({version:4,marketVersion:3,marketId:n.marketId,baseMint:o.mint,quoteMint:u.mint,baseDecimals:o.decimals,quoteDecimals:u.decimals,programId:t,marketProgramId:n.programId}),z={programId:t,ammId:K.id,ammAuthority:K.authority,ammOpenOrders:K.openOrders,lpMint:K.lpMint,coinMint:K.baseMint,pcMint:K.quoteMint,coinVault:K.baseVault,pcVault:K.quoteVault,withdrawQueue:K.withdrawQueue,ammTargetOrders:K.targetOrders,poolTempLp:K.lpVault,marketProgramId:K.marketProgramId,marketId:K.marketId,ammConfigId:K.configId,feeDestinationId:y},{instruction:U,instructionType:V}=ti(G(v({},z),{userWallet:this.scope.ownerPubKey,userCoinVault:x,userPcVault:O,userLpVault:Z(this.scope.ownerPubKey,K.lpMint,f).publicKey,nonce:K.nonce,openTime:c,coinAmount:r,pcAmount:a}));return k.addInstruction({instructions:[U],instructionTypes:[V]}),k.addCustomComputeBudget(b),k.addTipInstruction(g),k.versionBuild({txVersion:p,extInfo:{address:z}})}async createMarketAndPoolV4({programId:t=To,marketProgram:n=ar,feeDestinationId:o=cr,tokenProgram:u,baseMintInfo:r,quoteMintInfo:a,baseAmount:c,quoteAmount:d,startTime:l,ownerInfo:m,lowestFeeMarket:f,assignSeed:p,associatedOnly:y=!1,checkCreateATAOwner:b=!1,lotSize:g=1,tickSize:A=.01,txVersion:w,computeBudgetConfig:B,txTipConfig:L,feePayer:k}){var gi,Pi,Ai;let x=this.scope.ownerPubKey,S=m.feePayer||((gi=this.scope.owner)==null?void 0:gi.publicKey),O=m.useSOLBalance&&r.mint.equals(he.NATIVE_MINT),N=m.useSOLBalance&&a.mint.equals(he.NATIVE_MINT),K=p?`${r.mint.toBase58().slice(0,7)}-${a.mint.toBase58().slice(0,7)}-${p}`:void 0,z=Ge({fromPublicKey:x,programId:n,assignSeed:K&&`${K}-market`}),U=Ge({fromPublicKey:x,programId:n,assignSeed:K&&`${K}-request`}),V=Ge({fromPublicKey:x,programId:n,assignSeed:K&&`${K}-event`}),H=Ge({fromPublicKey:x,programId:n,assignSeed:K&&`${K}-bids`}),Y=Ge({fromPublicKey:x,programId:n,assignSeed:K&&`${K}-asks`}),ce=Ge({fromPublicKey:x,programId:he.TOKEN_PROGRAM_ID,assignSeed:K&&`${K}-baseVault`}),se=Ge({fromPublicKey:x,programId:he.TOKEN_PROGRAM_ID,assignSeed:K&&`${K}-quoteVault`}),ke=0,Ve=new ue.default(100);function Xe(){let nt=new ue.default(0);for(;;)try{return{vaultOwner:pe.PublicKey.createProgramAddressSync([z.publicKey.toBuffer(),nt.toArrayLike(Buffer,"le",8)],n),vaultSignerNonce:nt}}catch{if(nt.iaddn(1),nt.gt(new ue.default(25555)))throw Error("find vault owner error")}}let{vaultOwner:et,vaultSignerNonce:Ee}=Xe(),Be=new ue.default(Math.round(10**r.decimals*g)),tt=new ue.default(Math.round(g*10**a.decimals*A));if(Be.eq(j))throw Error("lot size is too small");if(tt.eq(j))throw Error("tick size or lot size is too small");let at=await di({connection:this.scope.connection,wallet:this.scope.ownerPubKey,marketInfo:{programId:n,vaultOwner:et,baseMint:r.mint,quoteMint:a.mint,id:z,baseVault:ce,quoteVault:se,requestQueue:U,eventQueue:V,bids:H,asks:Y,feeRateBps:ke,quoteDustThreshold:Ve,vaultSignerNonce:Ee,baseLotSize:Be,quoteLotSize:tt,lowestFeeMarket:f}}),Ue=this.createTxBuilder(k);Ue.addInstruction({instructions:at[0].transaction.instructions,signers:at[0].signer});for await(let nt of at.slice(1,at.length))Ue.addInstruction({instructions:nt.transaction.instructions,signers:nt.signer,instructionTypes:nt.instructionTypes});let{account:Fe,instructionParams:ft}=await this.scope.account.getOrCreateTokenAccount({mint:r.mint,owner:this.scope.ownerPubKey,createInfo:O?{payer:S,amount:c}:void 0,notUseTokenAccount:O,skipCloseAccount:!O,associatedOnly:O?!1:y,checkCreateATAOwner:b,assignSeed:O&&K?`${K}-wsol`:void 0});Ue.addInstruction(ft||{});let{account:jt,instructionParams:ht}=await this.scope.account.getOrCreateTokenAccount({mint:a.mint,owner:this.scope.ownerPubKey,createInfo:N?{payer:S,amount:d}:void 0,notUseTokenAccount:N,skipCloseAccount:!N,associatedOnly:N?!1:y,checkCreateATAOwner:b,assignSeed:N&&K?`${K}-wsol`:void 0});if(Ue.addInstruction(ht||{}),Fe===void 0)throw Error("you don't has base token account");if(jt===void 0)throw Error("you don't has quote token account");let Ke=jo({version:4,marketVersion:3,marketId:z.publicKey,baseMint:r.mint,quoteMint:a.mint,baseDecimals:r.decimals,quoteDecimals:a.decimals,programId:t,marketProgramId:n}),Zn={programId:t,ammId:Ke.id,ammAuthority:Ke.authority,ammOpenOrders:Ke.openOrders,lpMint:Ke.lpMint,coinMint:Ke.baseMint,pcMint:Ke.quoteMint,coinVault:Ke.baseVault,pcVault:Ke.quoteVault,withdrawQueue:Ke.withdrawQueue,ammTargetOrders:Ke.targetOrders,poolTempLp:Ke.lpVault,marketProgramId:Ke.marketProgramId,marketId:Ke.marketId,ammConfigId:Ke.configId,feeDestinationId:o},{instruction:Ta,instructionType:ha}=ti(G(v({},Zn),{userWallet:this.scope.ownerPubKey,userCoinVault:Fe,userPcVault:jt,userLpVault:Z(this.scope.ownerPubKey,Ke.lpMint,u).publicKey,nonce:Ke.nonce,openTime:l,coinAmount:c,pcAmount:d}));Ue.addInstruction({instructions:[Ta],instructionTypes:[ha]});let bi=O||N?[((Pi=ft==null?void 0:ft.instructions)==null?void 0:Pi[0])||((Ai=ht==null?void 0:ht.instructions)==null?void 0:Ai[0])].filter(nt=>!!nt):void 0;return w===0?Ue.sizeCheckBuildV0({computeBudgetConfig:B,splitIns:bi,address:v({requestQueue:U.publicKey,eventQueue:V.publicKey,bids:H.publicKey,asks:Y.publicKey,baseVault:ce.publicKey,quoteVault:se.publicKey,baseMint:new pe.PublicKey(r.mint),quoteMint:new pe.PublicKey(a.mint)},Zn)}):Ue.sizeCheckBuild({computeBudgetConfig:B,splitIns:bi,address:v({requestQueue:U.publicKey,eventQueue:V.publicKey,bids:H.publicKey,asks:Y.publicKey,baseVault:ce.publicKey,quoteVault:se.publicKey,baseMint:new pe.PublicKey(r.mint),quoteMint:new pe.PublicKey(a.mint)},Zn)})}async getCreatePoolFee({programId:t}){let n=Un({programId:t}),o=await this.scope.connection.getAccountInfo(n,{dataSlice:{offset:536,length:8}});if(o===null)throw Error("get config account error");return jr.decode(o.data).fee}computeAmountOut({poolInfo:t,amountIn:n,mintIn:o,mintOut:u,slippage:r}){let[a,c]=[o.toString(),u.toString()];if(a!==t.mintA.address&&a!==t.mintB.address)throw new Error("toke not match");if(c!==t.mintA.address&&c!==t.mintB.address)throw new Error("toke not match");let{baseReserve:d,quoteReserve:l}=t,m=[d,l],f=[t.mintA.decimals,t.mintB.decimals],p=a==t.mintA.address?"base":"quote";p==="quote"&&(m.reverse(),f.reverse());let[y,b]=m,[g,A]=f,w=t.version===4,B;if(w)B=new ae.default(b.toString()).div(10**A).div(new ae.default(y.toString()).div(10**g));else{let V=ca(this.stableLayout.stableModelData,d.toNumber(),l.toNumber(),!1);p==="quote"?B=new ae.default(1e6).div(V*1e6):B=new ae.default(V*1e6).div(1e6)}let L=n,k=new ue.default(0),x=new ue.default(0);if(!L.isZero())if(w){x=wa(L.mul(zo),qn);let V=L.sub(x),H=y.add(V);k=b.mul(V).div(H)}else{x=L.mul(new ue.default(2)).div(new ue.default(1e4));let V=L.sub(x);p==="quote"?k=new ue.default(sa(this.stableLayout.stableModelData,l.toNumber(),d.toNumber(),V.toNumber())):k=new ue.default(ua(this.stableLayout.stableModelData,l.toNumber(),d.toNumber(),V.toNumber()))}let S=new ue.default(new ae.default(k.toString()).mul(1-r).toFixed(0)),O=k,N=S,K=new ae.default(k.toString()).div(new ae.default(L.sub(x).toString()).toFixed(0));!L.isZero()&&!k.isZero()&&(K=new ae.default(k.toString()).div(10**A).div(new ae.default(L.sub(x).toString()).div(10**g)));let z=B.sub(K).div(B).mul(100);return{amountOut:O,minAmountOut:N,currentPrice:B,executionPrice:K,priceImpact:z,fee:x}}computeAmountIn({poolInfo:t,amountOut:n,mintIn:o,mintOut:u,slippage:r}){let{baseReserve:a,quoteReserve:c}=t;o.toString()!==t.mintA.address&&o.toString()!==t.mintB.address&&this.logAndCreateError("mintIn does not match pool"),u.toString()!==t.mintA.address&&u.toString()!==t.mintB.address&&this.logAndCreateError("mintOut does not match pool"),this.logDebug("baseReserve:",a.toString()),this.logDebug("quoteReserve:",c.toString());let d=o.toString()===t.mintA.address,[l,m]=d?[t.mintA,t.mintB]:[t.mintB,t.mintA];this.logDebug("currencyOut:",m.symbol||m.address),this.logDebug("amountOut:",new ae.default(n.toString()).div(10**m.decimals).toDecimalPlaces(m.decimals).toString(),l.symbol||l.address),this.logDebug("slippage:",`${r*100}%`);let f=[a,c],p=d?"quote":"base";p==="base"&&f.reverse(),this.logDebug("output side:",p);let[y,b]=f,g=new ae.default(b.toString()).div(10**t[d?"mintB":"mintA"].decimals).div(new ae.default(y.toString()).div(10**t[d?"mintA":"mintB"].decimals));this.logDebug("currentPrice:",`1 ${l.symbol||l.address} \u2248 ${g.toString()} ${m.symbol||m.address}`),this.logDebug("currentPrice invert:",`1 ${m.symbol||m.address} \u2248 ${new ae.default(1).div(g).toString()} ${l.symbol||l.address}`);let A=new ue.default(0),w=n,B=new ue.default(0);if(!w.isZero()){w.gt(b)&&(w=b.sub(new ue.default(1)));let K=b.sub(w),z=y.mul(w).div(K);A=z.mul(qn).div(qn.sub(zo)),B=A.sub(z)}let L=new ue.default(new ae.default(A.toString()).mul(1+r).toFixed(0)),k=A,x=L;this.logDebug("amountIn:",new ae.default(k.toString()).div(10**l.decimals).toDecimalPlaces(l.decimals).toString()),this.logDebug("maxAmountIn:",new ae.default(x.toString()).div(10**l.decimals).toDecimalPlaces(l.decimals).toString());let S=null;!A.isZero()&&!w.isZero()&&(S=new ae.default(w.toString()).div(10**m.decimals).div(new ae.default(A.toString()).div(10**l.decimals)),this.logDebug("executionPrice:",`1 ${m.symbol||m.address} \u2248 ${S.toDecimalPlaces(Math.max(t.mintA.decimals,t.mintB.decimals)).toString()} ${l.symbol||l.address}`),this.logDebug("executionPrice invert:",`1 ${m.symbol||m.address} \u2248 ${new ae.default(1).div(S).toDecimalPlaces(Math.max(t.mintA.decimals,t.mintB.decimals)).toString()} ${l.symbol||l.address}`));let O=g.mul(k.toString()),N=O.sub(n.toString()).abs().div(O);return this.logDebug("priceImpact:",`${N.toString()}%`),{amountIn:k,maxAmountIn:x,currentPrice:g,executionPrice:S,priceImpact:N,fee:B}}async swap({poolInfo:t,poolKeys:n,amountIn:o,amountOut:u,inputMint:r,fixedSide:a,txVersion:c,config:d,computeBudgetConfig:l,txTipConfig:m,feePayer:f}){let p=this.createTxBuilder(f),{associatedOnly:y=!0,inputUseSolBalance:b=!0,outputUseSolBalance:g=!0}=d||{},[A,w]=r===t.mintA.address?[t.mintA,t.mintB]:[t.mintB,t.mintA],B=b&&A.address===Ye.toBase58(),L=g&&w.address===Ye.toBase58(),{account:k,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:he.TOKEN_PROGRAM_ID,mint:new pe.PublicKey(A.address),owner:this.scope.ownerPubKey,createInfo:B?{payer:this.scope.ownerPubKey,amount:o}:void 0,skipCloseAccount:!B,notUseTokenAccount:B,associatedOnly:y});p.addInstruction(x||{}),k||this.logAndCreateError("input token account not found",{token:A.symbol||A.address,tokenAccountIn:k,inputTokenUseSolBalance:B,associatedOnly:y});let{account:S,instructionParams:O}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:he.TOKEN_PROGRAM_ID,mint:new pe.PublicKey(w.address),owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!L,notUseTokenAccount:L,associatedOnly:L?!1:y});p.addInstruction(O||{}),S===void 0&&this.logAndCreateError("output token account not found",{token:w.symbol||w.address,tokenAccountOut:S,outputTokenUseSolBalance:L,associatedOnly:y});let N=n||await this.getAmmPoolKeys(t.id),K=4;return t.pooltype.includes("StablePool")&&(K=5),p.addInstruction({instructions:[K===4?ni({version:K,poolKeys:N,userKeys:{tokenAccountIn:k,tokenAccountOut:S,owner:this.scope.ownerPubKey},amountIn:o,amountOut:u,fixedSide:a}):oi({version:K,poolKeys:N,userKeys:{tokenAccountIn:k,tokenAccountOut:S,owner:this.scope.ownerPubKey},amountIn:o,amountOut:u,fixedSide:a})],instructionTypes:[K===4?_.AmmV4SwapBaseIn:_.AmmV5SwapBaseIn]}),p.addCustomComputeBudget(l),p.addTipInstruction(m),p.versionBuild({txVersion:c})}async getRpcPoolInfo(t){return(await this.getRpcPoolInfos([t]))[t]}async getRpcPoolInfos(t,n){let o=await mt(this.scope.connection,t.map(l=>({pubkey:new pe.PublicKey(l)})),n),u={},r=[];for(let l=0;l<t.length;l++){let m=o[l];if(m===null||!m.accountInfo)throw Error("fetch pool info error: "+String(t[l]));let f=Ho.decode(m.accountInfo.data);u[String(t[l])]=G(v({},f),{programId:m.accountInfo.owner}),r.push(f.baseVault,f.quoteVault)}let a={},c=await mt(this.scope.connection,r.map(l=>({pubkey:new pe.PublicKey(l)})),n);for(let l=0;l<r.length;l++){let m=c[l].accountInfo;if(m===null)throw Error("fetch vault info error: "+r[l]);a[String(r[l])]=new ue.default(he.AccountLayout.decode(m.data).amount.toString())}let d={};for(let[l,m]of Object.entries(u)){let f=a[m.baseVault.toString()].sub(m.baseNeedTakePnl),p=a[m.quoteVault.toString()].sub(m.quoteNeedTakePnl);d[l]=G(v({},m),{baseReserve:f,mintAAmount:a[m.baseVault.toString()],mintBAmount:a[m.quoteVault.toString()],quoteReserve:p,poolPrice:new ae.default(p.toString()).div(new ae.default(10).pow(m.quoteDecimal.toString())).div(new ae.default(f.toString()).div(new ae.default(10).pow(m.baseDecimal.toString())))})}return d}async getPoolInfoFromRpc({poolId:t}){let n=await this.getRpcPoolInfo(t),o=Jo({[t]:n}),u=o[t],r=await this.scope.tradeV2.computePoolToPoolKeys({pools:[o[t]],ammRpcData:{[t]:n}});return{poolRpcData:n,poolInfo:u,poolKeys:r[0]}}async fetchPoolBalances(){await this.scope.account.fetchWalletTokenAccounts({forceUpdate:!0});let t=this.scope.account.tokenAccounts.filter(a=>!a.mint.equals(pe.PublicKey.default)&&!a.amount.isZero()).map(a=>a.mint),u=(await $e(this.scope.connection,t)).map((a,c)=>a&&a.data.length===he.MintLayout.span?G(v({},he.MintLayout.decode(a.data)),{address:t[c]}):void 0).filter(Boolean).filter(a=>this.scope.cluster==="devnet"?a:$r.has(a.mintAuthority.toString())),r=await this.scope.api.fetchPoolByLpMints({ids:u.map(a=>a.address.toBase58()).join(",")});return u.map((a,c)=>{var d,l;return{mintData:a,address:a.address,poolInfo:r[c],balance:(l=(d=this.scope.account.tokenAccounts.find(m=>m.mint.equals(a.address)))==null?void 0:d.amount)!=null?l:new ue.default(0)}})}};0&&(module.exports={});
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
//# sourceMappingURL=liquidity.js.map