ts: fix client usage in script

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
This commit is contained in:
microwavedcola1 2023-11-20 13:11:08 +01:00
parent 1b8f3b7cbc
commit 43afa713a9
1 changed files with 186 additions and 155 deletions

View File

@ -1,4 +1,4 @@
import { AnchorProvider } from '@coral-xyz/anchor';
import { AnchorProvider, Wallet } from '@coral-xyz/anchor';
import {
ASSOCIATED_TOKEN_PROGRAM_ID,
NATIVE_MINT,
@ -6,7 +6,9 @@ import {
} from '@solana/spl-token';
import {
AddressLookupTableProgram,
Cluster,
ComputeBudgetProgram,
Connection,
Keypair,
PublicKey,
SYSVAR_INSTRUCTIONS_PUBKEY,
@ -15,9 +17,15 @@ import {
import fs from 'fs';
import { Group } from '../src/accounts/group';
import { MangoClient } from '../src/client';
import { MANGO_V4_MAIN_GROUP, OPENBOOK_PROGRAM_ID } from '../src/constants';
import {
MANGO_V4_ID,
MANGO_V4_MAIN_GROUP,
OPENBOOK_PROGRAM_ID,
} from '../src/constants';
import { buildVersionedTx } from '../src/utils';
const { MB_CLUSTER_URL, MB_PAYER_KEYPAIR, DRY_RUN } = process.env;
const { MB_CLUSTER_URL, MB_PAYER3_KEYPAIR, DRY_RUN } = process.env;
const CLUSTER: Cluster = (process.env.CLUSTER as Cluster) || 'mainnet-beta';
// eslint-disable-next-line no-inner-declarations
async function extendTable(
@ -50,14 +58,16 @@ async function extendTable(
addresses,
});
if (DRY_RUN) {
console.log(
`Extending ${altAddress} with ${nick} ${
addresses.length
} addresses - ${addresses.join(', ')}`,
);
if (DRY_RUN) {
return;
}
const extendTx = await buildVersionedTx(
client.program.provider as AnchorProvider,
[extendIx],
@ -69,12 +79,23 @@ async function extendTable(
}
async function run(): Promise<void> {
const client = await MangoClient.connectDefault(MB_CLUSTER_URL!);
const group = await client.getGroup(MANGO_V4_MAIN_GROUP);
try {
const options = AnchorProvider.defaultOptions();
const connection = new Connection(MB_CLUSTER_URL!, options);
const payer = Keypair.fromSecretKey(
Buffer.from(JSON.parse(fs.readFileSync(MB_PAYER_KEYPAIR!, 'utf-8'))),
Buffer.from(JSON.parse(fs.readFileSync(MB_PAYER3_KEYPAIR!, 'utf-8'))),
);
const payerWallet = new Wallet(payer);
const userProvider = new AnchorProvider(connection, payerWallet, options);
const client = await MangoClient.connect(
userProvider,
CLUSTER,
MANGO_V4_ID[CLUSTER],
{
idsSource: 'get-program-accounts',
},
);
const group = await client.getGroup(MANGO_V4_MAIN_GROUP);
//
// Table 0 - liquidation relevant accounts
@ -133,7 +154,13 @@ async function run(): Promise<void> {
.flat(),
);
// Well known addressess
await extendTable(client, group, payer, 'well known addresses', altAddress0, [
await extendTable(
client,
group,
payer,
'well known addresses',
altAddress0,
[
// Solana specific
SystemProgram.programId,
TOKEN_PROGRAM_ID,
@ -143,7 +170,8 @@ async function run(): Promise<void> {
ComputeBudgetProgram.programId,
// Misc.
OPENBOOK_PROGRAM_ID['mainnet-beta'],
]);
],
);
//
// Table 1 - everything else
@ -218,6 +246,9 @@ async function run(): Promise<void> {
.flat()
.map((serum3ExternalMarket) => serum3ExternalMarket.asksAddress),
);
} catch (error) {
console.log(error);
}
}
run();