[multisig] Improve verify, add localnet (#420)

* Improve verify, add localnet

* Restore something

* Format

* Remove option
This commit is contained in:
guibescos 2022-12-08 22:27:31 +08:00 committed by GitHub
parent e536b3a61e
commit a0d2422cf4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 23 deletions

View File

@ -22,11 +22,12 @@ import { program } from "commander";
import * as fs from "fs"; import * as fs from "fs";
import { LedgerNodeWallet } from "./wallet"; import { LedgerNodeWallet } from "./wallet";
import lodash from "lodash"; import lodash from "lodash";
import { getActiveProposals, getProposalInstructions } from "./multisig";
setDefaultWasm("node"); setDefaultWasm("node");
type Cluster = "devnet" | "mainnet"; type Cluster = "devnet" | "mainnet" | "localnet";
type WormholeNetwork = "TESTNET" | "MAINNET"; type WormholeNetwork = "TESTNET" | "MAINNET" | "DEVNET";
type Config = { type Config = {
wormholeClusterName: WormholeNetwork; wormholeClusterName: WormholeNetwork;
@ -45,6 +46,11 @@ const CONFIG: Record<Cluster, Config> = {
vault: new PublicKey("FVQyHcooAtThJ83XFrNnv74BcinbRH3bRmfFamAHBfuj"), vault: new PublicKey("FVQyHcooAtThJ83XFrNnv74BcinbRH3bRmfFamAHBfuj"),
wormholeRpcEndpoint: "https://wormhole-v2-mainnet-api.certus.one", wormholeRpcEndpoint: "https://wormhole-v2-mainnet-api.certus.one",
}, },
localnet: {
wormholeClusterName: "DEVNET",
vault: new PublicKey("2VVHgWVHi32P1aoMjHmL3e1Hf6yi7uERahXF1T5n6EHx"), // Placeholder
wormholeRpcEndpoint: "https://wormhole-v2-mainnet-api.certus.one", // Placeholder
},
}; };
program program
@ -374,7 +380,11 @@ async function getSquadsClient(
console.log(`Loaded wallet with address: ${wallet.publicKey.toBase58()}`); console.log(`Loaded wallet with address: ${wallet.publicKey.toBase58()}`);
} }
const squad = const squad =
cluster === "devnet" ? Squads.devnet(wallet) : Squads.mainnet(wallet); cluster === "devnet"
? Squads.devnet(wallet)
: cluster == "mainnet"
? Squads.mainnet(wallet)
: Squads.endpoint("http://127.0.0.1:8899", wallet);
return squad; return squad;
} }
@ -582,8 +592,9 @@ async function verifyWormholePayload(
console.log(`Emitter Address: ${emitter.toBase58()}`); console.log(`Emitter Address: ${emitter.toBase58()}`);
const tx = await squad.getTransaction(txPubkey); const tx = await squad.getTransaction(txPubkey);
const onChainInstructions = await getProposalInstructions(squad, tx);
if (tx.instructionIndex !== 2) { if (onChainInstructions.length !== 2) {
throw new Error( throw new Error(
`Expected 2 instructions in the transaction, found ${ `Expected 2 instructions in the transaction, found ${
tx.instructionIndex + 1 tx.instructionIndex + 1
@ -591,25 +602,6 @@ async function verifyWormholePayload(
); );
} }
const [ix1PubKey] = getIxPDA(
txPubkey,
new anchor.BN(1),
squad.multisigProgramId
);
const [ix2PubKey] = getIxPDA(
txPubkey,
new anchor.BN(2),
squad.multisigProgramId
);
const onChainInstructions = await squad.getInstructions([
ix1PubKey,
ix2PubKey,
]);
console.log(onChainInstructions[0]);
console.log(onChainInstructions[1]);
const [messagePDA] = getIxAuthorityPDA( const [messagePDA] = getIxAuthorityPDA(
txPubkey, txPubkey,
new anchor.BN(1), new anchor.BN(1),