UNPKG

@sega-so/sega-sdk

Version:

An SDK for building applications on top of SEGA.

2 lines 25.8 kB
var st=Object.defineProperty,at=Object.defineProperties;var ut=Object.getOwnPropertyDescriptors;var Ae=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,lt=Object.prototype.propertyIsEnumerable;var O=Math.pow,Ie=(n,e,t)=>e in n?st(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,_=(n,e)=>{for(var t in e||(e={}))ct.call(e,t)&&Ie(n,t,e[t]);if(Ae)for(var t of Ae(e))lt.call(e,t)&&Ie(n,t,e[t]);return n},F=(n,e)=>at(n,ut(e));var M=(n,e,t)=>new Promise((r,s)=>{var a=c=>{try{o(t.next(c))}catch(u){s(u)}},i=c=>{try{o(t.throw(c))}catch(u){s(u)}},o=c=>c.done?r(c.value):Promise.resolve(c.value).then(a,i);o((t=t.apply(n,e)).next())});import{PublicKey as ht}from"@solana/web3.js";import Me,{isBN as Re}from"bn.js";import{bits as ln,BitStructure as mn,blob as mt,Blob as pn,cstr as fn,f32 as dn,f32be as gn,f64 as bn,f64be as yn,greedy as hn,Layout as pt,ns64 as Pn,ns64be as Tn,nu64 as xn,nu64be as wn,offset as Sn,s16 as kn,s16be as Bn,s24 as An,s24be as In,s32 as Ln,s32be as Cn,s40 as Kn,s40be as Nn,s48 as _n,s48be as Mn,s8 as Rn,seq as ft,struct as Wn,Structure as dt,u16 as gt,u16be as En,u24 as Dn,u24be as On,u32 as Fn,u32be as Vn,u40 as vn,u40be as Un,u48 as qn,u48be as Gn,u8 as bt,UInt as yt,union as jn,Union as zn,unionLayoutDiscriminator as Hn,utf8 as Yn}from"@solana/buffer-layout";var ue=pt,Le=dt;var Ce=yt;var Ke=bt,Ne=gt;var _e=ft;var V=mt;var ce=class extends ue{constructor(e,t,r){super(e,r),this.blob=V(e),this.signed=t}decode(e,t=0){let r=new Me(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 Me(e)),this.signed&&(e=e.toTwos(this.span*8)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),t,r)}};function R(n){return new Ce(1,n)}function l(n){return new ce(8,!1,n)}var J=class extends ue{constructor(e,t,r,s){super(e.span,s),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 w(n){return new J(V(32),e=>new ht(e),e=>e.toBuffer(),n)}function X(n){return new J(Ke(),Pt,Tt,n)}function Pt(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function Tt(n){return n?1:0}var le=class extends Le{decode(e,t){return super.decode(e,t)}};function S(n,e,t){return new le(n,e,t)}function me(n,e,t){let r,s=typeof e=="number"?e:Re(e)?e.toNumber():new Proxy(e,{get(a,i){if(!r){let o=Reflect.get(a,"count");r=Re(o)?o.toNumber():o,Reflect.set(a,"count",r)}return Reflect.get(a,i)},set(a,i,o){return i==="count"&&(r=o),Reflect.set(a,i,o)}});return _e(n,s,t)}var lr=S([V(8),R("bump"),X("disableCreatePool"),Ne("index"),l("tradeFeeRate"),l("protocolFeeRate"),l("fundFeeRate"),l("createPoolFee"),w("protocolOwner"),w("fundOwner"),me(l(),16)]),mr=S([V(8),w("configId"),w("poolCreator"),w("vaultA"),w("vaultB"),w("mintLp"),w("mintA"),w("mintB"),w("mintProgramA"),w("mintProgramB"),w("observationId"),R("bump"),R("status"),R("lpDecimals"),R("mintDecimalA"),R("mintDecimalB"),l("lpAmount"),l("protocolFeesMintA"),l("protocolFeesMintB"),l("fundFeesMintA"),l("fundFeesMintB"),l("openTime"),me(l(),32)]);import{PublicKey as Y,TransactionInstruction as E,Keypair as tn,SystemProgram as nn}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Qe,TOKEN_2022_PROGRAM_ID as we,TOKEN_PROGRAM_ID as N}from"@solana/spl-token";import{PublicKey as Pr}from"@solana/web3.js";import{get as We,set as xt}from"lodash";var pe=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}},Ee={},wt={};function x(n){let e=We(Ee,n);if(!e){let t=We(wt,n);e=new pe({name:n,logLevel:t}),xt(Ee,n,e)}return e}import{MINT_SIZE as Sr,TOKEN_PROGRAM_ID as kr,getTransferFeeConfig as Br,unpackMint as Ar}from"@solana/spl-token";var Ir=x("Sega_accountInfo_util");import C from"bn.js";import To from"decimal.js";import Kt from"big.js";import Hr from"bn.js";import St from"toformat";var kt=St,U=kt;import Q from"big.js";import At from"bn.js";import It from"decimal.js-light";import q from"bn.js";var De=9007199254740991;function I(n){let e=x("Sega_parseBigNumberish");if(n instanceof q)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new q(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=De||n<=-De)&&e.logWithError(`BigNumberish number overflow: ${n}`),new q(String(n))):typeof n=="bigint"?new q(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new q(0))}var $=x("module/fraction"),de=U(Q),G=U(It),Lt={0:G.ROUND_DOWN,1:G.ROUND_HALF_UP,2:G.ROUND_UP},Ct={0:Q.roundDown,1:Q.roundHalfUp,2:Q.roundUp},L=class n{constructor(e,t=new At(1)){this.numerator=I(e),this.denominator=I(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(I(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(I(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(I(e));return new n(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof n?e:new n(I(e));return new n(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},r=1){Number.isInteger(e)||$.logWithError(`${e} is not an integer.`),e<=0&&$.logWithError(`${e} is not positive.`),G.set({precision:e+1,rounding:Lt[r]});let s=new G(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return s.toFormat(s.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},r=1){return Number.isInteger(e)||$.logWithError(`${e} is not an integer.`),e<0&&$.logWithError(`${e} is negative.`),de.DP=e,de.RM=Ct[r]||1,new de(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var ni=x("Sega_amount"),ri=U(Kt);import{PublicKey as _t}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Oe}from"@solana/spl-token";var Fe={chainId:101,address:_t.default.toBase58(),programId:Oe.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"sega",extensions:{coingeckoId:"solana"}},W={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Oe.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 he}from"@solana/web3.js";import{PublicKey as p,SystemProgram as Ve,SYSVAR_RENT_PUBKEY as Mt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Rt}from"@solana/spl-token";function ge({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var mi=[ge({pubkey:Rt,isWritable:!1}),ge({pubkey:Ve.programId,isWritable:!1}),ge({pubkey:Mt,isWritable:!1})];function ve({publicKey:n,transformSol:e}){let t=Ue(n.toString());if(t instanceof p)return e&&t.equals(j)?fe:t;if(e&&t.toString()===j.toBase58())return fe;if(typeof t=="string"){if(t===p.default.toBase58())return p.default;try{return new p(t)}catch(r){throw new Error("invalid public key")}}throw new Error("invalid public key")}function Ue(n){try{return new p(n)}catch(e){return n}}var pi=new p("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),be=new p("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ye=new p("SysvarRent111111111111111111111111111111111"),fi=new p("SysvarC1ock11111111111111111111111111111111"),z=new p("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),di=new p("Sysvar1nstructions1111111111111111111111111"),qe=Ve.programId,gi=new p("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),bi=new p("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),yi=new p("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),hi=new p("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Pi=new p("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ti=new p("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),xi=new p("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),wi=new p("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Si=new p("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ki=new p("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Bi=new p("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),fe=new p("So11111111111111111111111111111111111111112"),j=p.default;var ee=class ee{constructor({mint:e,decimals:t,symbol:r,name:s,skipMint:a=!1,isToken2022:i=!1}){if(e===j.toBase58()||e instanceof he&&j.equals(e)){this.decimals=W.decimals,this.symbol=W.symbol,this.name=W.name,this.mint=new he(W.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=r||e.toString().substring(0,6),this.name=s||e.toString().substring(0,6),this.mint=a?he.default:ve({publicKey:e}),this.isToken2022=i}equals(e){return this===e?!0:this.mint.equals(e.mint)}};ee.WSOL=new ee(F(_({},W),{mint:W.address}));var H=ee;var te=class te{constructor({decimals:e,symbol:t="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=r}equals(e){return this===e}};te.SOL=new te(Fe);var Pe=te;import Wt from"bn.js";var Oi=new L(new Wt(100));var Gi=x("Sega_price");import{PublicKey as ao}from"@solana/web3.js";import co from"bn.js";var Et=new C(0),Ko=new C(1),No=new C(2),_o=new C(3),Mo=new C(5),Nt=new C(10),Ro=new C(100),Wo=new C(1e3),Eo=new C(1e4);import{PublicKey as Ot}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ft}from"@solana/spl-token";import{ComputeBudgetProgram as jo,Keypair as Yo,PublicKey as Dt,Transaction as Jo,TransactionMessage as $o,VersionedTransaction as Qo}from"@solana/web3.js";var ne={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 rs}from"@solana/spl-token";var is=x("Sega_txUtil");function k(n,e){let[t,r]=Dt.findProgramAddressSync(n,e);return{publicKey:t,nonce:r}}function re(n,e,t){return k([n.toBuffer(),(t!=null?t:Ft).toBuffer(),e.toBuffer()],new Ot("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}function He(n){return k([Buffer.from("metadata","utf8"),z.toBuffer(),n.toBuffer()],z)}import{PublicKey as B}from"@solana/web3.js";var Ye=new B("SegazTQwbYWknDZkJ6j2Kgvm5gw3MrHGKtWstZdoNKZ"),Ze=new B("Ajk8d9bERSaFdeoT1d8JUVfaDayrYLnAdgeB47TFMUaG"),fs=new B("2HbjxVVKJ7Ct72Rcd8WK4VTqmwTXL5aAggkH1CHGFGmh"),Vt=new B("TegaRdjn9Qeh9DfUU28X19aPPpJtj9gs8ntSYrR5H4K "),vt=new B("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y"),Ut=new B("GzqQwxPSmUZnTyCfX9YWqi32MJg43ujP786ZoacL559Y"),ds=new B("SegaXNnoXYTZiqUt9Xn2XqGcL56b25yzXLuJSpadcMu"),gs=new B("2t1hV2YqnDCPuJZqr7Fy8oAygGwZE5Q9uaQzpLC1QryJ"),bs=new B("BLxynZeHE123MmQgNJZiV1pwW4VYh46oZYyC66xwmtTY");var qt={SERUM_MARKET:B.default,UTIL1216:B.default,CREATE_CPMM_POOL_PROGRAM:Vt,CREATE_CPMM_POOL_AUTH:vt,CREATE_CPMM_POOL_FEE_ACC:Ut};import Je from"bn.js";function Te(n,e){let{div:t,mod:r}=n.divmod(e);return r.gt(new Je(0))?t.add(new Je(1)):t}import{PublicKey as ks,AddressLookupTableAccount as Bs}from"@solana/web3.js";import{PublicKey as Us,sendAndConfirmTransaction as qs,SystemProgram as zs,Transaction as Hs,TransactionMessage as Zs,VersionedTransaction as Js}from"@solana/web3.js";import $s from"axios";import{Connection as ua}from"@solana/web3.js";var Gt=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),jt=Buffer.from("amm_config","utf8"),zt=Buffer.from("pool","utf8"),Ht=Buffer.from("pool_lp_mint","utf8"),Yt=Buffer.from("pool_vault","utf8"),Zt=Buffer.from("observation","utf8");function Jt(n){return k([Gt],n)}function _a(n,e){return k([jt,Qt(e)],n)}function xe(n,e,t,r){return k([zt,e.toBuffer(),t.toBuffer(),r.toBuffer()],n)}function Xt(n,e){return k([Ht,e.toBuffer()],n)}function Xe(n,e,t){return k([Yt,e.toBuffer(),t.toBuffer()],n)}function $t(n,e){return k([Zt,e.toBuffer()],n)}function Qt(n){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,n,!1),new Uint8Array(e)}function Ma({poolId:n,programId:e,configId:t,mintA:r,mintB:s}){let a=Jt(e).publicKey,i=n||xe(e,t,r,s).publicKey,o=Xt(e,i).publicKey,c=Xe(e,i,r).publicKey,u=Xe(e,i,s).publicKey,g=$t(e,i).publicKey;return{poolId:i,configId:t,authority:a,lpMint:o,vaultA:c,vaultB:u,observationId:g}}var en=Buffer.from("locked_liquidity","utf8");function $e(n,e){return k([en,e.toBuffer()],n)}var rn=x("Sega_cpmm"),D={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]};function qa(n,e,t,r,s,a,i,o,c,u,g,h,P,b,f,y,m,d,T,A){let K=S([l("amountMaxA"),l("amountMaxB"),l("openTime")]),it=xe(n,t,a,i).publicKey,ot=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!s.equals(it),isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:h,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:N,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:Qe,isSigner:!1,isWritable:!1},{pubkey:qe,isSigner:!1,isWritable:!1},{pubkey:ye,isSigner:!1,isWritable:!1}],Be=Buffer.alloc(K.span);return K.encode({amountMaxA:d,amountMaxB:T,openTime:A},Be),new E({keys:ot,programId:n,data:Buffer.from([...D.initialize,...Be])})}function Ga(n,e,t,r,s,a,i,o,c,u,g,h,P,b,f){let y=S([l("lpAmount"),l("amountMaxA"),l("amountMaxB")]),m=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:N,isSigner:!1,isWritable:!1},{pubkey:we,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!0}],d=Buffer.alloc(y.span);return rn.debug("cpmm deposit data",{lpAmount:P.toString(),amountMaxA:b.toString(),amountMaxB:f.toString()}),y.encode({lpAmount:P,amountMaxA:b,amountMaxB:f},d),new E({keys:m,programId:n,data:Buffer.from([...D.deposit,...d])})}function ja(n,e,t,r,s,a,i,o,c,u,g,h,P,b,f){let y=S([l("lpAmount"),l("amountMinA"),l("amountMinB")]),m=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:N,isSigner:!1,isWritable:!1},{pubkey:we,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!0},{pubkey:be,isSigner:!1,isWritable:!1}],d=Buffer.alloc(y.span);return y.encode({lpAmount:P,amountMinA:b,amountMinB:f},d),new E({keys:m,programId:n,data:Buffer.from([...D.withdraw,...d])})}function za(n,e,t,r,s,a,i,o,c,u,g,h,P,b,f,y){let m=S([l("amountIn"),l("amounOutMin")]),d=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!0}],T=Buffer.alloc(m.span);return m.encode({amountIn:f,amounOutMin:y},T),new E({keys:d,programId:n,data:Buffer.from([...D.swapBaseInput,...T])})}function Ha(n,e,t,r,s,a,i,o,c,u,g,h,P,b,f,y){let m=S([l("amountInMax"),l("amountOut")]),d=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!0}],T=Buffer.alloc(m.span);return m.encode({amountInMax:f,amountOut:y},T),new E({keys:d,programId:n,data:Buffer.from([...D.swapBaseOutput,...T])})}function Ya(n){return M(this,null,function*(){var m;let{ownerInfo:e,poolInfo:t,poolKeys:r,feeNftOwner:s,getEphemeralSigners:a}=n,i=[],[o,c]=[new Y(t.id),new Y(t.lpMint.address)],u;if(a)u=new Y((yield a(1))[0]);else{let d=tn.generate();i.push(d),u=d.publicKey}let{publicKey:g}=re(s,u,N),{publicKey:h}=He(u),{publicKey:P}=$e(n.lockProgram,u),{publicKey:b}=re(e.wallet,c,N),{publicKey:f}=re(n.lockAuthProgram,c,N),y=on({programId:n.lockProgram,auth:n.lockAuthProgram,payer:e.feePayer,liquidityOwner:e.wallet,nftOwner:s,nftMint:u,nftAccount:g,poolId:o,lockPda:P,mintLp:c,userLpVault:b,lockLpVault:f,poolVaultA:new Y(r.vault.A),poolVaultB:new Y(r.vault.B),metadataAccount:h,lpAmount:n.lpAmount,withMetadata:(m=n.withMetadata)!=null?m:!0});return{address:{nftMint:u,nftAccount:g,metadataAccount:h,lockPda:P,userLpVault:b,lockLpVault:f},instructions:[y],signers:i,instructionTypes:[ne.CpmmLockLp],lookupTableAddress:[]}})}function on({programId:n,auth:e,payer:t,liquidityOwner:r,nftOwner:s,nftMint:a,nftAccount:i,poolId:o,lockPda:c,mintLp:u,userLpVault:g,lockLpVault:h,poolVaultA:P,poolVaultB:b,metadataAccount:f,lpAmount:y,withMetadata:m}){let d=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:h,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:ye,isSigner:!1,isWritable:!1},{pubkey:nn.programId,isSigner:!1,isWritable:!1},{pubkey:N,isSigner:!1,isWritable:!1},{pubkey:Qe,isSigner:!1,isWritable:!1},{pubkey:z,isSigner:!1,isWritable:!1}],T=S([l("lpAmount"),X("withMetadata")]),A=Buffer.alloc(T.span);T.encode({lpAmount:y,withMetadata:m},A);let K=Buffer.from([...D.lockCpLiquidity,...A]);return new E({keys:d,programId:n,data:K})}function Za({programId:n,nftOwner:e,auth:t,nftAccount:r,lockPda:s,poolId:a,mintLp:i,userVaultA:o,userVaultB:c,poolVaultA:u,poolVaultB:g,mintA:h,mintB:P,lockLpVault:b,lpFeeAmount:f,cpmmProgram:y,cpmmAuthProgram:m}){let d=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:y!=null?y:Ye,isSigner:!1,isWritable:!1},{pubkey:m!=null?m:Ze,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:g,isSigner:!1,isWritable:!0},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:N,isSigner:!1,isWritable:!1},{pubkey:we,isSigner:!1,isWritable:!1},{pubkey:be,isSigner:!1,isWritable:!1}],T=S([l("lpFeeAmount")]),A=Buffer.alloc(T.span);T.encode({lpFeeAmount:f},A);let K=Buffer.from([...D.collectCpFee,...A]);return new E({keys:d,programId:n,data:K})}import ke from"bn.js";import ae from"decimal.js-light";import Z from"bn.js";function ie(n,e){if(e.isZero())throw Error("divisor is zero");return n.mod(e)}function sn(n,e){if(e.isZero())throw Error("rhs is zero");let t=n.div(e);if(t.isZero())throw Error("quotient is zero");let r=ie(n,e);return r.gt(v)&&(t=t.add(new Z(1)),e=n.div(t),r=ie(n,t),r.gt(v)&&(e=e.add(new Z(1)))),[t,e]}var v=new Z(0),oe=class{static swapWithoutFees(e,t,r){let s=t.mul(r),a=t.add(e),[i]=sn(s,a),o=r.sub(i);if(o.isZero())throw Error("destinationAmountSwapped is zero");return{destinationAmountSwapped:o}}static lpTokensToTradingTokens(e,t,r,s,a){let i=e.mul(r).div(t),o=e.mul(s).div(t);if(a===0)return{tokenAmount0:i,tokenAmount1:o};if(a===1)return ie(e.mul(r),t).gt(v)&&i.gt(v)&&(i=i.add(new Z(1))),ie(e.mul(s),t).gt(v)&&o.gt(v)&&(o=o.add(new Z(1))),{tokenAmount0:i,tokenAmount1:o};throw Error("roundDirection value error")}};import nt from"bn.js";var Se=new nt(1e6);function an(n,e,t){return n.mul(e).add(t).sub(new nt(1)).div(t)}function tt(n,e,t){return n.mul(e).div(t)}var se=class{static tradingFee(e,t){return an(e,t,Se)}static protocolFee(e,t){return tt(e,t,Se)}static fundFee(e,t){return tt(e,t,Se)}};var et=(t=>(t[t.Floor=0]="Floor",t[t.Ceiling=1]="Ceiling",t))(et||{}),rt=class{static validate_supply(e,t){if(e.isZero())throw Error("tokenAmount0 is zero");if(t.isZero())throw Error("tokenAmount1 is zero")}static swap(e,t,r,s){let a=se.tradingFee(e,s),i=e.sub(a),{destinationAmountSwapped:o}=oe.swapWithoutFees(i,t,r);return{newSwapDestinationAmount:r.sub(o),sourceAmountSwapped:e,destinationAmountSwapped:o,tradeFee:a}}static swapBaseOut({poolMintA:e,poolMintB:t,tradeFeeRate:r,baseReserve:s,quoteReserve:a,outputMint:i,outputAmount:o}){let[c,u,g,h,P]=t.address===i.toString()?[s,a,e.decimals,t.decimals,e.address]:[a,s,t.decimals,e.decimals,t.address],b=new ae(u.toString()).div(O(10,h)).div(new ae(c.toString()).div(O(10,g))),f=o.gte(u)?u.sub(new ke(1)):o,y=u.sub(f),m=Te(c.mul(f),y),d=Te(m.mul(new ke(1e6)),new ke(1e6).sub(r)),T=d.sub(m),A=new ae(f.toString()).div(O(10,h)).div(new ae(d.toString()).div(O(10,g))),K=b.isZero()?0:A.sub(b).div(b).abs().toNumber();return{amountRealOut:f,amountIn:d,amountInWithoutFee:m,tradeFee:T,priceImpact:K}}};export{oe as ConstantProductCurve,lr as CpmmConfigInfoLayout,se as CpmmFee,mr as CpmmPoolInfoLayout,rt as CurveCalculator,Se as FEE_RATE_DENOMINATOR_VALUE,en as LOCK_LIQUIDITY_SEED,et as RoundDirection,an as ceilDiv,Za as collectCpFeeInstruction,on as cpmmLockPositionInstruction,tt as floorDiv,$e as getCpLockPda,_a as getCpmmPdaAmmConfigId,xe as getCpmmPdaPoolId,Ma as getCreatePoolKeys,Xt as getPdaLpMint,$t as getPdaObservationId,Jt as getPdaPoolAuthority,Xe as getPdaVault,Ya as makeCpmmLockInstruction,qa as makeCreateCpmmPoolInInstruction,Ga as makeDepositCpmmInInstruction,za as makeSwapCpmmBaseInInstruction,Ha as makeSwapCpmmBaseOutInstruction,ja as makeWithdrawCpmmInInstruction}; //# sourceMappingURL=index.mjs.map