wip: remove unnecessary array destructuring

This commit is contained in:
Tyler Shipe 2021-10-14 02:58:04 -04:00
parent e49e7cc479
commit 2d69d1e959
1 changed files with 50 additions and 57 deletions

View File

@ -108,44 +108,43 @@ export function parseTransactions(transactionsResult, mangoProgramId) {
}
}
let instructions = result.transaction.message.instructions
// Can have multiple inserts per signature so add instructionNum column to allow a primary key
let instructionNum = 1
let eventNum = 1
for (const log of serializedLogMessages) {
const decodedEvent = coder.events.decode(log)
console.log("decodedEvent", decodedEvent)
const eventName = decodedEvent?.name
const eventData = decodedEvent?.data as any
console.log("decodedEvent", decodedEvent)
if (eventName === "CachePricesLog") {
parsedTransactions.cache_prices.push(
...parseCachePrices(instructionNum, eventData, signature, blockTime, slot, blockDatetime)
...parseCachePrices(eventNum, eventData, signature, blockTime, slot, blockDatetime)
)
} else if (eventName === "CacheRootBanksLog") {
parsedTransactions.cache_indexes.push(
...parseCacheRootBanks(instructionNum, eventData, signature, blockTime, slot, blockDatetime)
...parseCacheRootBanks(eventNum, eventData, signature, blockTime, slot, blockDatetime)
)
} else if (eventName === "DepositLog" || eventName === "WithdrawLog") {
parsedTransactions.deposits_withdraws.push(
...parseDepositWithDraw(instructionNum, eventData, eventName, signature, blockTime, slot, blockDatetime)
parseDepositWithDraw(eventNum, eventData, eventName, signature, blockTime, slot, blockDatetime)
)
} else if (eventName === "TokenBalanceLog") {
parsedTransactions.net_balances.push(
...parseTokenBalance(instructionNum, eventData, signature, blockTime, slot, blockDatetime)
parseTokenBalance(eventNum, eventData, signature, blockTime, slot, blockDatetime)
)
} else if (eventName === "RedeemMngoLog") {
parsedTransactions.redeem_mngo.push(
...parseRedeemMngo(instructionNum, eventData, signature, blockTime, slot, blockDatetime)
parseRedeemMngo(eventNum, eventData, signature, blockTime, slot, blockDatetime)
)
} else if (eventName === "FillLog") {
parsedTransactions.fill_events.push(
...parseFillLog(instructionNum, eventData, signature, blockTime, slot, blockDatetime)
parseFillLog(eventNum, eventData, signature, blockTime, slot, blockDatetime)
)
}
instructionNum++
eventNum++
}
// for (let instruction of instructions) {
@ -243,7 +242,6 @@ export function parseTransactions(transactionsResult, mangoProgramId) {
// )
// }
// }
// instructionNum++
// }
@ -277,6 +275,9 @@ function insertQuotesAroundField(jsonString, field) {
function parseFillLog(instructionNum, eventData, signature, blockTime, slot, blockDatetime) {
// instructionNum is used here to form a primary key on the db table (with signature)
let mangoGroupPk = eventData.mangoGroup.toString()
let perpMarkets = ids["groups"].find((e) => e["publicKey"] === mangoGroupPk)["perpMarkets"]
let marketIndex = eventData.marketIndex.toNumber()
let perpMarket = perpMarkets.find((e) => e["marketIndex"] === marketIndex)
console.log("parseFillLog data: ", eventData)
@ -286,9 +287,9 @@ function parseFillLog(instructionNum, eventData, signature, blockTime, slot, blo
maker_fee: new I80F48(eventData.makerFee).toNumber(),
maker_order_id: eventData.makerOrderId.toNumber(),
// TODO: fix multipliers
price: eventData["price"] / 10,
quantity: eventData["quantity"] / 10000,
price: eventData.price.mul(I80F48.fromNumber(Math.pow(10, perpMarket.baseDecimals - perpMarket.quoteDecimals))),
// TODO: check if quantity multiplier is needed
quantity: eventData.quantity.toNumber(),
seq_num: eventData.seqNum.toNumber(),
taker: eventData.taker.toString(),
@ -808,18 +809,16 @@ function parseRedeemMngo(instructionNum, eventData, signature, blockTime, slot,
let quantity = eventData.redeemedMngo.toNumber() / Math.pow(10, decimals)
return [
{
margin_account: marginAccount,
quantity: quantity,
instruction_num: instructionNum,
mango_group: mangoGroup,
block_datetime: blockDatetime,
slot: slot,
signature: signature,
blocktime: blockTime,
},
]
return {
margin_account: marginAccount,
quantity: quantity,
instruction_num: instructionNum,
mango_group: mangoGroup,
block_datetime: blockDatetime,
slot: slot,
signature: signature,
blocktime: blockTime,
}
}
function parseDepositWithDraw(instructionNum, eventData, eventName, signature, blockTime, slot, blockDatetime) {
@ -844,23 +843,19 @@ function parseDepositWithDraw(instructionNum, eventData, eventName, signature, b
let quantity = nativeQuantity / Math.pow(10, mintDecimals)
console.log("withdraw quantitty", quantity)
return [
{
margin_account: marginAccount,
owner: owner,
symbol: symbol,
side: side,
quantity: quantity,
instruction_num: instructionNum,
mango_group: mangoGroup,
block_datetime: blockDatetime,
slot: slot,
signature: signature,
blocktime: blockTime,
},
]
return {
margin_account: marginAccount,
owner: owner,
symbol: symbol,
side: side,
quantity: quantity,
instruction_num: instructionNum,
mango_group: mangoGroup,
block_datetime: blockDatetime,
slot: slot,
signature: signature,
blocktime: blockTime,
}
}
function parseTokenBalance(instructionNum, eventData, signature, blockTime, slot, blockDatetime) {
@ -881,19 +876,17 @@ function parseTokenBalance(instructionNum, eventData, signature, blockTime, slot
let deposit = new I80F48(eventData.deposit).div(I80F48.fromNumber(Math.pow(10, token.decimals))).toNumber()
let borrow = new I80F48(eventData.borrow).div(I80F48.fromNumber(Math.pow(10, token.decimals))).toNumber()
return [
{
mango_account: mangoAccountPk,
symbol: symbol,
deposit: deposit,
borrow: borrow,
mango_group: mangoGroupPk,
block_datetime: blockDatetime,
slot: slot,
signature: signature,
blocktime: blockTime,
},
]
return {
mango_account: mangoAccountPk,
symbol: symbol,
deposit: deposit,
borrow: borrow,
mango_group: mangoGroupPk,
block_datetime: blockDatetime,
slot: slot,
signature: signature,
blocktime: blockTime,
}
}
function parseCacheRootBanks(instructionNum, eventData, signature, blockTime, slot, blockDatetime) {