[英]Solidity documentation mint and send function
部署硬币合约时,只要您创建一些东西,就没有什么可以使用的。 创建硬币的过程称为铸币。
将一定数量的新创建的硬币发送到一个地址 铸币通常被认为是在不知从哪里向某处发送硬币。 这可能听起来令人困惑,但可以这样想:
如果您想要定期转账:地址(Alice)发送到地址(Bob)
如果你有一个方法要做:address(Nothing) to address(Contract Creator),现在你可以创建硬币了。
只能由合约创建者调用
这是有道理的,因为铸币是凭空创造价值的,而这份合约只允许创造者。
如果你看一下mint
function,它有这个require
声明:
// msg.sender is the account that calls the function
require(msg.sender==minter)
所以只有“铸币者”可以这样称呼。 “铸币者账户”将创建代币并将代币分发给其他账户或出售代币。 因此合同所有者创建者和财务管理员是分开的。 在部署合约时设置minter
:
// you declare the state variable first
address public _minter;
// you assign a value during the construction of the contract
constructor(address minter_){
_minter=minter_;
}
在面向对象编程中,当您创建 class 的实例时调用constructor
函数。 在 Solidity 中,我们在部署合约时创建了一个合约实例。 当我们部署合约时,我们必须传递这个参数。 如果你在 remix 上部署,你会得到这个:
您必须在框中输入铸币者地址。
send
function 被定义为public,所以任何人都可以调用它。 在上面的例子中,它只是用来向接收者账户发送一些硬币。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.