`) zksync: true } }, solidity: { version: “0.8.0” } };


2. **部署脚本**: 在 `scripts` 目录下创建一个新文件 `deploy.ts`,并添加以下内容:

```typescript
import { zkSyncProvider, Wallet } from "zksync-web3";
import * as ethers from "ethers";
import { HardhatRuntimeEnvironment } from "hardhat/types";
import { Deployer } from "@matterlabs/hardhat-zksync-deploy";

async function main() {
  console.log("Deploying contract to zkSync");

  // Initialize the wallet.
  const wallet = new Wallet("<YOUR_PRIVATE_KEY>");

  // Create a deployer instance.
  const deployer = await Deployer.create({
    provider: await zkSyncProvider(),
    wallet
  });

  // Get the contract factory.
  const contractFactory = await deployer.getContractFactory("HelloWorld");

  // Deploy the contract.
  const contract = await deployer.deploy(contractFactory, ["Hello, zkSync!"]);

  console.log(`Contract deployed to: ${contract.address}`);
}

main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});
  1. 部署合约: 在项目根目录下运行以下命令:
npx hardhat --network zkSyncTestnet run scripts/deploy.ts

这将把 “Hello World” 合约部署到zkSync Testnet上。

验证部署

部署完成后,您可以通过以下方式验证合约是否成功部署:

  1. zkSync Portal 上检查合约地址。
  2. 使用 zksync-web3 提供的 API 与合约进行交互,例如查询 message 变量的值。

以下是一个示例代码:

import { Provider, utils } from "zksync-web3";

async function main() {
  const provider = await Provider.getDefaultProvider("mainnet");
  const contract = new utils.Contract(
    "<CONTRACT_ADDRESS>",
    [
      "function message() view returns (string memory)"
    ],
    provider
  );

  const message = await contract.message();
  console.log(`Current message: ${message}`);
}

main().catch((error) =>