Solidity实现智能合约——宠物孵化系统(一)
上一节中简单介绍了如何实现一个智能合约,接下来我们将实现一个宠物孵化系统。
合约功能:输入宠物名会生成宠物相对于的DNA,然后会将宠物名和DNA存储到一个数组当中,我们可以进行查询。
首先在AnimalFactory.sol文件当中建立一个基础合约AnimalFactory,并指定Solidity编译器版本
pragma solidity ^0.4.19;
contract AnimalFactory{
}
宠物DNA由16个数字组成
uint dnaDigits = 16; //宠物DNA位数
uint dnaLength = 10**dnaDigits;
创建宠物结构体
struct Animal{
string name;
uint dna;
}
为了将宠物们保存在合约当中,并且让其他合约也能够看到这些宠物,因为需要一个公共数组,创建一个Animal的结构体数组
Animal [] public animals;
定义一个事件NewAnimal,有三个参数AnimalId,name,以及dna
event NewAnimal(uint AnimalId,string name,uint dna);
定义一个孵化宠物函数,其功能为孵化一个新宠物并添加入animas数组
// 孵化宠物函数
function hatchAnimal(string name,uint dna)