Skip to content

Commit 42cd062

Browse files
authored
feat(contract_manager): add send_message_to_wormhole_script (#1564)
* add send_message_to_wormhole script * address comments * precommit
1 parent 164c542 commit 42cd062

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import yargs from "yargs";
2+
import { hideBin } from "yargs/helpers";
3+
import { WormholeEmitter, loadHotWallet } from "../src/governance";
4+
5+
const parser = yargs(hideBin(process.argv))
6+
.usage(
7+
"Usage: $0 --cluster <cluster> --wallet-path <path_to_wallet_file> --message <message>"
8+
)
9+
.options({
10+
cluster: {
11+
type: "string",
12+
choices: ["mainnet-beta", "testnet"],
13+
demandOption: true,
14+
describe: "The Pyth cluster to use for sending the message",
15+
},
16+
walletPath: {
17+
type: "string",
18+
demandOption: true,
19+
describe:
20+
"Path to the wallet file to use for sending the message (e.g. ./walletPath.json)",
21+
},
22+
message: {
23+
type: "string",
24+
demandOption: true,
25+
describe: "The message in hex with no leading 0x to send to the wormhole",
26+
},
27+
});
28+
29+
async function main() {
30+
const { cluster, walletPath, message } = await parser.argv;
31+
32+
const wallet = await loadHotWallet(walletPath);
33+
const emitter = new WormholeEmitter(cluster, wallet);
34+
35+
console.log(`Sending message to wormhole using cluster ${cluster}...`);
36+
const payload = Buffer.from(message, "utf-8");
37+
const submittedMessage = await emitter.sendMessage(payload);
38+
console.log(
39+
`Message sent. Emitter: ${submittedMessage.emitter.toBase58()}, Sequence Number: ${
40+
submittedMessage.sequenceNumber
41+
}`
42+
);
43+
console.log(`Sleeping for 5 seconds to allow the message to be processed...`);
44+
await new Promise((resolve) => setTimeout(resolve, 5000));
45+
console.log(
46+
`Fetching VAA for message ${submittedMessage.emitter.toBase58()}, Sequence Number: ${
47+
submittedMessage.sequenceNumber
48+
}...`
49+
);
50+
const vaa = await submittedMessage.fetchVaa();
51+
console.log(`VAA: ${vaa.toString("hex")}`);
52+
}
53+
54+
main();

0 commit comments

Comments
 (0)