UNPKG

snapper-sdk

Version:

An SDK for building applications on top of Snapper.

2 lines 8.82 kB
"use strict";var W=Object.create;var m=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var z=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var Y=(r,t)=>{for(var e in t)m(r,e,{get:t[e],enumerable:!0})},F=(r,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of O(t))!G.call(r,s)&&s!==e&&m(r,s,{get:()=>t[s],enumerable:!(o=k(t,s))||o.enumerable});return r};var I=(r,t,e)=>(e=r!=null?W(z(r)):{},F(t||!r||!r.__esModule?m(e,"default",{value:r,enumerable:!0}):e,r)),j=r=>F(m({},"__esModule",{value:!0}),r);var X={};Y(X,{initializeMarket:()=>Q,makeCreateMarketInstruction:()=>J});module.exports=j(X);var a=require("@solana/web3.js"),d=require("@solana/spl-token");var i={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",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmCreateConfig:"CpmmCreateConfig",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee"};var D=require("@solana/web3.js"),l=I(require("bn.js"));var n=require("@solana/buffer-layout"),P=n.Layout,v=n.Structure;var L=n.UInt;var N=n.u16;var S=n.u32;var y=n.blob;var f=n.bits;var h=class extends P{constructor(e,o,s){super(e,s);this.blob=y(e),this.signed=o}decode(e,o=0){let s=new l.default(this.blob.decode(e,o),10,"le");return this.signed?s.fromTwos(this.span*8).clone():s}encode(e,o,s=0){return typeof e=="number"&&(e=new l.default(e)),this.signed&&(e=e.toTwos(this.span*8)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),o,s)}},x=class extends P{constructor(e){super(8,e);this._lower=f(S(),!1),this._upper=f(S(),!1)}addBoolean(e){this._lower.fields.length<32?this._lower.addBoolean(e):this._upper.addBoolean(e)}decode(e,o=0){let s=this._lower.decode(e,o),p=this._upper.decode(e,o+this._lower.span);return{...s,...p}}encode(e,o,s=0){return this._lower.encode(e,o,s)+this._upper.encode(e,o,s+this._lower.span)}};function M(r){return new L(1,r)}function E(r){return new L(4,r)}function u(r){return new h(8,!1,r)}var T=class extends P{constructor(e,o,s,p){super(e.span,p);this.layout=e,this.decoder=o,this.encoder=s}decode(e,o){return this.decoder(this.layout.decode(e,o))}encode(e,o,s){return this.layout.encode(this.encoder(e),o,s)}getSpan(e,o){return this.layout.getSpan(e,o)}};function c(r){return new T(y(32),t=>new D.PublicKey(t),t=>t.toBuffer(),r)}var w=class extends v{decode(t,e){return super.decode(t,e)}};function g(r,t,e){return new w(r,t,e)}function H(r="accountFlags"){let t=new x(r);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var B=g([y(5),H("accountFlags"),c("ownAddress"),u("vaultSignerNonce"),c("baseMint"),c("quoteMint"),c("baseVault"),u("baseDepositsTotal"),u("baseFeesAccrued"),c("quoteVault"),u("quoteDepositsTotal"),u("quoteFeesAccrued"),u("quoteDustThreshold"),c("requestQueue"),c("eventQueue"),c("bids"),c("asks"),u("baseLotSize"),u("quoteLotSize"),u("feeRateBps"),u("referrerRebatesAccrued"),y(7)]);function Q({programId:r,marketInfo:t}){let e=g([M("version"),E("instruction"),u("baseLotSize"),u("quoteLotSize"),N("feeRateBps"),u("vaultSignerNonce"),u("quoteDustThreshold")]),o=[{pubkey:t.id,isSigner:!1,isWritable:!0},{pubkey:t.requestQueue,isSigner:!1,isWritable:!0},{pubkey:t.eventQueue,isSigner:!1,isWritable:!0},{pubkey:t.bids,isSigner:!1,isWritable:!0},{pubkey:t.asks,isSigner:!1,isWritable:!0},{pubkey:t.baseVault,isSigner:!1,isWritable:!0},{pubkey:t.quoteVault,isSigner:!1,isWritable:!0},{pubkey:t.baseMint,isSigner:!1,isWritable:!1},{pubkey:t.quoteMint,isSigner:!1,isWritable:!1},{pubkey:t.authority?t.quoteMint:a.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}].concat(t.authority?{pubkey:t.authority,isSigner:!1,isWritable:!1}:[]).concat(t.authority&&t.pruneAuthority?{pubkey:t.pruneAuthority,isSigner:!1,isWritable:!1}:[]),s=Buffer.alloc(e.span);return e.encode({version:0,instruction:0,baseLotSize:t.baseLotSize,quoteLotSize:t.quoteLotSize,feeRateBps:t.feeRateBps,vaultSignerNonce:t.vaultSignerNonce,quoteDustThreshold:t.quoteDustThreshold},s),new a.TransactionInstruction({keys:o,programId:r,data:s})}async function J({connection:r,wallet:t,marketInfo:e}){var C,A,V,_,q,K,U,R;let o=new a.Transaction,s=await r.getMinimumBalanceForRentExemption(165);o.add(a.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:e.baseVault.seed,newAccountPubkey:e.baseVault.publicKey,lamports:s,space:165,programId:d.TOKEN_PROGRAM_ID}),a.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:e.quoteVault.seed,newAccountPubkey:e.quoteVault.publicKey,lamports:s,space:165,programId:d.TOKEN_PROGRAM_ID}),(0,d.createInitializeAccountInstruction)(e.baseVault.publicKey,e.baseMint,e.vaultOwner),(0,d.createInitializeAccountInstruction)(e.quoteVault.publicKey,e.quoteMint,e.vaultOwner));let p=new a.Transaction;return p.add(a.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:e.id.seed,newAccountPubkey:e.id.publicKey,lamports:await r.getMinimumBalanceForRentExemption(B.span),space:B.span,programId:e.programId}),a.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:e.requestQueue.seed,newAccountPubkey:e.requestQueue.publicKey,lamports:await r.getMinimumBalanceForRentExemption((C=e.requestQueueSpace)!=null?C:5120+12),space:(A=e.requestQueueSpace)!=null?A:5120+12,programId:e.programId}),a.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:e.eventQueue.seed,newAccountPubkey:e.eventQueue.publicKey,lamports:await r.getMinimumBalanceForRentExemption((V=e.eventQueueSpace)!=null?V:262144+12),space:(_=e.eventQueueSpace)!=null?_:262144+12,programId:e.programId}),a.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:e.bids.seed,newAccountPubkey:e.bids.publicKey,lamports:await r.getMinimumBalanceForRentExemption((q=e.orderbookQueueSpace)!=null?q:65536+12),space:(K=e.orderbookQueueSpace)!=null?K:65536+12,programId:e.programId}),a.SystemProgram.createAccountWithSeed({fromPubkey:t,basePubkey:t,seed:e.asks.seed,newAccountPubkey:e.asks.publicKey,lamports:await r.getMinimumBalanceForRentExemption((U=e.orderbookQueueSpace)!=null?U:65536+12),space:(R=e.orderbookQueueSpace)!=null?R:65536+12,programId:e.programId}),Q({programId:e.programId,marketInfo:{id:e.id.publicKey,requestQueue:e.requestQueue.publicKey,eventQueue:e.eventQueue.publicKey,bids:e.bids.publicKey,asks:e.asks.publicKey,baseVault:e.baseVault.publicKey,quoteVault:e.quoteVault.publicKey,baseMint:e.baseMint,quoteMint:e.quoteMint,baseLotSize:e.baseLotSize,quoteLotSize:e.quoteLotSize,feeRateBps:e.feeRateBps,vaultSignerNonce:e.vaultSignerNonce,quoteDustThreshold:e.quoteDustThreshold}})),[{transaction:o,signer:[],instructionTypes:[i.CreateAccount,i.CreateAccount,i.InitAccount,i.InitAccount]},{transaction:p,signer:[],instructionTypes:[i.CreateAccount,i.CreateAccount,i.CreateAccount,i.CreateAccount,i.CreateAccount,i.InitMarket]}]}0&&(module.exports={initializeMarket,makeCreateMarketInstruction}); //# sourceMappingURL=instrument.js.map