From d370ff389f390800bce0729a41365ffc87a4c54d Mon Sep 17 00:00:00 2001 From: Denis Fadeev Date: Fri, 30 Jun 2023 16:01:50 +0400 Subject: [PATCH] improve value tutorial --- messaging/value/tasks/send.ts | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/messaging/value/tasks/send.ts b/messaging/value/tasks/send.ts index 92670a8..b5a46dd 100644 --- a/messaging/value/tasks/send.ts +++ b/messaging/value/tasks/send.ts @@ -15,24 +15,33 @@ const main = async (args: any, hre: HardhatRuntimeEnvironment) => { const zetaTokenAddress = getAddress("zetaToken", hre.network.name as any); const zetaFactory = await hre.ethers.getContractFactory("ZetaEth"); const zetaToken = zetaFactory.attach(zetaTokenAddress); - await zetaToken.approve(args.contract, parseEther(args.amount)); + + const destination = hre.config.networks[args.destination]?.chainId; + if (destination === undefined) { + throw new Error(`${args.destination} is not a valid destination chain`); + } + + const recipient = args.address || signer.address; + const amount = parseEther(args.amount); + + await (await zetaToken.approve(args.contract, amount)).wait(); const tx = await contract .connect(signer) - .send(args.destination, args.address, parseEther(args.amount)); + .send(destination, recipient, amount); const receipt = await tx.wait(); - console.log(`✅ "sendHelloWorld" transaction has been broadcasted to ${hre.network.name} + console.log(`✅ Transaction has been broadcasted to ${hre.network.name} 📝 Transaction hash: ${receipt.transactionHash} Please, refer to ZetaChain's explorer for updates on the progress of the cross-chain transaction. 🌍 Explorer: https://athens3.explorer.zetachain.com/address/${args.contract} - `); +`); }; task("send", "Sends a message from one chain to another.", main) .addParam("contract", "Contract address") - .addParam("address") - .addParam("amount", "Token amount to send") - .addParam("destination", "Destination chain ID (integer)"); + .addOptionalParam("address", "Recipient address") + .addParam("amount", "Amount of ZETA tokens to send") + .addParam("destination", "Destination chain");