From 4a2f0e26dacc59684908080ad535861cf4805db3 Mon Sep 17 00:00:00 2001 From: microwavedcola1 Date: Fri, 24 Sep 2021 13:56:27 +0200 Subject: [PATCH] fix key loading Signed-off-by: microwavedcola1 --- mango-service-v3/src/account.controller.ts | 5 +-- mango-service-v3/src/app.ts | 2 -- mango-service-v3/src/dtos.ts | 10 +++--- mango-service-v3/src/mango.simple.client.ts | 15 ++++---- mango-service-v3/src/markets.controller.ts | 40 +++++++++++++-------- mango-service-v3/src/server.ts | 3 ++ mango-service-v3/src/wallet.controller.ts | 6 ++-- 7 files changed, 48 insertions(+), 33 deletions(-) diff --git a/mango-service-v3/src/account.controller.ts b/mango-service-v3/src/account.controller.ts index 14d8286..79d8b60 100644 --- a/mango-service-v3/src/account.controller.ts +++ b/mango-service-v3/src/account.controller.ts @@ -1,7 +1,7 @@ import { getMarketByPublicKey, PerpMarket, - ZERO_BN + ZERO_BN, } from "@blockworks-foundation/mango-client"; import BN from "bn.js"; import Controller from "controller.interface"; @@ -122,7 +122,8 @@ class AccountController implements Controller { openSize: undefined, realizedPnl: undefined, recentAverageOpenPrice: undefined, - recentBreakEvenPrice: breakEvenPrice!=null?breakEvenPrice.toNumber():null, + recentBreakEvenPrice: + breakEvenPrice != null ? breakEvenPrice.toNumber() : null, recentPnl: undefined, shortOrderSize: undefined, side: perpAccount.basePosition.gt(ZERO_BN) ? "long" : "short", diff --git a/mango-service-v3/src/app.ts b/mango-service-v3/src/app.ts index db9c97d..59bdf2c 100644 --- a/mango-service-v3/src/app.ts +++ b/mango-service-v3/src/app.ts @@ -15,8 +15,6 @@ class App { constructor() { this.app = express(); MangoSimpleClient.create().then((mangoSimpleClient) => { - - this.mangoSimpleClient = mangoSimpleClient; this.app.use(bodyParser.json({ limit: "50mb" })); diff --git a/mango-service-v3/src/dtos.ts b/mango-service-v3/src/dtos.ts index 49ff5de..89b2404 100644 --- a/mango-service-v3/src/dtos.ts +++ b/mango-service-v3/src/dtos.ts @@ -1,10 +1,10 @@ export interface BadRequestError { - value: string; - msg: string; - param: string; - location: string; + value: string; + msg: string; + param: string; + location: string; } export interface BadRequestErrorCustom { - msg: string; + msg: string; } diff --git a/mango-service-v3/src/mango.simple.client.ts b/mango-service-v3/src/mango.simple.client.ts index 41648bd..14d0909 100644 --- a/mango-service-v3/src/mango.simple.client.ts +++ b/mango-service-v3/src/mango.simple.client.ts @@ -6,13 +6,14 @@ import { getMarketByBaseSymbolAndKind, getMarketByPublicKey, getMultipleAccounts, - GroupConfig, MangoAccount, + GroupConfig, + MangoAccount, MangoClient, MangoGroup, MarketConfig, PerpMarket, PerpMarketLayout, - PerpOrder + PerpOrder, } from "@blockworks-foundation/mango-client"; import { Market, Orderbook } from "@project-serum/serum"; import { Order } from "@project-serum/serum/lib/market"; @@ -21,7 +22,7 @@ import { AccountInfo, Commitment, Connection, - PublicKey + PublicKey, } from "@solana/web3.js"; import fs from "fs"; import fetch from "node-fetch"; @@ -92,11 +93,11 @@ class MangoSimpleClient { logger.info(`- loading cache`); await mangoGroup.loadCache(connection); + const privateKeyPath = + process.env.PRIVATE_KEY_PATH || os.homedir() + "/.config/solana/id.json"; + logger.info(`- loading private key at location ${privateKeyPath}`); const owner = new Account( - JSON.parse( - process.env.KEYPAIR || - fs.readFileSync(os.homedir() + "/.config/solana/id.json", "utf-8") - ) + JSON.parse(fs.readFileSync(privateKeyPath, "utf-8")) ); logger.info(`- fetching mango accounts for ${owner.publicKey.toBase58()}`); diff --git a/mango-service-v3/src/markets.controller.ts b/mango-service-v3/src/markets.controller.ts index e4d8bb9..29b4848 100644 --- a/mango-service-v3/src/markets.controller.ts +++ b/mango-service-v3/src/markets.controller.ts @@ -2,7 +2,7 @@ import { getAllMarkets, getTokenBySymbol, MarketConfig, - PerpMarket + PerpMarket, } from "@blockworks-foundation/mango-client"; import { Market } from "@project-serum/serum"; import Big from "big.js"; @@ -77,7 +77,9 @@ class MarketsController implements Controller { ) => { const errors = validationResult(request); if (!errors.isEmpty()) { - return response.status(400).json({ errors: errors.array() as BadRequestError[] }); + return response + .status(400) + .json({ errors: errors.array() as BadRequestError[] }); } const marketName = request.params.market_name; @@ -222,7 +224,9 @@ class MarketsController implements Controller { ) => { const errors = validationResult(request); if (!errors.isEmpty()) { - return response.status(400).json({ errors: errors.array() as BadRequestError[] }); + return response + .status(400) + .json({ errors: errors.array() as BadRequestError[] }); } const marketName = request.params.market_name; @@ -261,7 +265,9 @@ class MarketsController implements Controller { ) => { const errors = validationResult(request); if (!errors.isEmpty()) { - return response.status(400).json({ errors: errors.array() as BadRequestError[] }); + return response + .status(400) + .json({ errors: errors.array() as BadRequestError[] }); } const allMarketConfigs = getAllMarkets( @@ -280,16 +286,17 @@ class MarketsController implements Controller { if ("s" in parsedTradesResponse && parsedTradesResponse["s"] === "error") { tradeDtos = []; } else { - tradeDtos = parsedTradesResponse["data"].map((trade: any) => { - return { - id: trade["orderId"], - liquidation: undefined, - price: trade["price"], - side: trade["side"], - size: trade["size"], - time: new Date(trade["time"]), - } as TradeDto; - })}; + tradeDtos = parsedTradesResponse["data"].map((trade: any) => { + return { + id: trade["orderId"], + liquidation: undefined, + price: trade["price"], + side: trade["side"], + size: trade["size"], + time: new Date(trade["time"]), + } as TradeDto; + }); + } response.send({ success: true, result: tradeDtos } as TradesDto); }; @@ -301,7 +308,10 @@ class MarketsController implements Controller { ) => { const errors = validationResult(request); if (!errors.isEmpty()) { - return response.status(400).json({ errors: errors.array() as BadRequestError[] }); } + return response + .status(400) + .json({ errors: errors.array() as BadRequestError[] }); + } const marketName = request.params.market_name; const resolution = String(request.query.resolution); diff --git a/mango-service-v3/src/server.ts b/mango-service-v3/src/server.ts index c17fc3a..108c5a2 100644 --- a/mango-service-v3/src/server.ts +++ b/mango-service-v3/src/server.ts @@ -1,5 +1,8 @@ +import { logger } from "./utils"; import App from "./app"; const app = new App(); app.listen(); + +// todo add a handler for ctrl+c from docker \ No newline at end of file diff --git a/mango-service-v3/src/wallet.controller.ts b/mango-service-v3/src/wallet.controller.ts index f9e8823..76eabf7 100644 --- a/mango-service-v3/src/wallet.controller.ts +++ b/mango-service-v3/src/wallet.controller.ts @@ -1,7 +1,9 @@ import { - getTokenBySymbol, I80F48, nativeI80F48ToUi, + getTokenBySymbol, + I80F48, + nativeI80F48ToUi, nativeToUi, - QUOTE_INDEX + QUOTE_INDEX, } from "@blockworks-foundation/mango-client"; import { OpenOrders } from "@project-serum/serum"; import Controller from "controller.interface";