一天完成一个应用到 Passet Hub 的迁移
2025-06-18 17:01
OneBlock
2025-06-18 17:01
OneBlock
2025-06-18 17:01
订阅此专栏
收藏此文章

文章将从一个实际的项目作为例子,详细的描述了把一个项目从之前基于 EVM 的 solidity 的应用程序,迁移到 PolkaVM 的过程是怎么样的。

首先什么是 PolkaVM,PolkaVM 是 Parity 打造的智能合约执行环境,它基于 RISC-V 一种先进的基于寄存器的指令架构,用以取代老旧的 EVM 堆栈逻辑。它具有很高的执行效率,节省代码空间等很多优势。

为了方便众多的 Solidity 开发者和项目,Parity 推出了 Resolc 编译器,可以将 Solidity 的代码编译到 PolkaVM 的字节码。这样很多的已有项目可以在做很小的修改后,部署到 PolkaVM 里面执行。

Passet Hub 是一个由社区维护的测试环境,里面包含了对 PolkaVM 的支持,开发者和项目可以先把程序在这里做验证,等 Kusama 和 Polkadot 升级到支持 PolkaVM 的版本后,就可以直接部署到生产环境了。

作者自己通过一个简单项目的迁移,记录下了基本步骤,希望对 PolkaVM 有兴趣的开发者参考。

图片
详细过程

首先我们来看之前的项目的 Github 地址:🔗 https://github.com/papermoonio/moonbase-mintableERC20

这是一个部署在 Moonbase 上的应用,由于 Moonbase 和 EVM 完全兼容,所以它也可以部署在其他支持 EVM 的链上。这个项目使用 Hardhat 来部署类 ERC20 合约,然后用一个 React 项目来和合约交互,连接钱包,发送交易等。

合约部署

对于在 PolkaVM 上的合约部署工具,Parity Hardhat 已经十分成熟,可以完成合约的编译,测试和部署。Hardhat 项目的设置可以参考这个文档:

🔗 https://papermoonio.github.io/polkadot-mkdocs/tutorials/smart-contracts/launch-your-first-project/test-and-deploy-with-hardhat/

在完成环境的基本测试之后,就可以写一个 ERC20 合约。先在本地完成编译和单元测试。

在部署到 Passet Hub 之前需要检查 Hardhat 的设置,比如 RPC 地址,帐号等。需要把帐号的私钥写到本地的 .env 文件中,这里是 Faucet 的地址:🔗 https://faucet.polkadot.io/?parachain=1111,发送交易需要的 Token 可以打开链接并领取。当然还需要配置 Metamask,添加 Passet Hub 网络到配置列表中。

当所有设置完成后,就可以部署合约了,具体命令在 README 中可以找到。对于 ERC20 需要的参数,可以刚到一个配置文件中,设置不同的 name 和 symbol。返回的合约地址记得保存,在我们配置 Dapp 的时候要用。

Dapp 修改

Dapp 中资源的修改,需要用到我们在部署合约时候用到的 name 和 symbol,以及合约的地址。把他们放到 address.json 文件中,这个文件列出了所有 Dapp 目前支持的 ERC20 信息。对于每个合约,我们可以配上一张图片,以便在 UI 界面上识别。

在 web3.js (http://web3.js) 里面我们把 RPC 地址修改成为 Passet Hub 的参数 https://testnet-passet-hub-eth-rpc.polkadot.io。 在项目文件中搜索用到 chain id 的地方,把它换成 Passet Hub 的 id,420420421,或者是 16 位格式。

在配置完成之后,可以运行 “npm run dev” 来启动后台服务,然后就可以打开浏览器来使用了。前端界面截图如下:

整个项目完成之后的代码放在下面这个 Github 地址,可以 clone 下来,本地运行并测试。

🔗 https://github.com/papermoonio/polkadot-mintableERC20

图片
下一步计划
有了这个 Dapp,我们可以在 Passet Hub 上获取 ERC20 token,类似一个 ERC20 的 faucet。今后我们可以把它和 Uniswap 集成,完成 Liquidity,Swap 等操作。

对于这个 Dapp,我们已经部署到了这个地址 https://polkadot-erc20.netlify.app/,有兴趣的同学可以尝试一下。

免责声明:由 PaperMoon 提供并包含在本文中的材料仅用于学习目的。它们不构成财务或投资建议,也不应被解读为任何商业决策的指导。我们建议读者在做出任何投资或商业相关的决定之前,进行独立研究并咨询专业人士。PaperMoon 对根据本文内容采取的任何行动不承担任何责任。


👇 点 击 解 锁 往 期 精 彩 👇


图片
图片
图片
图片
图片

About Us

关于我们

OneBlock+ 作为区块链的人才聚集地,是全球领先的 Substrate 开发者社区。我们将提供专业的技术文章和开发课程,并组织研讨会、黑客松创业大赛等交流实践活动,从而帮助开发者掌握 Substrate 技术、深入探索 Web3 领域。同时,OneBlock+ 还为 Web3 优质项目提供技术指导、人才资源等多重创业支持,促使更多开发团队使用 Substrate 技术框架构建未来开放网络。
Twitter: https://twitter.com/OneBlock_
Medium: https://medium.com/@OneBlockplus
Telegram: https://t.me/oneblock_dev
Discord: https://discord.gg/fE8deY4UbP
Bilibili: https://space.bilibili.com/1650224419
YouTube: https://www.youtube.com/channel/UCWo2r3wA6brw3ztr-JmzyXA

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

OneBlock
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开