added USDT spot markets and new dex program id
This commit is contained in:
parent
8f51b00efb
commit
4139de80d0
|
@ -1,7 +1,10 @@
|
||||||
CLUSTER=devnet
|
CLUSTER=devnet
|
||||||
KEYPAIR=~/.config/solana/id.json
|
KEYPAIR=~/.config/solana/id.json
|
||||||
BTC_WALLET=HLoPtihB8oETm1kkTpx17FEnXm7afQdS4hojTNvbg3Rg
|
BTC_WALLET=HLoPtihB8oETm1kkTpx17FEnXm7afQdS4hojTNvbg3Rg
|
||||||
|
ETH_WALLET=8ASVNBAo94RnJCABYybnkJnXGpBHan2svW3pRsKdbn7s
|
||||||
USDC_WALLET=GBBtcVE7WA8qdrHyhWTZkYDaz71EVHsg7wVaca9iq9xs
|
USDC_WALLET=GBBtcVE7WA8qdrHyhWTZkYDaz71EVHsg7wVaca9iq9xs
|
||||||
|
USDT_WALLET=Fy2bjbGpUfXK7jwsNwsnFvXkJfLVUzbWNqFwzMQ9vDFC
|
||||||
BTC=C6kYXcaRUMqeBF5fhg165RWU7AnpT9z92fvKNoMqjmz6
|
BTC=C6kYXcaRUMqeBF5fhg165RWU7AnpT9z92fvKNoMqjmz6
|
||||||
ETH=8p968u9m7jZzKSsqxFDqki69MjqdFkwPM9FN4AN8hvHR
|
ETH=8p968u9m7jZzKSsqxFDqki69MjqdFkwPM9FN4AN8hvHR
|
||||||
USDC=Fq939Y5hycK62ZGwBjftLY2VyxqAQ8f1MxRqBMdAaBS7
|
USDC=Fq939Y5hycK62ZGwBjftLY2VyxqAQ8f1MxRqBMdAaBS7
|
||||||
|
USDT=7tSPGVhneTBWZjLGJGZb9V2UntC7T98cwtSLtgcXjeSs
|
||||||
|
|
|
@ -27,13 +27,13 @@ import {
|
||||||
uiToNative,
|
uiToNative,
|
||||||
zeroKey,
|
zeroKey,
|
||||||
} from './utils';
|
} 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 { SRM_DECIMALS } from '@project-serum/serum/lib/token-instructions';
|
||||||
import { Order } from '@project-serum/serum/lib/market';
|
import { Order } from '@project-serum/serum/lib/market';
|
||||||
import Wallet from '@project-serum/sol-wallet-adapter';
|
import Wallet from '@project-serum/sol-wallet-adapter';
|
||||||
import { makeCancelOrderInstruction, makeSettleFundsInstruction } from './instruction';
|
import { makeCancelOrderInstruction, makeSettleFundsInstruction } from './instruction';
|
||||||
import { Aggregator } from './schema'
|
import { Aggregator } from './schema'
|
||||||
import { AccountLayout, TOKEN_PROGRAM_ID } from '@solana/spl-token';
|
import { TOKEN_PROGRAM_ID } from '@solana/spl-token';
|
||||||
|
|
||||||
|
|
||||||
export class MangoGroup {
|
export class MangoGroup {
|
||||||
|
@ -601,9 +601,6 @@ export class MangoClient {
|
||||||
],
|
],
|
||||||
spotMarket.programId
|
spotMarket.programId
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const keys = [
|
const keys = [
|
||||||
{ isSigner: false, isWritable: true, pubkey: mangoGroup.publicKey},
|
{ isSigner: false, isWritable: true, pubkey: mangoGroup.publicKey},
|
||||||
{ isSigner: true, isWritable: false, pubkey: owner.publicKey },
|
{ isSigner: true, isWritable: false, pubkey: owner.publicKey },
|
||||||
|
@ -770,17 +767,16 @@ export class MangoClient {
|
||||||
|
|
||||||
): Promise<TransactionSignature> {
|
): Promise<TransactionSignature> {
|
||||||
// TODO allow wrapped SOL wallets
|
// 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 limitPrice = spotMarket.priceNumberToLots(price)
|
||||||
const maxBaseQuantity = spotMarket.baseSizeNumberToLots(size)
|
const maxBaseQuantity = spotMarket.baseSizeNumberToLots(size)
|
||||||
|
|
||||||
// TODO verify if multiplying by highest fee tier is appropriate
|
const feeTier = getFeeTier(0, nativeToUi(mangoGroup.nativeSrm || 0, SRM_DECIMALS));
|
||||||
const maxQuoteQuantity = new BN(spotMarket['_decoded'].quoteLotSize.toNumber()).mul(
|
const rates = getFeeRates(feeTier);
|
||||||
maxBaseQuantity.mul(limitPrice),
|
const maxQuoteQuantity = new BN(spotMarket['_decoded'].quoteLotSize.toNumber() * rates.taker).mul(
|
||||||
)
|
spotMarket.baseSizeNumberToLots(size).mul(spotMarket.priceNumberToLots(price)),
|
||||||
|
);
|
||||||
|
|
||||||
if (maxBaseQuantity.lte(new BN(0))) {
|
if (maxBaseQuantity.lte(new BN(0))) {
|
||||||
throw new Error('size too small')
|
throw new Error('size too small')
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"testnet": "https://testnet.solana.com"
|
"testnet": "https://testnet.solana.com"
|
||||||
},
|
},
|
||||||
"devnet": {
|
"devnet": {
|
||||||
"dex_program_id": "6XffKSLZRxmQcRinmb4K32AegYnmkoTm6TLR2Ezp9FBR",
|
"dex_program_id": "DESVgJVGajEgKGXhb6XmqDHGz3VjdgP7rEVESBgxmroY",
|
||||||
"fee_symbol": "SRM",
|
"fee_symbol": "SRM",
|
||||||
"mango_groups": {
|
"mango_groups": {
|
||||||
"BTC_ETH_USDC": {
|
"BTC_ETH_USDC": {
|
||||||
|
@ -43,8 +43,10 @@
|
||||||
"ETH/USDC": "5qxMJFJXB42j3kKo3FbTughREjziottXHcgLnjCNwjEs"
|
"ETH/USDC": "5qxMJFJXB42j3kKo3FbTughREjziottXHcgLnjCNwjEs"
|
||||||
},
|
},
|
||||||
"spot_markets": {
|
"spot_markets": {
|
||||||
"BTC/USDC": "DY6X83vWk5VdHQEtVxFdecmEsGXHyLskkeQeo8BHn75s",
|
"BTC/USDC": "FKysSZkCCh41G1SCxpE7Cb7eaLofYBhEneLzHFz6JvjH",
|
||||||
"ETH/USDC": "CQwr1dHHPeoUpzGcQHLtEYE1LdXkszxha8oG6Y7v5KWZ"
|
"ETH/USDC": "BYz5dJegg11x94jS2R7ZTCgaJwimvupmkjeYDm9Y3UwP",
|
||||||
|
"BTC/USDT": "ELXP9wTE4apvK9sxAqtCtMidbAvJJDrNVg4wL6jqQEBA",
|
||||||
|
"ETH/USDT": "97mbLfi4S56y5Vg2LCF4Z7ru8jD1QjHa5SH3eyFYrMdg"
|
||||||
},
|
},
|
||||||
"symbols": {
|
"symbols": {
|
||||||
"BTC": "C6kYXcaRUMqeBF5fhg165RWU7AnpT9z92fvKNoMqjmz6",
|
"BTC": "C6kYXcaRUMqeBF5fhg165RWU7AnpT9z92fvKNoMqjmz6",
|
||||||
|
|
Loading…
Reference in New Issue