如何在部署智能合约时设置所有者地址
How to set owner address when deploying a smart contract
这是一个简单的智能合约 owner
:
pragma ^0.7.2
contract simple {
address owner;
constructor() public {
//do something
}
modifier() {
require(
owner == msg.sender,
'No sufficient right'
)
}
function setOwner() ownerOnly external {
owner = msg.sender;
}
}
我的问题是如何安全地将所有者地址设置为智能合约所有者的地址?
您应该直接在构造函数中设置所有者地址。 msg.sender字段将代表合约创建者。
constructor () {
owner = msg.sender;
}
而您的函数 setOwner 没有太多意义,因为即使在创建期间设置了所有者,也无法更改。 Modifier 将拒绝所有非所有者发送的交易。否则它只会将 owner 重新分配给 msg.sender,后者也是 owner。
它应该是这样的:
function setOwner(address newOwner) ownerOnly external {
owner = newOwner;
}
这是一个简单的智能合约 owner
:
pragma ^0.7.2
contract simple {
address owner;
constructor() public {
//do something
}
modifier() {
require(
owner == msg.sender,
'No sufficient right'
)
}
function setOwner() ownerOnly external {
owner = msg.sender;
}
}
我的问题是如何安全地将所有者地址设置为智能合约所有者的地址?
您应该直接在构造函数中设置所有者地址。 msg.sender字段将代表合约创建者。
constructor () {
owner = msg.sender;
}
而您的函数 setOwner 没有太多意义,因为即使在创建期间设置了所有者,也无法更改。 Modifier 将拒绝所有非所有者发送的交易。否则它只会将 owner 重新分配给 msg.sender,后者也是 owner。 它应该是这样的:
function setOwner(address newOwner) ownerOnly external {
owner = newOwner;
}