From 4139de80d0c1be1f256f778be798207b6215267a Mon Sep 17 00:00:00 2001 From: dd Date: Fri, 26 Feb 2021 12:33:45 -0500 Subject: [PATCH] added USDT spot markets and new dex program id --- devnet.env | 5 ++++- src/client.ts | 20 ++++++++------------ src/ids.json | 8 +++++--- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/devnet.env b/devnet.env index 57f4c02..edadccb 100644 --- a/devnet.env +++ b/devnet.env @@ -1,7 +1,10 @@ CLUSTER=devnet KEYPAIR=~/.config/solana/id.json BTC_WALLET=HLoPtihB8oETm1kkTpx17FEnXm7afQdS4hojTNvbg3Rg +ETH_WALLET=8ASVNBAo94RnJCABYybnkJnXGpBHan2svW3pRsKdbn7s USDC_WALLET=GBBtcVE7WA8qdrHyhWTZkYDaz71EVHsg7wVaca9iq9xs +USDT_WALLET=Fy2bjbGpUfXK7jwsNwsnFvXkJfLVUzbWNqFwzMQ9vDFC BTC=C6kYXcaRUMqeBF5fhg165RWU7AnpT9z92fvKNoMqjmz6 ETH=8p968u9m7jZzKSsqxFDqki69MjqdFkwPM9FN4AN8hvHR -USDC=Fq939Y5hycK62ZGwBjftLY2VyxqAQ8f1MxRqBMdAaBS7 \ No newline at end of file +USDC=Fq939Y5hycK62ZGwBjftLY2VyxqAQ8f1MxRqBMdAaBS7 +USDT=7tSPGVhneTBWZjLGJGZb9V2UntC7T98cwtSLtgcXjeSs diff --git a/src/client.ts b/src/client.ts index ba241d1..0193964 100644 --- a/src/client.ts +++ b/src/client.ts @@ -27,13 +27,13 @@ import { uiToNative, zeroKey, } from './utils'; -import { Market, OpenOrders, Orderbook } from '@project-serum/serum'; +import { getFeeRates, getFeeTier, Market, OpenOrders, Orderbook } from '@project-serum/serum'; import { SRM_DECIMALS } from '@project-serum/serum/lib/token-instructions'; import { Order } from '@project-serum/serum/lib/market'; import Wallet from '@project-serum/sol-wallet-adapter'; import { makeCancelOrderInstruction, makeSettleFundsInstruction } from './instruction'; import { Aggregator } from './schema' -import { AccountLayout, TOKEN_PROGRAM_ID } from '@solana/spl-token'; +import { TOKEN_PROGRAM_ID } from '@solana/spl-token'; export class MangoGroup { @@ -601,9 +601,6 @@ export class MangoClient { ], spotMarket.programId ) - - - const keys = [ { isSigner: false, isWritable: true, pubkey: mangoGroup.publicKey}, { isSigner: true, isWritable: false, pubkey: owner.publicKey }, @@ -770,17 +767,16 @@ export class MangoClient { ): Promise { // TODO allow wrapped SOL wallets - // TODO allow fee discounts - orderType = orderType == undefined ? 'limit' : orderType - // orderType = orderType ?? 'limit' + orderType = orderType || 'limit' const limitPrice = spotMarket.priceNumberToLots(price) const maxBaseQuantity = spotMarket.baseSizeNumberToLots(size) - // TODO verify if multiplying by highest fee tier is appropriate - const maxQuoteQuantity = new BN(spotMarket['_decoded'].quoteLotSize.toNumber()).mul( - maxBaseQuantity.mul(limitPrice), - ) + const feeTier = getFeeTier(0, nativeToUi(mangoGroup.nativeSrm || 0, SRM_DECIMALS)); + const rates = getFeeRates(feeTier); + const maxQuoteQuantity = new BN(spotMarket['_decoded'].quoteLotSize.toNumber() * rates.taker).mul( + spotMarket.baseSizeNumberToLots(size).mul(spotMarket.priceNumberToLots(price)), + ); if (maxBaseQuantity.lte(new BN(0))) { throw new Error('size too small') diff --git a/src/ids.json b/src/ids.json index 1f3d6db..a1ac28e 100644 --- a/src/ids.json +++ b/src/ids.json @@ -6,7 +6,7 @@ "testnet": "https://testnet.solana.com" }, "devnet": { - "dex_program_id": "6XffKSLZRxmQcRinmb4K32AegYnmkoTm6TLR2Ezp9FBR", + "dex_program_id": "DESVgJVGajEgKGXhb6XmqDHGz3VjdgP7rEVESBgxmroY", "fee_symbol": "SRM", "mango_groups": { "BTC_ETH_USDC": { @@ -43,8 +43,10 @@ "ETH/USDC": "5qxMJFJXB42j3kKo3FbTughREjziottXHcgLnjCNwjEs" }, "spot_markets": { - "BTC/USDC": "DY6X83vWk5VdHQEtVxFdecmEsGXHyLskkeQeo8BHn75s", - "ETH/USDC": "CQwr1dHHPeoUpzGcQHLtEYE1LdXkszxha8oG6Y7v5KWZ" + "BTC/USDC": "FKysSZkCCh41G1SCxpE7Cb7eaLofYBhEneLzHFz6JvjH", + "ETH/USDC": "BYz5dJegg11x94jS2R7ZTCgaJwimvupmkjeYDm9Y3UwP", + "BTC/USDT": "ELXP9wTE4apvK9sxAqtCtMidbAvJJDrNVg4wL6jqQEBA", + "ETH/USDT": "97mbLfi4S56y5Vg2LCF4Z7ru8jD1QjHa5SH3eyFYrMdg" }, "symbols": { "BTC": "C6kYXcaRUMqeBF5fhg165RWU7AnpT9z92fvKNoMqjmz6",