56 lines
1.5 KiB
JavaScript
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());
|
||
|
})();
|