Fix extraction of amount for token account and mm Procfile

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
This commit is contained in:
microwavedcola1 2023-02-22 15:08:05 +01:00
parent cfcda705e6
commit 3fe008da8b
3 changed files with 13 additions and 12 deletions

View File

@ -1 +1 @@
mm: node dist/cjs/src/scripts/mm/market-maker.js mm: node dist/cjs/scripts/mm/market-maker.js

View File

@ -1,5 +1,5 @@
import { AnchorProvider, Wallet } from '@coral-xyz/anchor'; import { AnchorProvider, Wallet } from '@coral-xyz/anchor';
import { coder } from '@coral-xyz/anchor/dist/cjs/spl/token'; import { getAccount } from '@solana/spl-token';
import { Cluster, Connection, Keypair } from '@solana/web3.js'; import { Cluster, Connection, Keypair } from '@solana/web3.js';
import * as dotenv from 'dotenv'; import * as dotenv from 'dotenv';
import fs from 'fs'; import fs from 'fs';
@ -75,15 +75,11 @@ async function main(): Promise<void> {
for (const bank of await Array.from(banksMapUsingTokenIndex.values()).sort( for (const bank of await Array.from(banksMapUsingTokenIndex.values()).sort(
(a, b) => a.tokenIndex - b.tokenIndex, (a, b) => a.tokenIndex - b.tokenIndex,
)) { )) {
const vault = I80F48.fromNumber( const account = await getAccount(
coder() client.program.provider.connection,
.accounts.decode( bank.vault,
'token',
(await client.program.provider.connection.getAccountInfo(bank.vault))!
.data,
)
.amount.toNumber(),
); );
const vault = I80F48.fromNumber(Number(account.amount));
const error = vault.sub( const error = vault.sub(
(bank as any).indexedDepositsByMangoAccounts (bank as any).indexedDepositsByMangoAccounts

View File

@ -1,6 +1,7 @@
import { BorshAccountsCoder } from '@coral-xyz/anchor'; import { BorshAccountsCoder } from '@coral-xyz/anchor';
import { Market, Orderbook } from '@project-serum/serum'; import { Market, Orderbook } from '@project-serum/serum';
import { parsePriceData } from '@pythnetwork/client'; import { parsePriceData } from '@pythnetwork/client';
import { TOKEN_PROGRAM_ID, unpackAccount } from '@solana/spl-token';
import { import {
AccountInfo, AccountInfo,
AddressLookupTableAccount, AddressLookupTableAccount,
@ -414,8 +415,12 @@ export class Group {
if (!vaultAi) { if (!vaultAi) {
throw new Error(`Undefined vaultAi for ${vaultPks[i]}`!); throw new Error(`Undefined vaultAi for ${vaultPks[i]}`!);
} }
const vaultAmount = coder.decode('token', vaultAi.data).amount; const vaultAmount = unpackAccount(
return [vaultPks[i].toBase58(), vaultAmount]; vaultPks[i],
vaultAi,
TOKEN_PROGRAM_ID,
).amount;
return [vaultPks[i].toBase58(), new BN(Number(vaultAmount))];
}), }),
); );
} }