📜  使用 Solidity 创建返回所有者地址和余额的智能合约(1)

📅  最后修改于: 2023-12-03 15:06:51.195000             🧑  作者: Mango

使用 Solidity 创建返回所有者地址和余额的智能合约

在 Solidity 中,我们可以使用 address 类型来表示以太坊地址,使用 balance 函数来查询该地址上的余额。因此,我们可以非常容易地创建一个智能合约,用于返回当前合约的所有者地址和余额。

下面是一个示例智能合约的代码,我们将会使用 Remix IDE 进行编写和测试。

contract OwnerBalance {
    address public owner;

    constructor() {
        owner = msg.sender;
    }

    function getOwnerAddress() public view returns (address) {
        return owner;
    }

    function getOwnerBalance() public view returns (uint) {
        return owner.balance;
    }
}

让我们来逐行解释一下:

  • 在第一行,我们定义了一个名为 OwnerBalance 的合约。
  • 在第二行,我们声明了一个 owner 变量,它将会持有合约所有者的地址。
  • 在第四行,我们定义了一个构造函数,它会在合约创建时被调用。在构造函数内,我们使用 msg.sender 来获取合约的创建者地址并将其赋值给 owner 变量。
  • 在第七行,我们定义了一个名为 getOwnerAddress 的函数。这个函数可以被其他人调用,用于返回当前合约的所有者地址。注意,我们在函数声明前面加上了 public 关键字,这是为了让这个函数对外开放。
  • 在第九行,我们定义了一个名为 getOwnerBalance 的函数。这个函数也可以被其他人调用,用于返回当前合约所有者的余额。
  • 在第十一行和第十三行,我们使用了 view 关键字来声明这是只读函数,它不会修改任何状态。这对于返回查询结果的函数来说是比较常见的。

现在我们可以使用 Remix IDE 来测试这个智能合约了。在左侧的面板中,选择「Solidity 编译器」,将编译器版本设置为 0.8.9,然后点击「编译」按钮。编译器应该会显示出没有错误。

Remix IDE

接着,我们切换到「Deploy & Run Transactions」面板,在「Environment」下拉菜单中选择「Injected Web3」。这将允许我们使用我们的以太坊账户在测试网络中部署合约。

给「Value」框中填入 0,然后点击「Deploy」按钮。此时 Remix 将会提示你确认交易。确认后,你将会看到一个新合约的地址。

Deploy Confirmation

现在我们可以测试一下我们的合约了。在面板的下半部分,你可以找到之前定义的两个函数。点击「getOwnerAddress」按钮,你将会看到你的账户地址。

getOwnerAddress

再点击「getOwnerBalance」按钮,你将会看到你的账户余额。当然,这个余额只是测试网络中的余额,与真实余额无关。

getOwnerBalance

至此,我们已经成功地创建了一个智能合约,用于返回所有者地址和余额。这只是 Solidity 的基础知识,还有很多更高级的功能等待你去探索。