获得平衡稳固性
Get balance solidity
我使用 hardhat 来测试 solidity 合约,但我得到了不同的函数结果:
- getUserBalance(合约函数)
- 余额
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import "hardhat/console.sol";
contract TestContract is ERC721Enumerable, Ownable {
using SafeMath for uint;
...
function getContractBalance() public view onlyOwner returns (uint) {
return address(this).balance;
}
function getUserBalance(address _owner) external view returns (uint) {
return address(_owner).balance;
}
}
test.js
...
beforeEach(async function () {
Token = await ethers.getContractFactory("TestContract");
[owner, addr1, addr2, ...addrs] = await ethers.getSigners();
hardhatToken = await Token.deploy("test");
});
it("First test", async function () {
let total = await hardhatToken.totalSupply() // BigNumber { value: "0" }
let userBalance2 = await hardhatToken.getUserBalance(owner.address) // BigNumber { value: "9999979080649422213031" }
let userBalance = await hardhatToken.balanceOf(owner.address) // BigNumber { value: "0" }
let cBalance = await hardhatToken.getContractBalance() // BigNumber { value: "0" }
})
我认为这是因为不同的单位(ether -> wei),但我不知道为什么。你能解释一下吗?
谢谢
这个函数 returns _owner
.
的 eth 数量
function getUserBalance(address _owner) external view returns (uint) {
return address(_owner).balance;
}
这个函数returns合约拥有的eth数量。
function getContractBalance() public view onlyOwner returns (uint) {
return address(this).balance;
}
这个函数returns所有者拥有的TOKEN数量:
balanceOf(owner.address)
我使用 hardhat 来测试 solidity 合约,但我得到了不同的函数结果:
- getUserBalance(合约函数)
- 余额
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import "hardhat/console.sol";
contract TestContract is ERC721Enumerable, Ownable {
using SafeMath for uint;
...
function getContractBalance() public view onlyOwner returns (uint) {
return address(this).balance;
}
function getUserBalance(address _owner) external view returns (uint) {
return address(_owner).balance;
}
}
test.js
...
beforeEach(async function () {
Token = await ethers.getContractFactory("TestContract");
[owner, addr1, addr2, ...addrs] = await ethers.getSigners();
hardhatToken = await Token.deploy("test");
});
it("First test", async function () {
let total = await hardhatToken.totalSupply() // BigNumber { value: "0" }
let userBalance2 = await hardhatToken.getUserBalance(owner.address) // BigNumber { value: "9999979080649422213031" }
let userBalance = await hardhatToken.balanceOf(owner.address) // BigNumber { value: "0" }
let cBalance = await hardhatToken.getContractBalance() // BigNumber { value: "0" }
})
我认为这是因为不同的单位(ether -> wei),但我不知道为什么。你能解释一下吗?
谢谢
这个函数 returns _owner
.
function getUserBalance(address _owner) external view returns (uint) {
return address(_owner).balance;
}
这个函数returns合约拥有的eth数量。
function getContractBalance() public view onlyOwner returns (uint) {
return address(this).balance;
}
这个函数returns所有者拥有的TOKEN数量:
balanceOf(owner.address)