fix unique decimals (#18)

Co-authored-by: solpkr <solpkr1@gmail.com>
This commit is contained in:
solpkr 2023-02-27 21:15:27 +00:00 committed by GitHub
parent ee498ebf88
commit 32cd9f01b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 3 deletions

View File

@ -3,6 +3,7 @@ import {
Commitment,
Connection,
PublicKey,
PublicKeyInitData,
} from '@solana/web3.js';
import * as fzstd from 'fzstd';
@ -86,8 +87,8 @@ export async function loadMultipleOpenbookMarkets(connection,programId,marketsLi
marketsAccountInfos.forEach(function (result) {
let layout = Market.getLayout(programId);
let decoded = layout.decode(result.accountInfo.data);
uniqueMints.add(decoded.baseMint);
uniqueMints.add(decoded.quoteMint);
uniqueMints.add(decoded.baseMint.toString());
uniqueMints.add(decoded.quoteMint.toString());
marketsMap.set(result.publicKey.toString(), {
decoded: decoded,
baseMint: decoded.baseMint,
@ -98,7 +99,7 @@ export async function loadMultipleOpenbookMarkets(connection,programId,marketsLi
//get all the token's decimal values
const MINT_LAYOUT = buffer_layout.struct([buffer_layout.blob(44), buffer_layout.u8('decimals'), buffer_layout.blob(37)]);
let uniqueMintsPubKeys: any[] = Array.from(uniqueMints);
let uniqueMintsPubKeys = Array.from(uniqueMints).map(mint => new PublicKey(<PublicKeyInitData>mint));
let uniqueMintsAccountInfos = await getMultipleAccounts(connection, uniqueMintsPubKeys, 'processed');
uniqueMintsAccountInfos.forEach(function (result) {
const {decimals} = MINT_LAYOUT.decode(result.accountInfo.data);