example-portal-fast-withdrawal/evm/scripts/test_devnet.js

56 lines
1.5 KiB
JavaScript

const {
CONTRACTS,
CHAIN_ID_ETH,
parseSequencesFromLogEth,
transferFromEthNative,
tryNativeToUint8Array,
getSignedVAAWithRetry,
getEmitterAddressEth,
} = require("@certusone/wormhole-sdk");
const {
NodeHttpTransport,
} = require("@improbable-eng/grpc-web-node-http-transport");
const addresses = require("../addresses.json");
const { ethers } = require("ethers");
(async () => {
const provider = new ethers.providers.JsonRpcProvider(
"http://localhost:8545"
);
const signer = new ethers.Wallet(process.env.MNEMONIC, provider);
// the fast transfer contract shares the same interface with the token bridge
const receipt = await transferFromEthNative(
addresses.devnet,
signer,
ethers.utils.parseEther(".00000001"),
4,
tryNativeToUint8Array(await signer.getAddress(), CHAIN_ID_ETH),
0
);
const [fastSeq, portalSeq] = parseSequencesFromLogEth(
receipt,
CONTRACTS.DEVNET.ethereum.core
);
console.log("fast seq", fastSeq, "portal seq", portalSeq);
await getSignedVAAWithRetry(
["http://localhost:7071"],
CHAIN_ID_ETH,
getEmitterAddressEth(addresses.devnet),
fastSeq,
{
transport: NodeHttpTransport(),
}
);
console.log("fast", new Date().toISOString());
await getSignedVAAWithRetry(
["http://localhost:7071"],
CHAIN_ID_ETH,
getEmitterAddressEth(CONTRACTS.DEVNET.ethereum.token_bridge),
portalSeq,
{
transport: NodeHttpTransport(),
}
);
console.log("portal", new Date().toISOString());
})();