@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 je,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 Le=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 Le({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 Oe=_("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=Ne(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=Ne(h,10);o=(yield(yield Promise.all(y.map(u=>P(this,null,function*(){return yield n._rpcBatchRequest(u)})))).flat()).map(u=>(u.error&&Oe.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"&&Oe.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&&Oe.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"),De=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.`),De.DP=e,De.RM=Et[r]||1,new De(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 Me}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 Ee({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var ar=[Ee({pubkey:Vt,isWritable:!1}),Ee({pubkey:nt.programId,isWritable:!1}),Ee({pubkey:Kt,isWritable:!1})];function rt({publicKey:n,transformSol:e}){let t=ot(n.toString());if(t instanceof O)return e&&t.equals(se)?Re:t;if(e&&t.toString()===se.toBase58())return Re;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"),Re=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 Me&&se.equals(e)){this.decimals=z.decimals,this.symbol=z.symbol,this.name=z.name,this.mint=new Me(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?Me.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 _e=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 Ne(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 Fe(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 Fe(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 Ke(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 Ve,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 Ve(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 Ve(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 Ke({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 Ve(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 Ke({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 We=nn,gt=on;var ht=sn;var yt=rn;var ee=tn;var ve=class extends We{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 ve(8,!1,n)}var Ue=class extends We{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 Ue(ee(32),e=>new an(e),e=>e.toBuffer(),n)}var qe=class extends gt{decode(e,t){return super.decode(e,t)}};function ne(n,e,t){return new qe(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 Ge=(...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(Ge(e))}logInfo(...e){this.logger.info(Ge(e))}logAndCreateError(...e){let t=Ge(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 Fe(p,[s,...y.map(u=>u.publicKey)])?[{transaction:h,signer:y}]:[{transaction:new je().add(...p.slice(0,i.AllTxData.instructions.length-1)),signer:y},{transaction:new je().add(...p.slice(i.AllTxData.instructions.length-1)),signer:[]},{transaction:new je().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 He=N;export{He as default};
//# sourceMappingURL=utils1216.mjs.map