技术云图 | CryptoKitties迁移到PlatON教程(二)

原创 PlatON

技术云图 | CryptoKitties迁移到PlatON教程(二)

CryptoKitties(密码猫),是全球首款区块链游戏。密码猫是一群讨人喜欢的数字喵咪,每一只猫咪都拥有独一无二的基因组,这决定它的外观和特征。玩家可以收集和繁殖喵咪,创造出全新的喵星人并解锁珍稀属性。

基于PlatON已经全面兼容以太坊,本文主要讲如何将CryptoKitties迁移到PlatON上。

| 编译

从源码中可以看到版本声明是

pragma solidity ^0.4.11;

这表示仅支持0.4.11及以上版本编译器编译,而不允许0.5.0及以上版本编译器编译。PlatON是支持0.4.26的solidity的,因此我们需要修改配置文件truffle-config.js的编译器版本为0.4.26。然后执行:

platon-truffle compile

| 部署

为了运行CryptoKitties,我们需要部署KittyCore、GeneSimple、SaleClockAuction、SiringClockAuction这4个合约,ERC721Metadata这个合约其实是没什么用的,所以不用部署。

创建脚本

cd migrations && touch 2_initial_CryptoKitty.js

添加代码

const KittyCore = artifacts.require("KittyCore");const GeneSimple = artifacts.require("GeneSimple");const SaleClockAuction = artifacts.require("SaleClockAuction");const SiringClockAuction = artifacts.require("SiringClockAuction");const CUT = 5000;module.exports = async function(deployer) {      await deployer.deploy(KittyCore);      console.log("KittyCore address: ", KittyCore.address);      await deployer.deploy(GeneSimple);      console.log("GeneSimple address: ", GeneSimple.address);      await deployer.deploy(SaleClockAuction, KittyCore.address, CUT);      console.log("SaleClockAuction address: ", SaleClockAuction.address);      await deployer.deploy(SiringClockAuction, KittyCore.address, CUT);      console.log("SiringClockAuction address: ", SiringClockAuction.address);};

修改配置

修改文件truffle-config.js中的链信息

development: {     host: "35.247.155.162",     // Localhost (default: none)     port: 6789,            // Standard Ethereum port (default: none)     network_id: "*",       // Any network (default: none)     from: "lat1mph9ef447m8dd5cpa5792yzv3ldzexd9c5rcsz",        // Account to send txs from (default: accounts[0])     gas: 9000000,     gasPrice: 10000000000    },

host: 节点地址,这里填的是PlatON官方提供的开发网地址。from: 合约部署账号,填owner账号。

解锁钱包账户

进入platon-truffle控制台

platon-truffle console

导入私钥(如果之前已导入可以跳过此步骤)

web3.platon.personal.importRawKey("您的钱包私钥","您的钱包密码");

导入成功会输出私钥对应的地址

'lat1mph9ef447m8dd5cpa5792yzv3ldzexd9c5rcsz'

解锁钱包账户

web3.platon.personal.unlockAccount('您的钱包地址','您的钱包密码',999999);

部署合约

执行以下部署合约的命令

platon-truffle migrate

执行成功,得到合约地址如下所示

KittyCore address: lat1wgvxun6csmxkfsaauaduqp5mrw74ll4f94j3cyGeneSimple address: lat17km9jwlan8avemk0d3jwp683y0k95y466tayq6SaleClockAuction address: lat1x6nv5ga7l2pctt4tvlw9t4ekkge6z73gtwmfnvSiringClockAuction address: lat164xrjncqn79ttcld27tdjq9wttcsz8t6txq72q

下节我们将详述交互验证教程,敬请期待。

(未完待续)

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

(0)
PlatONWorld-M6的头像PlatONWorld-M6管理员
上一篇 30 12 月, 2021 14:50
下一篇 30 12 月, 2021 21:47

相关推荐

发表回复

登录后才能评论