原创 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