2017-07-17 5 views
2

どのようにして各トークンの価格を強固に設定できますか?私はトークンの価格は、私は場合、私は、この関数を呼び出すことができ、その後1魏= 183.602トークントークン価格の硬さを設定

$、0.02それぞれ1つのETHは$ 167 で取引されているようにしたい場合は、私は

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.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); 
} 

このは、私たちが知っている

答えて

6

送信者の財布に現在の値を加算していないこと1エーテル= 10我々が取る場合魏、その1イーサ= $ 167

その後は$、0.02たち$ 0.02/$ 167 = 0.00011976047904191617エーテルが得られるはずです。

これは、1x0.00011976047904191617 = 119760479041916.17 weiに等しい。

1つのEtherを置くと、10/119760479041916.17 = 8350のトークンが得られます。

$ 167の価格では、各トークン値は、167/8350 = 0.02である。

私は関数を定義して、1つのetherの価格を設定し、1つのトークンの価格を2セントで派生させることができます。

function setEthPrice(uint _etherPrice) onlyOwner { 
    oneTokenInWei = 1 ether * 2/_etherPrice/100; 
    changed(msg.sender); 
} 
関連する問題