设置代币价格稳定性
set token price solidity
如何在 solidity 中设置每个代币的价格?
我试过了
contract OToken {
using SafeMath for uint256;
uint public _totalSupply = 0;
uint public constant _cap = 100000000;
string public constant symbol = "OXN";
string public constant name = "OToken";
uint public constant decimals = 18;
uint public oneTokenInWei = 183.602;
如果我希望代币价格为每个 0.02 美元,而 1 eth 的交易价格为 167 美元
那么 1 wei = 183.602 代币
如果我想将每个令牌的价格更改为 .03,我可以调用此函数
function setOneTokenInWei(uint w) onlyOwner {
oneTokenInWei = w;
changed(msg.sender);
}
然后这个函数创建令牌
function createTokens() payable{
require(
msg.value > 0
&& _totalSupply < _cap
&& CROWDSALE_PAUSED <1
);
uint multiplier = 10 ** decimals;
uint256 tokens = msg.value.mul(multiplier) / oneTokenInWei;
balances[msg.sender] = balances[msg.sender].add(tokens);
_totalSupply = _totalSupply.add(tokens);
owner.transfer(msg.value);
}
这不是将当前值添加到发件人钱包
我们知道 1 Ether = 1018 wei,如果我们取 1 Ether = $167
那么对于 0.02 美元,我们应该得到 0.02 美元/167 美元 = 0.00011976047904191617 以太币。
这等于 1018 x 0.00011976047904191617 = 119760479041916.17 wei.
因此,如果您投入 1 个以太币,您将获得 1018 / 119760479041916.17 = 8350 个代币。
在 167 美元的价格下,每个代币价值为 167 / 8350 = 0.02,如您所愿。
我会定义一个函数,这样你就可以设置一个以太币的价格,它可以得出一个代币的价格为两美分。
function setEthPrice(uint _etherPrice) onlyOwner {
oneTokenInWei = 1 ether * 2 / _etherPrice / 100;
changed(msg.sender);
}
如何在 solidity 中设置每个代币的价格?
我试过了
contract OToken {
using SafeMath for uint256;
uint public _totalSupply = 0;
uint public constant _cap = 100000000;
string public constant symbol = "OXN";
string public constant name = "OToken";
uint public constant decimals = 18;
uint public oneTokenInWei = 183.602;
如果我希望代币价格为每个 0.02 美元,而 1 eth 的交易价格为 167 美元 那么 1 wei = 183.602 代币
如果我想将每个令牌的价格更改为 .03,我可以调用此函数
function setOneTokenInWei(uint w) onlyOwner {
oneTokenInWei = w;
changed(msg.sender);
}
然后这个函数创建令牌
function createTokens() payable{
require(
msg.value > 0
&& _totalSupply < _cap
&& CROWDSALE_PAUSED <1
);
uint multiplier = 10 ** decimals;
uint256 tokens = msg.value.mul(multiplier) / oneTokenInWei;
balances[msg.sender] = balances[msg.sender].add(tokens);
_totalSupply = _totalSupply.add(tokens);
owner.transfer(msg.value);
}
这不是将当前值添加到发件人钱包
我们知道 1 Ether = 1018 wei,如果我们取 1 Ether = $167
那么对于 0.02 美元,我们应该得到 0.02 美元/167 美元 = 0.00011976047904191617 以太币。
这等于 1018 x 0.00011976047904191617 = 119760479041916.17 wei.
因此,如果您投入 1 个以太币,您将获得 1018 / 119760479041916.17 = 8350 个代币。
在 167 美元的价格下,每个代币价值为 167 / 8350 = 0.02,如您所愿。
我会定义一个函数,这样你就可以设置一个以太币的价格,它可以得出一个代币的价格为两美分。
function setEthPrice(uint _etherPrice) onlyOwner {
oneTokenInWei = 1 ether * 2 / _etherPrice / 100;
changed(msg.sender);
}