【黑客松PLUS】以太坊智能合约迁移PlatON教程(二)

原创 PlatON 

【黑客松PLUS】以太坊智能合约迁移PlatON教程(二)

PlatON结合区块链、人工智能和隐私计算技术,建立了一个去中心化的协作式隐私人工智能区块链网络。相较于以太坊在交易速度、交易成本和数据隐私方面有巨大的优势。

为提高开发效率,PlatON 1.1.1版本和Alaya0.16.1版本将开始全面兼容以太坊生态工具。本文将以ENS为例,讲解如何将以太坊智能合约迁移到PlatON中。


| 使用Remix迁移ENS合约

使用Truffle迁移智能合约并非是最佳选择,主要原因包括三点:一是,需部署额外的Migrations.sol合约,增加了部署成本;二是,若部署合约所需时间较长,无法及时根据网络拥堵情况,灵活调整Gas;三是,部署过程中需全程保证网络连接,一旦失去网络连接需从头开始部署合约。而使用Remix可以较好地解决上述问题。

2.1 将合约导入Remix

通过分析可知,迁移ENS需要部署四个智能合约。这四个合约分别位于:

https://github.com/ensdomains/ens/tree/master/contracts

https://github.com/ensdomains/resolvers

首先进入

https://remix.ethereum.org/

并将所有合约导入Remix中,如图1所示:

【黑客松PLUS】以太坊智能合约迁移PlatON教程(二)
图1-ENS涉及到的合约

2.2 部署合约

根据合约依赖关系,需要第一个部署的是注册表合约,即ENSRegistry.sol。

首先,选择所需部署的合约;

其次,根据合约声明选择solidity版本;

最后,点击【Compile ContractName】编译合约,如图2、3所示。

【黑客松PLUS】以太坊智能合约迁移PlatON教程(二)
图2-选择所需部署的合约

【黑客松PLUS】以太坊智能合约迁移PlatON教程(二)
图3-编译所需部署的合约

若编译成功,则进入Remix的部署界面,完成ENSRegistry合约的部署,如图4所示。

部署时,首先将PlatON测试网RPC添加到MateMask中,通过私钥将LAT地址导入到MateMask中;

其次,在Remix的deploy界面中将ENVIRONMENT设置为Injected Web3 ,并将CONTRACT设置为所需部署的合约;

然后,点击Deploy可以设置该笔交易的Gas Price,如图5所示;

最后,在MateMask中点击确认,便成功部署该合约。

【黑客松PLUS】以太坊智能合约迁移PlatON教程(二)
图4-合约部署界面

【黑客松PLUS】以太坊智能合约迁移PlatON教程(二)
图5-调整交易Gas Price价格

同理,使用Remix部署其余三个合约与部署ENSRegistry.sol方法一致。需额外注意的有三点。

一是,如果合约通过

import“@PATH/contractName.sol”导入其他合约。

需要统一修改为:

import“https://github.com/PATH/contractName.sol”

二是,若导入合约所使用solidity版本与项目版本不一致,需修改solidity版本和因此导致的编译错误;

三是,构造函数需要传参时,需在Deploy后面传入参数。入参大于一时,使用“,”分割,如图6所示。

【黑客松PLUS】以太坊智能合约迁移PlatON教程(二)
图6-构造函数传参

下一期将讲解合约测试部分,敬请关注。

本文转载自https://mp.weixin.qq.com/s/Jg6_pYsc_KE8MUqffsnEOw

(1)
PlatONWorld-M6的头像PlatONWorld-M6管理员
上一篇 16 12 月, 2021 18:58
下一篇 17 12 月, 2021 11:10

相关推荐

发表回复

登录后才能评论