【问题标题】:Who can execute public functions of smart contract in solidity?谁能可靠地执行智能合约的公共功能?
【发布时间】:2021-07-10 23:52:39
【问题描述】:

我正在开发我的第一个智能合约,我不太关心安全性。 我以ERC20.sol合约为模板,有功能

function approve(address spender, uint256 amount) public returns (bool) {
    _approve(_msgSender(), spender, amount);
    return true;
}

部署合约后,合约的默认所有者是谁?其他任何人都可以使用此合同和此公共功能来批准支出金额而不受任何限制吗?还是智能合约默认是安全的,只有智能合约拥有者才能执行功能?

我知道我可以使用 Ownable.sol 智能合约,它允许添加 onlyOwner,但我不确定我是否需要这个可拥有的东西。因为我看到很多合约部署了这个功能,没有任何 onlyOwner 限制。

那么,谁可以执行智能合约公共/外部功能?

let contract = web3.eth.contract(minABI).at(tokenAddress);
contract.approve(address(hacker_address), 10000000);

随机用户可以为自己或其他人批准金额吗?

【问题讨论】:

    标签: blockchain ethereum solidity smartcontracts


    【解决方案1】:

    谁是合约的默认所有者

    默认情况下,合约不属于任何人。

    其他任何人都可以使用此合同和此公共功能来批准支出金额而不受任何限制吗?

    您需要阅读内部_approve() 函数逻辑以了解其工作原理,并了解其工作原理和限制。

    那么,谁可以执行智能合约公共/外部功能?

    任何人。

    我知道我可以使用 Ownable.sol 智能合约,它允许添加 onlyOwner,

    这与approve() 无关。您还需要阅读 ERC-20 规范并首先了解 approve() 的作用。

    【讨论】:

    • 谢谢 Mikko,现在我明白了!
    猜你喜欢
    • 2022-01-16
    • 1970-01-01
    • 2022-12-06
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 2021-12-17
    相关资源
    最近更新 更多