博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
十一课堂|通过小游戏学习Ethereum DApps编程(4)
阅读量:6066 次
发布时间:2019-06-20

本文共 2233 字,大约阅读时间需要 7 分钟。

hot3.png

image

在上篇完结的时候,我们制造出了这个独一无二可爱至极的角色:

image

这里我们继续总结一些关于solidity语言的知识点。并且开始了解一些比较高级的内容。

ERC20 tokens以及ERC721标准,和crypto-collectible。这些知识可以让我们可以和其他玩家交易自己的创造的角色。

1

Token

对于token的理解,众说纷纭。为了让你清醒的记忆token在这里的定义,我就不举例其他对token的解释了。

在这里,token就是一个Dapp,一个智能合约的意思。

重要的事情说三遍: token就是一个Dapp,一个智能合约的意思。 token就是一个Dapp,一个智能合约的意思。

这个智能合约可以追溯谁拥有多少"金币",然后有一些功能可以让"金币"拥有者进行交易。

So basically a token is just a contract that keeps track of who owns how much of that token, and some functions so those users can transfer their tokens to other addresses.

因为ERC20 tokens是一个已经被实现了的Dapp,就意味着,你可以直接在你的Dapp里面使用ERC20 tokens,不需要自己去定义自己的"金币"。 在ERC20 tokens这个Dapp里面,一个"金币",完全等于另外一个"金币"。如果你没有零钱"金币",你可以付给对方一个大面值的"金币",对方可以找零。

但在我们这个游戏里面,你创造和训练的无敌角色,和其他刚刚创造的角色的价值是完全不对等的,而且,在交易的时候,也不可能说是找0.5个角色。

与之对应的另外一个token标准:ERC721 tokens可是适用于我们这个游戏。

ERC721 tokens are not interchangeable since each one is assumed to be unique, and are not divisible. 

2

继承

在Solidity里面,我们可以这样创建一个智能合约,并且结成另外一个

pragma solidity ^0.4.19;import "./ZombieAttack.sol";contract ZombieOwnership is ZombieAttack {}

ERC721 Standard 多重继承

这是ERC721 Standard的定义:我们只需要实现这些接口。

contract ERC721 {  event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);  event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);  function balanceOf(address _owner) public view returns (uint256 _balance);  function ownerOf(uint256 _tokenId) public view returns (address _owner);  function transfer(address _to, uint256 _tokenId) public;  function approve(address _to, uint256 _tokenId) public;  function takeOwnership(uint256 _tokenId) public;}

ERC721 standard还只是一个草稿,并非正式版。在这个游戏里面我们就直接使用OpenZeppelin库里面的实现版本。

Note: The ERC721 standard is currently a draft, and there is no officially agreed-upon implementation yet. For this tutorial we're using the current version from OpenZeppelin's library

3

实现接口

和继承一样,import,并且把要实现的接口放到合约定义的 is 后面。

import "./zombieattack.sol";import "./erc721.sol";contract ZombieOwnership is ZombieAttack, erc721 {}

本系列文章作者:HiBlock区块链技术布道群-Amywu

原文发布于简书

加微信baobaotalk_com,加入技术布道群

Blockathon|48小时极客竞赛,区块链马拉松等你挑战(上海)

时间:2018年10月19-21日

地点:(上海黄浦)露香园路1号(近淮海东路)P2

  • 招募50名开发者(识别下图二维码或点击“阅读原文”即可了解详情并报名)

image

北京blockathon回顾:

成都blockathon回顾:

转载于:https://my.oschina.net/u/3782027/blog/2223055

你可能感兴趣的文章
oracle rda日志
查看>>
C/C++中随机数的获取: 伪随机函数
查看>>
397. 最长上升连续子序列
查看>>
"Ray, Pass me the dishes!" UVALive - 3938 (线段树)
查看>>
有关于key值
查看>>
MyEclipse10中导入的jquery文件报错(出现红叉叉,提示语法错误)
查看>>
离线部署 Cloudera Manager 5 和 CDH 5.12.1 及使用 CDH 部署 Hadoop 集群服务
查看>>
cursor:not-allowed
查看>>
用maven插件自动生成mybatis代码(转载http://blog.csdn.net/yinkgh/article/details/52512983)...
查看>>
TortoiseGit上传代码到GitHub
查看>>
hdu 2462 poj 3696 The Luckiest number fzu 1017 zoj 1537 Playing with Calculator
查看>>
检验函数运行时间
查看>>
【转】Objective-C学习笔记八:类的定义二
查看>>
黑马程序员-基础部分
查看>>
ASP.NET伪静态及静态优越点
查看>>
latin1字符集在navicat下显示乱码(mysql)
查看>>
算法19-----(位运算)找出数组中出现只出现一次的数
查看>>
数据降维度
查看>>
c# windows服务如何获取自己的安装路径
查看>>
Mongodb
查看>>