@sega-so/sega-sdk
Version:
An SDK for building applications on top of SEGA.
2 lines • 41.7 kB
JavaScript
var wt=Object.defineProperty,St=Object.defineProperties;var At=Object.getOwnPropertyDescriptors;var he=Object.getOwnPropertySymbols;var Je=Object.prototype.hasOwnProperty,Xe=Object.prototype.propertyIsEnumerable;var ze=(n,e,t)=>e in n?wt(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,M=(n,e)=>{for(var t in e||(e={}))Je.call(e,t)&&ze(n,t,e[t]);if(he)for(var t of he(e))Xe.call(e,t)&&ze(n,t,e[t]);return n},j=(n,e)=>St(n,At(e));var ye=(n,e)=>{var t={};for(var r in n)Je.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&he)for(var r of he(n))e.indexOf(r)<0&&Xe.call(n,r)&&(t[r]=n[r]);return t};var P=(n,e,t)=>new Promise((r,f)=>{var i=h=>{try{o(t.next(h))}catch(y){f(y)}},s=h=>{try{o(t.throw(h))}catch(y){f(y)}},o=h=>h.done?r(h.value):Promise.resolve(h.value).then(i,s);o((t=t.apply(n,e)).next())});import{PublicKey as un,Transaction as He,TransactionInstruction as cn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ln}from"@solana/spl-token";import xt from"bn.js";import{PublicKey as Ct}from"@solana/web3.js";import{get as Ze,set as Bt}from"lodash";var Oe=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(r=>typeof r=="object"?JSON.stringify(r):r).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}},Qe={},kt={};function _(n){let e=Ze(Qe,n);if(!e){let t=Ze(kt,n);e=new Oe({name:n,logLevel:t}),Bt(Qe,n,e)}return e}import{MINT_SIZE as Pn,TOKEN_PROGRAM_ID as wn,getTransferFeeConfig as Sn,unpackMint as An}from"@solana/spl-token";var Ne=_("Sega_accountInfo_util");function be(n,e,t){return P(this,null,function*(){let{batchRequest:r,commitment:f="confirmed",chunkCount:i=100}=M({batchRequest:!1},t),s=Re(e,i),o=new Array(s.length).fill([]);if(r){let h=s.map(u=>({methodName:"getMultipleAccounts",args:n._buildArgs([u.map(b=>b.toBase58())],f,"base64")})),y=Re(h,10);o=(yield(yield Promise.all(y.map(u=>P(this,null,function*(){return yield n._rpcBatchRequest(u)})))).flat()).map(u=>(u.error&&Ne.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.error.message}`),u.result.value.map(S=>{if(S){let{data:b,executable:d,lamports:T,owner:a,rentEpoch:k}=S;return b.length!==2&&b[1]!=="base64"&&Ne.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(b[0],"base64"),executable:d,lamports:T,owner:new Ct(a),rentEpoch:k}}return null})))}else try{o=yield Promise.all(s.map(h=>n.getMultipleAccountsInfo(h,f)))}catch(h){h instanceof Error&&Ne.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${h.message}`)}return o.flat()})}import G from"bn.js";import xo from"decimal.js";import Mt from"big.js";import qn from"bn.js";import It from"toformat";var Lt=It,re=Lt;import xe from"big.js";import Nt from"bn.js";import Rt from"decimal.js-light";import oe from"bn.js";var $e=9007199254740991;function U(n){let e=_("Sega_parseBigNumberish");if(n instanceof oe)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new oe(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=$e||n<=-$e)&&e.logWithError(`BigNumberish number overflow: ${n}`),new oe(String(n))):typeof n=="bigint"?new oe(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new oe(0))}var Te=_("module/fraction"),Ee=re(xe),ie=re(Rt),Dt={0:ie.ROUND_DOWN,1:ie.ROUND_HALF_UP,2:ie.ROUND_UP},Et={0:xe.roundDown,1:xe.roundHalfUp,2:xe.roundUp},q=class n{constructor(e,t=new Nt(1)){this.numerator=U(e),this.denominator=U(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new n(this.denominator,this.numerator)}add(e){let t=e instanceof n?e:new n(U(e));return this.denominator.eq(t.denominator)?new n(this.numerator.add(t.numerator),this.denominator):new n(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof n?e:new n(U(e));return this.denominator.eq(t.denominator)?new n(this.numerator.sub(t.numerator),this.denominator):new n(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof n?e:new n(U(e));return new n(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof n?e:new n(U(e));return new n(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},r=1){Number.isInteger(e)||Te.logWithError(`${e} is not an integer.`),e<=0&&Te.logWithError(`${e} is not positive.`),ie.set({precision:e+1,rounding:Dt[r]});let f=new ie(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return f.toFormat(f.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},r=1){return Number.isInteger(e)||Te.logWithError(`${e} is not an integer.`),e<0&&Te.logWithError(`${e} is negative.`),Ee.DP=e,Ee.RM=Et[r]||1,new Ee(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Qn=_("Sega_amount"),$n=re(Mt);import{PublicKey as Ft}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as et}from"@solana/spl-token";var tt={chainId:101,address:Ft.default.toBase58(),programId:et.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"sega",extensions:{coingeckoId:"solana"}},z={chainId:101,address:"So11111111111111111111111111111111111111112",programId:et.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"sega",extensions:{coingeckoId:"solana"}};import{PublicKey as _e}from"@solana/web3.js";import{PublicKey as O,SystemProgram as nt,SYSVAR_RENT_PUBKEY as Kt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Vt}from"@solana/spl-token";function Me({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var ar=[Me({pubkey:Vt,isWritable:!1}),Me({pubkey:nt.programId,isWritable:!1}),Me({pubkey:Kt,isWritable:!1})];function rt({publicKey:n,transformSol:e}){let t=ot(n.toString());if(t instanceof O)return e&&t.equals(se)?De:t;if(e&&t.toString()===se.toBase58())return De;if(typeof t=="string"){if(t===O.default.toBase58())return O.default;try{return new O(t)}catch(r){throw new Error("invalid public key")}}throw new Error("invalid public key")}function ot(n){try{return new O(n)}catch(e){return n}}var ur=new O("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),cr=new O("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),lr=new O("SysvarRent111111111111111111111111111111111"),mr=new O("SysvarC1ock11111111111111111111111111111111"),Wt=new O("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),pr=new O("Sysvar1nstructions1111111111111111111111111"),dr=nt.programId,fr=new O("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),gr=new O("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),hr=new O("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),yr=new O("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),br=new O("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Tr=new O("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),xr=new O("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Pr=new O("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),wr=new O("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Sr=new O("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ar=new O("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),De=new O("So11111111111111111111111111111111111111112"),se=O.default;var Pe=class Pe{constructor({mint:e,decimals:t,symbol:r,name:f,skipMint:i=!1,isToken2022:s=!1}){if(e===se.toBase58()||e instanceof _e&&se.equals(e)){this.decimals=z.decimals,this.symbol=z.symbol,this.name=z.name,this.mint=new _e(z.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=r||e.toString().substring(0,6),this.name=f||e.toString().substring(0,6),this.mint=i?_e.default:rt({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}};Pe.WSOL=new Pe(j(M({},z),{mint:z.address}));var K=Pe;var we=class we{constructor({decimals:e,symbol:t="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=r}equals(e){return this===e}};we.SOL=new we(tt);var Fe=we;import vt from"bn.js";var Fr=new q(new vt(100));var qr=_("Sega_price");import{PublicKey as so}from"@solana/web3.js";import uo from"bn.js";var Ut=new G(0),Oo=new G(1),No=new G(2),Ro=new G(3),Do=new G(5),_t=new G(10),Eo=new G(100),Mo=new G(1e3),_o=new G(1e4);function Re(n,e=1,t=[]){let r=[...n];if(e<=0)return t;for(;r.length;)t.push(r.splice(0,e));return t}import{PublicKey as ti}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ri}from"@solana/spl-token";import{ComputeBudgetProgram as ut,Keypair as lt,PublicKey as qt,Transaction as mt,TransactionMessage as Gt,VersionedTransaction as pt}from"@solana/web3.js";var ae={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as jt}from"@solana/spl-token";var ct=_("Sega_txUtil"),dt=1644;function Se(n){let e=[],t=[];return n.microLamports&&(e.push(ut.setComputeUnitPrice({microLamports:n.microLamports})),t.push(ae.SetComputeUnitPrice)),n.units&&(e.push(ut.setComputeUnitLimit({units:n.units})),t.push(ae.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}function Q(n,e){return P(this,null,function*(){var r,f;let t=e!=null?e:"confirmed";return(f=yield(r=n.getLatestBlockhash)==null?void 0:r.call(n,{commitment:t}))==null?void 0:f.blockhash})}function Ae(n,e){return P(this,null,function*(){return n.getSignatureStatuses([e]),new Promise((t,r)=>{let f=setTimeout(r,6e4);n.onSignature(e,i=>{if(clearTimeout(f),!i.err){t("");return}r(Object.assign(i.err,{txId:e}))},"confirmed")})})}function Ke(n,e){n.length<1&&ct.logWithError(`no instructions provided: ${n.toString()}`),e.length<1&&ct.logWithError(`no signers provided:, ${e.toString()}`);let t=new mt;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...n);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<dt}catch(r){return!1}}function Be(n,e){let[t,r]=qt.findProgramAddressSync(n,e);return{publicKey:t,nonce:r}}function ue({instructions:n,payer:e,signers:t}){return Ke(n,[e,...t])}function ce({instructions:n,payer:e,lookupTableAddressAccount:t,recentBlockhash:r=lt.generate().publicKey.toString()}){let i=new Gt({payerKey:e,recentBlockhash:r,instructions:n}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new pt(i).serialize()).toString("base64").length<dt}catch(s){return!1}}var Ht=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n),Yt=n=>{let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof pt&&(e=Ht(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch(t){return e.toString("base64")}};function J(n){let e=[];return n.forEach(t=>{t instanceof mt&&(t.recentBlockhash||(t.recentBlockhash=jt.toBase58()),t.feePayer||(t.feePayer=lt.generate().publicKey)),e.push(Yt(t))}),console.log("simulate tx string:",e),e}import{PublicKey as V}from"@solana/web3.js";var ui=new V("SegazTQwbYWknDZkJ6j2Kgvm5gw3MrHGKtWstZdoNKZ"),ci=new V("Ajk8d9bERSaFdeoT1d8JUVfaDayrYLnAdgeB47TFMUaG"),li=new V("2HbjxVVKJ7Ct72Rcd8WK4VTqmwTXL5aAggkH1CHGFGmh"),zt=new V("TegaRdjn9Qeh9DfUU28X19aPPpJtj9gs8ntSYrR5H4K "),Jt=new V("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y"),Xt=new V("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y"),mi=new V("SegaXNnoXYTZiqUt9Xn2XqGcL56b25yzXLuJSpadcMu"),pi=new V("2t1hV2YqnDCPuJZqr7Fy8oAygGwZE5Q9uaQzpLC1QryJ"),di=new V("BLxynZeHE123MmQgNJZiV1pwW4VYh46oZYyC66xwmtTY");var Zt={SERUM_MARKET:V.default,UTIL1216:V.default,CREATE_CPMM_POOL_PROGRAM:zt,CREATE_CPMM_POOL_AUTH:Jt,CREATE_CPMM_POOL_FEE_ACC:Xt};import hi from"bn.js";import{PublicKey as Qt,AddressLookupTableAccount as ft}from"@solana/web3.js";function Ve(t){return P(this,arguments,function*({connection:n,address:e}){let r=yield be(n,[...new Set(e.map(i=>i.toString()))].map(i=>new Qt(i))),f={};for(let i=0;i<e.length;i++){let s=r[i],o=e[i];if(!s)continue;let h=new ft({key:o,state:ft.deserialize(s.data)});f[o.toString()]=h,ke[o.toString()]=h}return f})}var ke={};import{PublicKey as $,sendAndConfirmTransaction as We,SystemProgram as $t,Transaction as le,TransactionMessage as me,VersionedTransaction as pe}from"@solana/web3.js";import en from"axios";var Ce=2e3,Ie=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]}getComputeBudgetConfig(){return P(this,null,function*(){var r;let e=(yield en.get("https://solanacompass.com/api/fees?cacheFreshTime=300000")).data,{avg:t}=(r=e==null?void 0:e[15])!=null?r:{};if(t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}})}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:r}=Se(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push($t.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new $(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(ae.TransferTip),!0):!1}calComputeBudget(r){return P(this,arguments,function*({config:e,defaultIns:t}){try{let f=e||(yield this.getComputeBudgetConfig());if(this.addCustomComputeBudget(f))return;t&&this.instructions.unshift(...t)}catch(f){t&&this.instructions.unshift(...t)}})}addInstruction({instructions:e=[],endInstructions:t=[],signers:r=[],instructionTypes:f=[],endInstructionTypes:i=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...r),this.instructionTypes.push(...f),this.endInstructionTypes.push(...i),this.lookupTableAddress.push(...s.filter(o=>o!==$.default.toString())),this}versionBuild(r){return P(this,arguments,function*({txVersion:e,extInfo:t}){return e===0?yield this.buildV0(M({},t||{})):this.build(t)})}build(e){var r;let t=new le;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,(r=this.owner)!=null&&r.signer&&!this.signers.some(f=>f.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:f=>P(this,null,function*(){var y;let{recentBlockHash:i,skipPreflight:s=!0,sendAndConfirm:o}=f||{},h=i!=null?i:yield Q(this.connection,this.blockhashCommitment);if(t.recentBlockhash=h,this.signers.length&&t.sign(...this.signers),J([t]),(y=this.owner)!=null&&y.isKeyPair)return{txId:o?yield We(this.connection,t,this.signers.find(u=>u.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):yield this.connection.sendRawTransaction(t.serialize(),{skipPreflight:s}),signedTx:t};if(this.signAllTransactions){let p=yield this.signAllTransactions([t]);if(this.signers.length)for(let u of p)try{u.sign(...this.signers)}catch(S){}return{txId:yield this.connection.sendRawTransaction(p[0].serialize(),{skipPreflight:s}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")}),extInfo:e||{}}}buildMultiTx(e){var y;let{extraPreBuildData:t=[],extInfo:r}=e,{transaction:f}=this.build(r),i=t.filter(p=>p.transaction.instructions.length>0),s=[f,...i.map(p=>p.transaction)],o=[this.signers,...i.map(p=>p.signers)],h=[...this.instructionTypes,...i.map(p=>p.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&o.forEach(p=>{p.some(u=>u.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:o,instructionTypes:h,execute:p=>P(this,null,function*(){var k;let{sequentially:u,onTxUpdate:S,skipTxCount:b=0,recentBlockHash:d,skipPreflight:T=!0}=p||{},a=d!=null?d:yield Q(this.connection,this.blockhashCommitment);if((k=this.owner)!=null&&k.isKeyPair){if(u){let g=[],B=0;for(let m of s){if(++B,B<=b)continue;let l=yield We(this.connection,m,this.signers.find(c=>c.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:T});g.push(l)}return{txIds:g,signedTxs:s}}return{txIds:yield yield Promise.all(s.map(g=>P(this,null,function*(){return g.recentBlockhash=a,yield this.connection.sendRawTransaction(g.serialize(),{skipPreflight:T})}))),signedTxs:s}}if(this.signAllTransactions){let g=s.map((m,l)=>(m.recentBlockhash=a,o[l].length&&m.sign(...o[l]),m));J(g);let B=yield this.signAllTransactions(g);if(u){let m=0,l=[],c=()=>P(this,null,function*(){if(!B[m])return;let w=yield this.connection.sendRawTransaction(B[m].serialize(),{skipPreflight:T});l.push({txId:w,status:"sent",signedTx:B[m]}),S==null||S([...l]),m++;let x=!1,A=null,C=null,R=I=>{A!==null&&clearInterval(A),C!==null&&this.connection.removeSignatureListener(C);let L=l.findIndex(D=>D.txId===w);if(L>-1){if(l[L].status==="error"||l[L].status==="success")return;l[L].status=I.err?"error":"success"}S==null||S([...l]),I.err||c()};this.loopMultiTxStatus&&(A=setInterval(()=>P(this,null,function*(){var I;if(x){clearInterval(A);return}try{let L=yield this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});L&&(x=!0,clearInterval(A),R({err:((I=L.meta)==null?void 0:I.err)||null}),console.log("tx status from getTransaction:",w))}catch(L){x=!0,clearInterval(A),console.error("getTransaction timeout:",L,w)}}),Ce)),C=this.connection.onSignature(w,I=>{if(x){this.connection.removeSignatureListener(C);return}x=!0,R(I)},"confirmed"),this.connection.getSignatureStatus(w)});return yield c(),{txIds:l.map(w=>w.txId),signedTxs:B}}else{let m=[];for(let l=0;l<B.length;l+=1){let c=yield this.connection.sendRawTransaction(B[l].serialize(),{skipPreflight:T});m.push(c)}return{txIds:m,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")}),extInfo:r||{}}}versionMultiBuild(f){return P(this,arguments,function*({extraPreBuildData:e,txVersion:t,extInfo:r}){return t===0?yield this.buildV0MultiTx({extraPreBuildData:e,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:r})})}buildV0(e){return P(this,null,function*(){var T;let d=e||{},{lookupTableCache:t={},lookupTableAddress:r=[],forerunCreate:f,recentBlockhash:i}=d,s=ye(d,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),o=M(M({},this.cluster==="devnet"?{}:ke),t),h=Array.from(new Set([...r,...this.lookupTableAddress])),y=[];for(let a of h)o[a]===void 0&&y.push(new $(a));let p=yield Ve({connection:this.connection,address:y});for(let[a,k]of Object.entries(p))o[a]=k;let u=f?$.default.toBase58():i!=null?i:yield Q(this.connection,this.blockhashCommitment),S=new me({payerKey:this.feePayer,recentBlockhash:u,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(o));(T=this.owner)!=null&&T.signer&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let b=new pe(S);return b.sign(this.signers),{builder:this,transaction:b,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:a=>P(this,null,function*(){var B;let{skipPreflight:k=!0,sendAndConfirm:g}=a||{};if(J([b]),(B=this.owner)!=null&&B.isKeyPair){let m=yield this.connection.sendTransaction(b,{skipPreflight:k});return g&&(yield Ae(this.connection,m)),{txId:m,signedTx:b}}if(this.signAllTransactions){let m=yield this.signAllTransactions([b]);if(this.signers.length)for(let l of m)try{l.sign(this.signers)}catch(c){}return{txId:yield this.connection.sendTransaction(m[0],{skipPreflight:k}),signedTx:m[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")}),extInfo:s||{}}})}buildV0MultiTx(e){return P(this,null,function*(){var y;let{extraPreBuildData:t=[],buildProps:r}=e,{transaction:f}=yield this.buildV0(r),i=t.filter(p=>p.builder.instructions.length>0),s=[f,...i.map(p=>p.transaction)],o=[this.signers,...i.map(p=>p.signers)],h=[...this.instructionTypes,...i.map(p=>p.instructionTypes).flat()];return(y=this.owner)!=null&&y.signer&&o.forEach(p=>{p.some(u=>u.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach((p,u)=>P(this,null,function*(){p.sign(o[u])})),{builder:this,transactions:s,signers:o,instructionTypes:h,buildProps:r,execute:p=>P(this,null,function*(){var T;let{sequentially:u,onTxUpdate:S,recentBlockHash:b,skipPreflight:d=!0}=p||{};if(b&&s.forEach(a=>a.message.recentBlockhash=b),J(s),(T=this.owner)!=null&&T.isKeyPair){if(u){let a=[];for(let k of s){let g=yield this.connection.sendTransaction(k,{skipPreflight:d});yield Ae(this.connection,g),a.push(g)}return{txIds:a,signedTxs:s}}return{txIds:yield Promise.all(s.map(a=>P(this,null,function*(){return yield this.connection.sendTransaction(a,{skipPreflight:d})}))),signedTxs:s}}if(this.signAllTransactions){let a=yield this.signAllTransactions(s);if(u){let k=0,g=[],B=()=>P(this,null,function*(){if(!a[k])return;let m=yield this.connection.sendTransaction(a[k],{skipPreflight:d});g.push({txId:m,status:"sent",signedTx:a[k]}),S==null||S([...g]),k++;let l=!1,c=null,w=null,x=A=>{c!==null&&clearInterval(c),w!==null&&this.connection.removeSignatureListener(w);let C=g.findIndex(R=>R.txId===m);if(C>-1){if(g[C].status==="error"||g[C].status==="success")return;g[C].status=A.err?"error":"success"}S==null||S([...g]),A.err||B()};this.loopMultiTxStatus&&(c=setInterval(()=>P(this,null,function*(){var A;if(l){clearInterval(c);return}try{let C=yield this.connection.getTransaction(m,{commitment:"confirmed",maxSupportedTransactionVersion:0});C&&(l=!0,clearInterval(c),x({err:((A=C.meta)==null?void 0:A.err)||null}),console.log("tx status from getTransaction:",m))}catch(C){l=!0,clearInterval(c),console.error("getTransaction timeout:",C,m)}}),Ce)),w=this.connection.onSignature(m,A=>{if(l){this.connection.removeSignatureListener(w);return}l=!0,x(A)},"confirmed"),this.connection.getSignatureStatus(m)});return B(),{txIds:[],signedTxs:a}}else{let k=[];for(let g=0;g<a.length;g+=1){let B=yield this.connection.sendTransaction(a[g],{skipPreflight:d});k.push(B)}return{txIds:k,signedTxs:a}}}throw new Error("please provide owner in keypair format or signAllTransactions function")}),extInfo:r||{}}})}sizeCheckBuild(e){return P(this,null,function*(){var S;let u=e||{},{splitIns:t=[],computeBudgetConfig:r}=u,f=ye(u,["splitIns","computeBudgetConfig"]),i=r?Se(r):{instructions:[],instructionTypes:[]},s=this.signers.reduce((b,d)=>j(M({},b),{[d.publicKey.toBase58()]:d}),{}),o=[],h=[],y=[],p=0;if(this.allInstructions.forEach(b=>{let d=[...y,b],T=r?[...i.instructions,...d]:d,k=[...new Set(d.map(g=>g.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(g=>new $(g));if(b!==t[p]&&y.length<12&&(ue({instructions:T,payer:this.feePayer,signers:k})||ue({instructions:d,payer:this.feePayer,signers:k})))y.push(b);else{if(y.length===0)throw Error("item ins too big");p+=b===t[p]?1:0,ue({instructions:r?[...i.instructions,...y]:[...y],payer:this.feePayer,signers:k})?o.push(new le().add(...i.instructions,...y)):o.push(new le().add(...y)),h.push(Array.from(new Set(y.map(g=>g.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat())).map(g=>s[g]).filter(g=>g!==void 0)),y=[b]}}),y.length>0){let d=[...new Set(y.map(T=>T.keys.filter(a=>a.isSigner).map(a=>a.pubkey.toString())).flat()).values()].map(T=>s[T]).filter(T=>T!==void 0);ue({instructions:r?[...i.instructions,...y]:[...y],payer:this.feePayer,signers:d.map(T=>T.publicKey)})?o.push(new le().add(...i.instructions,...y)):o.push(new le().add(...y)),h.push(d)}return o.forEach(b=>b.feePayer=this.feePayer),(S=this.owner)!=null&&S.signer&&h.forEach(b=>{b.some(d=>d.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),{builder:this,transactions:o,signers:h,instructionTypes:this.instructionTypes,execute:b=>P(this,null,function*(){var m;let{sequentially:d,onTxUpdate:T,skipTxCount:a=0,recentBlockHash:k,skipPreflight:g=!0}=b||{},B=k!=null?k:yield Q(this.connection,this.blockhashCommitment);if(o.forEach((l,c)=>P(this,null,function*(){l.recentBlockhash=B,h[c].length&&l.sign(...h[c])})),J(o),(m=this.owner)!=null&&m.isKeyPair){if(d){let l=0,c=[];for(let w of o){if(++l,l<=a){c.push("tx skipped");continue}let x=yield We(this.connection,w,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});c.push(x)}return{txIds:c,signedTxs:o}}return{txIds:yield Promise.all(o.map(l=>P(this,null,function*(){return yield this.connection.sendRawTransaction(l.serialize(),{skipPreflight:g})}))),signedTxs:o}}if(this.signAllTransactions){let l=yield this.signAllTransactions(o.slice(a,o.length)),c=[...o.slice(0,a),...l];if(d){let w=0,x=[],A=()=>P(this,null,function*(){if(!c[w])return;w<a&&(x.push({txId:"",status:"success",signedTx:c[w]}),T==null||T([...x]),w++,A());let C=yield this.connection.sendRawTransaction(c[w].serialize(),{skipPreflight:g});x.push({txId:C,status:"sent",signedTx:c[w]}),T==null||T([...x]),w++;let R=!1,I=null,L=null,D=F=>{I!==null&&clearInterval(I),L!==null&&this.connection.removeSignatureListener(L);let E=x.findIndex(H=>H.txId===C);if(E>-1){if(x[E].status==="error"||x[E].status==="success")return;x[E].status=F.err?"error":"success"}T==null||T([...x]),F.err||A()};this.loopMultiTxStatus&&(I=setInterval(()=>P(this,null,function*(){var F;if(R){clearInterval(I);return}try{let E=yield this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(R=!0,clearInterval(I),D({err:((F=E.meta)==null?void 0:F.err)||null}),console.log("tx status from getTransaction:",C))}catch(E){R=!0,clearInterval(I),console.error("getTransaction timeout:",E,C)}}),Ce)),L=this.connection.onSignature(C,F=>{if(R){this.connection.removeSignatureListener(L);return}R=!0,D(F)},"confirmed"),this.connection.getSignatureStatus(C)});return yield A(),{txIds:x.map(C=>C.txId),signedTxs:c}}else{let w=[];for(let x=0;x<c.length;x+=1){let A=yield this.connection.sendRawTransaction(c[x].serialize(),{skipPreflight:g});w.push(A)}return{txIds:w,signedTxs:c}}}throw new Error("please provide owner in keypair format or signAllTransactions function")}),extInfo:f||{}}})}sizeCheckBuildV0(e){return P(this,null,function*(){var B;let g=e||{},{computeBudgetConfig:t,splitIns:r=[],lookupTableCache:f={},lookupTableAddress:i=[]}=g,s=ye(g,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),o=M(M({},this.cluster==="devnet"?{}:ke),f),h=Array.from(new Set([...this.lookupTableAddress,...i])),y=[];for(let m of h)o[m]===void 0&&y.push(new $(m));let p=yield Ve({connection:this.connection,address:y});for(let[m,l]of Object.entries(p))o[m]=l;let u=t?Se(t):{instructions:[],instructionTypes:[]},S=yield Q(this.connection,this.blockhashCommitment),b=this.signers.reduce((m,l)=>j(M({},m),{[l.publicKey.toBase58()]:l}),{}),d=[],T=[],a=[],k=0;if(this.allInstructions.forEach(m=>{let l=[...a,m],c=t?[...u.instructions,...l]:l;if(m!==r[k]&&a.length<12&&(ce({instructions:c,payer:this.feePayer,lookupTableAddressAccount:o})||ce({instructions:l,payer:this.feePayer,lookupTableAddressAccount:o})))a.push(m);else{if(a.length===0)throw Error("item ins too big");k+=m===r[k]?1:0;let w={};for(let x of[...new Set(h)])o[x]!==void 0&&(w[x]=o[x]);if(t&&ce({instructions:[...u.instructions,...a],payer:this.feePayer,lookupTableAddressAccount:o,recentBlockhash:S})){let x=new me({payerKey:this.feePayer,recentBlockhash:S,instructions:[...u.instructions,...a]}).compileToV0Message(Object.values(o));d.push(new pe(x))}else{let x=new me({payerKey:this.feePayer,recentBlockhash:S,instructions:[...a]}).compileToV0Message(Object.values(o));d.push(new pe(x))}T.push(Array.from(new Set(a.map(x=>x.keys.filter(A=>A.isSigner).map(A=>A.pubkey.toString())).flat())).map(x=>b[x]).filter(x=>x!==void 0)),a=[m]}}),a.length>0){let l=[...new Set(a.map(c=>c.keys.filter(w=>w.isSigner).map(w=>w.pubkey.toString())).flat()).values()].map(c=>b[c]).filter(c=>c!==void 0);if(t&&ce({instructions:[...u.instructions,...a],payer:this.feePayer,lookupTableAddressAccount:o,recentBlockhash:S})){let c=new me({payerKey:this.feePayer,recentBlockhash:S,instructions:[...u.instructions,...a]}).compileToV0Message(Object.values(o));d.push(new pe(c))}else{let c=new me({payerKey:this.feePayer,recentBlockhash:S,instructions:[...a]}).compileToV0Message(Object.values(o));d.push(new pe(c))}T.push(l)}return(B=this.owner)!=null&&B.signer&&T.forEach(m=>{m.some(l=>l.publicKey.equals(this.owner.publicKey))||m.push(this.owner.signer)}),{builder:this,transactions:d,buildProps:e,signers:T,instructionTypes:this.instructionTypes,execute:m=>P(this,null,function*(){var C;let{sequentially:l,onTxUpdate:c,skipTxCount:w=0,recentBlockHash:x,skipPreflight:A=!0}=m||{};if(d.map((R,I)=>P(this,null,function*(){T[I].length&&R.sign(T[I]),x&&(R.message.recentBlockhash=x)})),J(d),(C=this.owner)!=null&&C.isKeyPair){if(l){let R=0,I=[];for(let L of d){if(++R,R<=w){console.log("skip tx: ",R),I.push("tx skipped");continue}let D=yield this.connection.sendTransaction(L,{skipPreflight:A});yield Ae(this.connection,D),I.push(D)}return{txIds:I,signedTxs:d}}return{txIds:yield Promise.all(d.map(R=>P(this,null,function*(){return yield this.connection.sendTransaction(R,{skipPreflight:A})}))),signedTxs:d}}if(this.signAllTransactions){let R=yield this.signAllTransactions(d.slice(w,d.length)),I=[...d.slice(0,w),...R];if(l){let L=0,D=[],F=()=>P(this,null,function*(){if(!I[L])return;if(L<w){D.push({txId:"",status:"success",signedTx:I[L]}),c==null||c([...D]),L++,F();return}let E=yield this.connection.sendTransaction(I[L],{skipPreflight:A});D.push({txId:E,status:"sent",signedTx:I[L]}),c==null||c([...D]),L++;let H=!1,Z=null,ge=null,Ye=Y=>{Z!==null&&clearInterval(Z),ge!==null&&this.connection.removeSignatureListener(ge);let v=D.findIndex(Pt=>Pt.txId===E);if(v>-1){if(D[v].status==="error"||D[v].status==="success")return;D[v].status=Y.err?"error":"success"}c==null||c([...D]),Y.err||F()};this.loopMultiTxStatus&&(Z=setInterval(()=>P(this,null,function*(){var Y;if(H){clearInterval(Z);return}try{let v=yield this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(H=!0,clearInterval(Z),Ye({err:((Y=v.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",E))}catch(v){H=!0,clearInterval(Z),console.error("getTransaction timeout:",v,E)}}),Ce)),ge=this.connection.onSignature(E,Y=>{if(H){this.connection.removeSignatureListener(ge);return}H=!0,Ye(Y)},"confirmed"),this.connection.getSignatureStatus(E)});return F(),{txIds:[],signedTxs:I}}else{let L=[];for(let D=0;D<I.length;D+=1){let F=yield this.connection.sendTransaction(I[D],{skipPreflight:A});L.push(F)}return{txIds:L,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")}),extInfo:s||{}}})}};import{Connection as vi}from"@solana/web3.js";import{PublicKey as an}from"@solana/web3.js";import bt,{isBN as Tt}from"bn.js";import{bits as ms,BitStructure as ps,blob as tn,Blob as ds,cstr as fs,f32 as gs,f32be as hs,f64 as ys,f64be as bs,greedy as Ts,Layout as nn,ns64 as xs,ns64be as Ps,nu64 as ws,nu64be as Ss,offset as As,s16 as Bs,s16be as ks,s24 as Cs,s24be as Is,s32 as Ls,s32be as Os,s40 as Ns,s40be as Rs,s48 as Ds,s48be as Es,s8 as Ms,seq as rn,struct as _s,Structure as on,u16 as Fs,u16be as Ks,u24 as Vs,u24be as Ws,u32 as vs,u32be as Us,u40 as qs,u40be as Gs,u48 as js,u48be as Hs,u8 as Ys,UInt as sn,union as zs,Union as Js,unionLayoutDiscriminator as Xs,utf8 as Zs}from"@solana/buffer-layout";var ve=nn,gt=on;var ht=sn;var yt=rn;var ee=tn;var Ue=class extends ve{constructor(e,t,r){super(e,r),this.blob=ee(e),this.signed=t}decode(e,t=0){let r=new bt(this.blob.decode(e,t),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(e,t,r=0){return typeof e=="number"&&(e=new bt(e)),this.signed&&(e=e.toTwos(this.span*8)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),t,r)}};function te(n){return new ht(1,n)}function W(n){return new Ue(8,!1,n)}var qe=class extends ve{constructor(e,t,r,f){super(e.span,f),this.layout=e,this.decoder=t,this.encoder=r}decode(e,t){return this.decoder(this.layout.decode(e,t))}encode(e,t,r){return this.layout.encode(this.encoder(e),t,r)}getSpan(e,t){return this.layout.getSpan(e,t)}};function X(n){return new qe(ee(32),e=>new an(e),e=>e.toBuffer(),n)}var Ge=class extends gt{decode(e,t){return super.decode(e,t)}};function ne(n,e,t){return new Ge(n,e,t)}function de(n,e,t){let r,f=typeof e=="number"?e:Tt(e)?e.toNumber():new Proxy(e,{get(i,s){if(!r){let o=Reflect.get(i,"count");r=Tt(o)?o.toNumber():o,Reflect.set(i,"count",r)}return Reflect.get(i,s)},set(i,s,o){return s==="count"&&(r=o),Reflect.set(i,s,o)}});return yt(n,f,t)}var je=(...n)=>n.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch(t){return e}}).join(", "),fe=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=_(t)}createTxBuilder(e){return this.scope.checkOwner(),new Ie({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(je(e))}logInfo(...e){this.logger.info(je(e))}logAndCreateError(...e){let t=je(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var N=class N extends fe{static getPdaPoolId(e,t){return Be([N.SEED_CONFIG.pool.id,t.toBuffer()],e)}static getPdaOwnerId(e,t,r,f){return Be([N.SEED_CONFIG.owner.id,t.toBuffer(),r.toBuffer(),Buffer.from(new xt(f).toArray())],e)}static getAllInfo(s){return P(this,arguments,function*({connection:e,programId:t,poolIds:r,wallet:f,chainTime:i}){if(r.length===0)return[];let o=r.map(u=>N.getPdaPoolId(t,u).publicKey),h=[];for(let u=0;u<N.VERSION_PROJECT.length;u++)h.push(...o.map(S=>N.getPdaOwnerId(t,S,f,u).publicKey));let y=yield be(e,[...o,...h]),p=[];for(let u=0;u<y.length;u++){let S=Math.floor(u/r.length),b=u%r.length,d=o[b],T=h[u],a=y[b],k=y[r.length+u];if(!(a&&k)||a.data.length!==N.POOL_LAYOUT.span||k.data.length!==N.OWNER_LAYOUT.span)continue;let g=N.POOL_LAYOUT.decode(a.data),B=N.OWNER_LAYOUT.decode(k.data),m=g.openTime.toNumber(),l=g.endTime.toNumber(),c=B.tokenInfo.map(A=>A.debtAmount.gt(new xt(0))).filter(A=>!A).length!==3,w=i>m&&i<l&&g.status===1,x=c&&w;p.push({programId:t,poolId:d,ammId:g.ammId,ownerAccountId:T,snapshotLpAmount:B.lpAmount,project:N.VERSION_PROJECT[S],openTime:m,endTime:l,canClaim:x,canClaimErrorType:c?w?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:g.tokenInfo.map((A,C)=>({mintAddress:A.mintAddress,mintVault:A.mintVault,mintDecimals:A.mintDecimals,perLpLoss:A.perLpLoss,debtAmount:B.tokenInfo[C].debtAmount.add(B.tokenInfo[C].claimedAmount)}))})}return p})}makeClaimTransaction(f){return P(this,arguments,function*({poolInfo:e,ownerInfo:t,feePayer:r}){t.wallet||this.scope.checkOwner();let i=this.createTxBuilder(r),s=t.wallet||this.scope.ownerPubKey,o=[];for(let p of e.tokenInfo){let{account:u,instructionParams:S}=yield this.scope.account.getOrCreateTokenAccount({mint:p.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:p.mintAddress.equals(K.WSOL.mint),createInfo:{payer:s,amount:0},skipCloseAccount:!p.mintAddress.equals(K.WSOL.mint),associatedOnly:p.mintAddress.equals(K.WSOL.mint)?!1:t.associatedOnly});S&&i.addInstruction(S),o.push(u)}i.addInstruction({instructions:[N.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:s,ownerPda:e.ownerAccountId,claimAddress:o}})]});let{transaction:h,signers:y}=i.build();return[{transaction:h,signer:y}]})}makeClaimAllTransaction(f){return P(this,arguments,function*({poolInfos:e,ownerInfo:t,feePayer:r}){let i=this.createTxBuilder(r),s=t.wallet||this.scope.ownerPubKey,o={};for(let u of e){let S=[];for(let b of u.tokenInfo){let{account:d,instructionParams:T}=yield this.scope.account.getOrCreateTokenAccount({mint:b.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:b.mintAddress.equals(K.WSOL.mint),createInfo:{payer:s,amount:0},skipCloseAccount:!b.mintAddress.equals(K.WSOL.mint),associatedOnly:b.mintAddress.equals(K.WSOL.mint)?!1:t.associatedOnly});T&&i.addInstruction(T),d&&(o[b.mintAddress.toString()]=d,S.push(d))}i.addInstruction({instructions:[N.makeClaimInstruction({programId:u.programId,poolInfo:u,ownerInfo:{wallet:s,ownerPda:u.ownerAccountId,claimAddress:S}})]})}let{transaction:h,signers:y}=i.build(),p=i.allInstructions;return Ke(p,[s,...y.map(u=>u.publicKey)])?[{transaction:h,signer:y}]:[{transaction:new He().add(...p.slice(0,i.AllTxData.instructions.length-1)),signer:y},{transaction:new He().add(...p.slice(i.AllTxData.instructions.length-1)),signer:[]},{transaction:new He().add(...i.AllTxData.endInstructions),signer:[]}]})}static makeClaimInstruction({programId:e,poolInfo:t,ownerInfo:r}){let f=ne([]),i=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:t.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(h=>({pubkey:h,isSigner:!1,isWritable:!0})),...t.tokenInfo.map(({mintVault:h})=>({pubkey:h,isSigner:!1,isWritable:!0})),{pubkey:ln,isSigner:!1,isWritable:!1}],s=Buffer.alloc(f.span);f.encode({},s);let o=Buffer.from([10,66,208,184,161,6,191,98,...s]);return new cn({keys:i,programId:e,data:o})}};N.CLAIMED_NUM=3,N.POOL_LAYOUT=ne([ee(8),te("bump"),te("status"),W("openTime"),W("endTime"),X("ammId"),de(ne([te("mintDecimals"),X("mintAddress"),X("mintVault"),W("perLpLoss"),W("totalClaimedAmount")]),N.CLAIMED_NUM,"tokenInfo"),de(W(),10,"padding")]),N.OWNER_LAYOUT=ne([ee(8),te("bump"),te("version"),X("poolId"),X("owner"),W("lpAmount"),de(ne([X("mintAddress"),W("debtAmount"),W("claimedAmount")]),N.CLAIMED_NUM,"tokenInfo"),de(W(),4,"padding")]),N.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new un(e)),N.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},N.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];var Le=N;export{Le as default};
//# sourceMappingURL=index.mjs.map