From 7922403ae2f408e2c714376d28788bbf4c081f6c Mon Sep 17 00:00:00 2001 From: Nicholas Clarke Date: Mon, 24 Jan 2022 15:27:22 -0800 Subject: [PATCH] Add perp market to redeem mngo parsing. --- src/anchorParsers.ts | 18 ++++++++++++++++-- src/jsonParsers.ts | 11 ++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/anchorParsers.ts b/src/anchorParsers.ts index 36af4f7..9f84d32 100644 --- a/src/anchorParsers.ts +++ b/src/anchorParsers.ts @@ -1059,11 +1059,23 @@ function parseFillLog( ) { let mangoGroup = eventData.mangoGroup.toString(); let marginAccount = eventData.mangoAccount.toString(); - + + const config = new Config(IDS); + const groupConfig = config.groups.find((g) => + g.publicKey.equals(eventData.mangoGroup) + ) as GroupConfig; + + let perpMarketConfig = groupConfig.perpMarkets.find( + (p) => p.marketIndex === eventData.marketIndex.toNumber() + ) as PerpMarketConfig; + let decimals = ids["groups"] .find((e) => e["publicKey"] === mangoGroup) ["tokens"].find((e) => e.symbol === "MNGO").decimals; - + + let perpMarketName = perpMarketConfig.name + let baseSymbol = perpMarketConfig.baseSymbol + let quantity = eventData.redeemedMngo.toNumber() / Math.pow(10, decimals); return { @@ -1075,6 +1087,8 @@ function parseFillLog( slot: slot, signature: signature, blocktime: blockTime, + perp_market: perpMarketName, + baseSymbol: baseSymbol }; } diff --git a/src/jsonParsers.ts b/src/jsonParsers.ts index 029c179..b537468 100644 --- a/src/jsonParsers.ts +++ b/src/jsonParsers.ts @@ -1029,12 +1029,19 @@ function extractSettleFees( let decimals = ids['groups'] .find((e) => e['publicKey'] === mangoGroup) ['tokens'].find((e) => e.symbol === 'MNGO').decimals; + + let perpMarket = ids['groups'] + .find((e) => e['publicKey'] === mangoGroup) + ['perpMarkets'].find(e => e.publicKey === instruction.accounts[4]) + + let perpMarketName = perpMarket.name + let baseSymbol = perpMarket.baseSymbol // TODO: This would be simpler to just parse logs let transferInstruction = innerInstructions.find( (e) => e.index === instructionNum - 1, ).instructions[0]; - + let quantity = parseInt(transferInstruction.parsed.info.amount) / Math.pow(10, decimals); @@ -1048,6 +1055,8 @@ function extractSettleFees( slot: slot, signature: signature, blocktime: blockTime, + perp_market: perpMarketName, + baseSymbol: baseSymbol }, ]; }