首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用zkSync和MetaMask在MetaMask时代测试网上部署智能契约

如何使用zkSync和MetaMask在MetaMask时代测试网上部署智能契约
EN

Ethereum用户
提问于 2023-05-27 09:52:38
回答 2查看 47关注 0票数 1

我想使用zkSync时代的测试网对不同的智能契约进行一些测试。我使用带有MetaMask的Remix作为注入提供程序,在testnet上部署合同。契约编译得很好,我已经能够使用这种方法在多边形zkEVM测试网上部署完全相同的合同。然而,当我在zkSync中选择了MetaMask时代的测试网并尝试部署契约时,我会得到以下错误消息(参见图):

气体估计失败了。未能序列化事务: toAddressIsNull","id":4712902792361366

这是我正在尝试部署的智能契约:

代码语言:javascript
复制
pragma solidity ^0.8.7;
// SPDX-License-Identifier: MIT

contract Dummy {
    address public owner;

    constructor() {
        owner = msg.sender;
    }
}

虽然,最终我会部署不同的智能契约,但即使这个虚拟契约也不会部署。我用这个RPC在zkSync中配置了MetaMask时代的测试网(见图):

https://testnet.era.zksync.dev

这个配置在MetaMask上运行得很好,我在这个网络上有一些ETH。我还尝试将RPC更改为我在网上找到的其他URL,但这并没有改变错误:

https://zksync2-testnet.zksync.dev https://zksync-era-testnet.rpc.thirdweb.com

到目前为止,只有zkSync时代的测试网出现了这些错误,我已经能够在其他测试网上部署智能契约了。任何帮助或建议,我可以尝试/改变,将不胜感激!

EN

回答 2

Ethereum用户

回答已采纳

发布于 2023-06-01 16:41:44

你试过强迫交易吗?不幸的是,zkSync与EVM兼容,而不是等效的(这里有更多关于这一区别的内容),因此您需要我们的特定编译器来编译您的合同。见这里:

https://era.zksync.io/docs/dev/building-on-zksync/hello-world.html

您需要熟悉“硬帽子”,但本教程将一步一步地指导您。

票数 1
EN

Ethereum用户

发布于 2023-06-02 07:25:13

你需要使用硬帽子-zksync-solc。

文档是这样写的:要将一个契约部署在equal上,用户将一个事务发送到零地址(0x000.000),该事务的数据字段等于与构造函数参数连接的契约字节码。

为了在zkSync时代部署契约,用户调用ContractDeployer系统契约的create函数,提供要发布的契约的散列以及构造函数参数。(格式:https://era.zksync.io/docs/dev/building-on-zksync/contracts/contract-deployment.html#format-of-bytecode-hash)

本文档推荐部署安全帽,因为它需要不同的编译器https://era.zksync.io/docs/tools/hardhat/

在zkSync时代部署合同也是可能的,通过L1-L2通信。https://era.zksync.io/docs/dev/developer-guides/bridging/l1-l2-interop.html

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/150695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档