谁可以在 solidity 中执行智能合约的 public 功能?
Who can execute public functions of smart contract in solidity?
我正在开发我的第一个智能合约,我不太关心安全性。
我以ERC20.sol合同为模板,有一个功能
function approve(address spender, uint256 amount) public returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
部署合约后,谁是合约的默认所有者?任何人都可以使用此合同和此 public 功能来批准支出金额 w/o 任何限制吗?或者智能合约默认是安全的,只有智能合约所有者才能执行功能?
我知道我可以使用 Ownable.sol 智能合约,它允许添加 onlyOwner,但我不确定我是否需要这个可拥有的东西。因为我看到很多合约都部署了这个函数 w/o 任何 onlyOwner 限制。
那么,谁可以执行智能合约public/external功能?
let contract = web3.eth.contract(minABI).at(tokenAddress);
contract.approve(address(hacker_address), 10000000);
随机用户可以为自己或其他人批准金额吗?
who is default owner of the contract
默认情况下,合约不属于任何人。
Can anyone else use this contract and this public function to approve spender amounts w/o any restrictions?
您需要阅读内部 _approve()
功能逻辑以了解其工作原理,您将了解其工作原理以及限制。
So, who can execute smart contract public/external functions?
任何人。
I know I can use Ownable.sol smart contract, which allows to add onlyOwner,
这与 approve()
无关。您还需要阅读 ERC-20 规范并首先了解 approve()
的作用。
我正在开发我的第一个智能合约,我不太关心安全性。 我以ERC20.sol合同为模板,有一个功能
function approve(address spender, uint256 amount) public returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
部署合约后,谁是合约的默认所有者?任何人都可以使用此合同和此 public 功能来批准支出金额 w/o 任何限制吗?或者智能合约默认是安全的,只有智能合约所有者才能执行功能?
我知道我可以使用 Ownable.sol 智能合约,它允许添加 onlyOwner,但我不确定我是否需要这个可拥有的东西。因为我看到很多合约都部署了这个函数 w/o 任何 onlyOwner 限制。
那么,谁可以执行智能合约public/external功能?
let contract = web3.eth.contract(minABI).at(tokenAddress);
contract.approve(address(hacker_address), 10000000);
随机用户可以为自己或其他人批准金额吗?
who is default owner of the contract
默认情况下,合约不属于任何人。
Can anyone else use this contract and this public function to approve spender amounts w/o any restrictions?
您需要阅读内部 _approve()
功能逻辑以了解其工作原理,您将了解其工作原理以及限制。
So, who can execute smart contract public/external functions?
任何人。
I know I can use Ownable.sol smart contract, which allows to add onlyOwner,
这与 approve()
无关。您还需要阅读 ERC-20 规范并首先了解 approve()
的作用。