anchor/tests/validator-clone/tests/validator-clone.ts

71 lines
2.4 KiB
TypeScript

import * as anchor from "@coral-xyz/anchor";
import { Program } from "@coral-xyz/anchor";
import { assert } from "chai";
import { ValidatorClone } from "../target/types/validator_clone";
describe("validator-clone", () => {
// Configure the client to use the local cluster.
anchor.setProvider(anchor.AnchorProvider.env());
const program = anchor.workspace.ValidatorClone as Program<ValidatorClone>;
const connection = program.provider.connection;
it("Cloned non-executable account", async () => {
// Metadata program upgrade authority
const account = "AqH29mZfQFgRpfwaPoTMWSKJ5kqauoc1FwVBRksZyQrt";
const [accountInfo] = await anchor.utils.rpc.getMultipleAccounts(
connection,
[new anchor.web3.PublicKey(account)]
);
assert.isNotNull(accountInfo, "Account " + account + " not found");
});
it("Cloned bpf2-program account", async () => {
// Memo program
const account = "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";
const [accountInfo] = await anchor.utils.rpc.getMultipleAccounts(
connection,
[new anchor.web3.PublicKey(account)]
);
assert.isNotNull(accountInfo, "Account " + account + " not found");
});
it("Cloned bpf3-program accounts and their program data", async () => {
const accounts = [
// Metadata program
"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s",
// Metadata program executable data
"PwDiXFxQsGra4sFFTT8r1QWRMd4vfumiWC1jfWNfdYT",
// Solend program
"So1endDq2YkqhipRh3WViPa8hdiSpxWy6z3Z6tMCpAo",
// Solend program executable data
"DMCvGv1fS5rMcAvEDPDDBawPqbDRSzJh2Bo6qXCmgJkR",
];
const accountInfos = await anchor.utils.rpc.getMultipleAccounts(
connection,
accounts.map((acc) => new anchor.web3.PublicKey(acc))
);
accountInfos.forEach((acc, i) => {
assert.isNotNull(acc, "Account " + accounts[i] + " not found");
});
});
it("Cloned bpf3-program account and its program data (both explicitly declared)", async () => {
const accounts = [
// Mango v3 program
"mv3ekLzLbnVPNxjSKvqBpU3ZeZXPQdEC3bp5MDEBG68",
// Mango v3 program executable data
"8DKwAVrCEVStDYNPCsmxHtUj8LH9oXNtkVRrBfpNKvhp",
];
const accountInfos = await anchor.utils.rpc.getMultipleAccounts(
connection,
accounts.map((acc) => new anchor.web3.PublicKey(acc))
);
accountInfos.forEach((acc, i) => {
assert.isNotNull(acc, "Account " + accounts[i] + " not found");
});
});
});