wip: remove unnecessary array destructuring
This commit is contained in:
parent
e49e7cc479
commit
2d69d1e959
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue