📅  最后修改于: 2023-12-03 15:06:51.195000             🧑  作者: Mango
在 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,然后点击「编译」按钮。编译器应该会显示出没有错误。
接着,我们切换到「Deploy & Run Transactions」面板,在「Environment」下拉菜单中选择「Injected Web3」。这将允许我们使用我们的以太坊账户在测试网络中部署合约。
给「Value」框中填入 0,然后点击「Deploy」按钮。此时 Remix 将会提示你确认交易。确认后,你将会看到一个新合约的地址。
现在我们可以测试一下我们的合约了。在面板的下半部分,你可以找到之前定义的两个函数。点击「getOwnerAddress」按钮,你将会看到你的账户地址。
再点击「getOwnerBalance」按钮,你将会看到你的账户余额。当然,这个余额只是测试网络中的余额,与真实余额无关。
至此,我们已经成功地创建了一个智能合约,用于返回所有者地址和余额。这只是 Solidity 的基础知识,还有很多更高级的功能等待你去探索。