智能合约的一些主要优势包括在处理文档时的更高效率。这归功于它能够采用完全自动化的流程,不需要任何人为参与,只要满足智能合约代码所列出的要求即可。结果是,会节省时间,降低成本,交易更准确,且无法更改。
此外,智能合约系统I34-开发I633-源码53I9,去除任何第三方干扰,进一步增强了网络的去中心化。
详细说明参考代码注释。
// SPDX-License-Identifier: MIT`` //file IERC20Metadata.sol``pragma solidity ^``0.8``.``0``;``import "./IERC20.sol"``;``interface IERC20Metadata is IERC20 {`` ``// 代币名称, 如:BitCoin`` ``function name() external view returns (string memory);`` ``// 代币符号或简称, 如:BTC`` ``function symbol() external view returns (string memory);`` ``// 代币支持的小数点后位数,若无特别需求,我们一般默认采用18位。`` ``function decimals() external view returns (uint8);``}
MetaData数据定义,该部分比较简单,定义三个函数,分别对应代币名称,代币简称和代币小数点位数。
具体代码实现:
// 地址余额 mapping(address => uint256) private _balances; // 授权地址余额 mapping(address => mapping(address => uint256))
private` `_allowances; uint256 private _totalSupply; ` ` string
private` `_name; string private _symbol;`
ERC20合约中定义了5个变量:
_balances变量以keyv=>value方式存储帐号和其对应的余额。
_allowances变量是一个两层mapping,数据值以下结构存储:0x123456=>[0x123457=>1000, 0x123458=>2000],代表的意思是0x123456帐号授权0x123457和0x123458两个帐号,分别可以使用0x123456帐号1000和2000余额额度。使用余额的函数为transferFrom。
_totalSupply变量是存储当成代币合约发行的代币总量,一般我们每铸造一个新代币,就在其值上+1。