import { hardhat } from "./skills/hardhat/index.js";
import * as Address from "@voltaire/primitives/Address";
import * as Hex from "@voltaire/primitives/Hex";
// Connect to Hardhat Network
const hre = await hardhat.connect();
// Load contract from Hardhat artifacts
const Token = await hardhat.loadArtifact("artifacts/contracts/Token.sol/Token.json");
// Deploy using Voltaire transaction building
const deployTx = await hre.deploy(Token, {
args: ["MyToken", "MTK", 18n],
});
const tokenAddress = Address.from(deployTx.contractAddress);
// Interact with deployed contract
const balance = await hre.call({
to: tokenAddress,
data: Token.interface.encodeFunctionData("balanceOf", [hre.signer.address]),
});
console.log("Balance:", Hex.toBigInt(balance));