51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import { PublicKey } from '@solana/web3.js';
|
|
import { MangoClient } from '../src/client';
|
|
import { toUiDecimals } from '../src/utils';
|
|
|
|
async function run() {
|
|
const client = await MangoClient.connectDefault(process.env.MB_CLUSTER_URL!);
|
|
let group = await client.getGroup(
|
|
new PublicKey('78b8f4cGCwmZ9ysPFMWLaLTkkaYnUjwMJYStWe5RTSSX'),
|
|
);
|
|
|
|
let accounts = await client.getAllMangoAccounts(group, true);
|
|
const jitoBank = group.getFirstBankByMint(
|
|
new PublicKey('J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn'),
|
|
);
|
|
const jitoSpotMarket = group.getSerum3MarketByName('JitoSOL/USDC');
|
|
|
|
accounts = accounts.filter(
|
|
(a) =>
|
|
a.getTokenBalanceUi(jitoBank) +
|
|
(a.getSerum3Account(jitoSpotMarket.marketIndex)
|
|
? a
|
|
.getSerum3OoAccount(jitoSpotMarket.marketIndex)
|
|
.baseTokenTotal.toNumber()
|
|
: 0) >
|
|
0.1,
|
|
);
|
|
|
|
accounts.sort((a, b) =>
|
|
a.publicKey.toBase58().localeCompare(b.publicKey.toBase58()),
|
|
);
|
|
|
|
console.log(`wallet,mango_account,jito_sol_balance_ui`);
|
|
accounts.forEach((a) =>
|
|
console.log(
|
|
`${a.owner},${a.publicKey},${
|
|
a.getTokenBalanceUi(jitoBank) +
|
|
(a.getSerum3Account(jitoSpotMarket.marketIndex)
|
|
? toUiDecimals(
|
|
a
|
|
.getSerum3OoAccount(jitoSpotMarket.marketIndex)
|
|
.baseTokenTotal.toNumber(),
|
|
jitoBank.mintDecimals,
|
|
)
|
|
: 0)
|
|
}`,
|
|
),
|
|
);
|
|
}
|
|
|
|
run();
|