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

原创 PlatON 

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

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

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

感谢提供本教程的PlatON生态参与者@metaPort

| 合约测试

如果使用Truffle部署合约,可以使用Web3对部署的合约进行调试。首先,通过npm install web3安装Web3包。

由于项目需要调试的内容比较多,本文只介绍测试程序的主要框架。

const Web3 = require('web3')
const HttpProvider = ${RPC}
const web3 = new Web3(new Web3.providers.HttpProvider(HttpProvider))

const fs = require("fs");
const ABIString= fs.readFileSync("./build/contracts/fileName.json", "utf-8");
const ABIJSON= JSON.parse(ABIString);

const privateKey = '私钥'
web3.eth.accounts.wallet.add(privateKey)
const myAddr = web3.eth.accounts.wallet[0].address
var ContractName = new web3.eth.Contract(ABIJSON.abi,'ContractAddr');

async function test() {
    // 修改合约状态的方法
    var renturnsContent = await ContractName.methods.methodsName(param).send({
        from:myAddr,
        gas:2000000,
        gasPrice:"999999"
    },function(error,txHash){
        console.log("error:",error);
        console.log("txHash:",txHash);
    })
    console.log("renturnsContent:",renturnsContent);
    
    // 查询合约状态
    var renturnsContent= await ContractName.methods.methodsName(param).call()
    console.log("renturnsContent:",renturnsContent);
}

如果使用Remix部署合约,合约部署成功之后在Deployed Contract下面会显示合约名称,合约地址和合约的对外方法,如图7所示。

【黑客松PLUS】以太坊智能合约迁移PlatON教程(三)
图7-Remix合约调试界面

至此,将ENS迁移到PlatON的整个流程介绍完毕。整个流程与在以太坊上部署合约的体验一致,说明PlatON在兼容以太坊生态方面已经足够成熟,将一步降低了以太坊开发者在PlatON上的开发成本。

期待PlatON借助自身的隐私计算、AI方面的优势以及以太坊强悍的生态,打造出更加强悍的生态,更好地服务于实体经济的发展。

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

(0)
PlatONWorld-M6的头像PlatONWorld-M6管理员
上一篇 17 12 月, 2021 16:42
下一篇 18 12 月, 2021 12:28

相关推荐

发表回复

登录后才能评论