基于区块链的智能合约不仅能发挥智能合约低成本高效率的优势,而且可以避免恶意行为对合约的正常执行的干扰。区块链I8O合约2857系统8624開发将智能合约以代码化的形式写入区块链中,利用区块链技术实现数据存储、读取及执行过程可追踪透明化且不可篡改。此外利用区块链的共识算法构造的状态机系统能使智能合约高效的运行。
ERC20约定了一个代币合约需要实现的接口:
//接口标准
contract ERC20{
function totalSupply()constant returns(uint totalSupply);//总发行量
function balanceOf(address _owner)constant returns(uint balance);
//代币分发(注意,这个只有合约的Creator可以调用)
function transfer(address _to,uint _value)returns(bool success);
//这里是拥有者和拥有者之间的代币转移
function transferFrom(address _from,address _to,uint _value)returns(bool success);
function approve(address _spender,uint _value)returns(bool success);
function allowance(address _owner,address _spender)constant returns(uint remaining);
event Transfer(address indexed _from,address indexed _to,uint _value);
event Approval(address indexed _owner,address indexed _spender,uint _value);
//Token信息
string public constant name="4FunCoin";
string public constant symbol="4FC";
uint8 public constant decimals=18;//token的精度,大部分都是18
}
上面的代码是一个标准的ERC20标准的代码,规范给出了框架,我们只需要实现相应的函数就好了,这里给出函数说明。
接口函数说明
函数的形参是局部有效,所以前面使用下划线,与其他的变量区别开来.如_owner.
totalSupply()函数返回这个Token的总发行量;
balanceOf()查询某个地址的Token数量,结合mapping实现
transfer()owner使用这个进行发送代币
transferFrom()token的所有者用来发送token
allowance()控制代币的交易,如可交易账号及资产,控制Token的流通
approve()允许用户可花费的代币数;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70016646/viewspace-2940463/ ,如需转载,请注明出处,否则将追究法律责任。