以太坊代币单位说明

半兽人 发表于: 2018-05-21   最后更新时间: 2018-05-21 15:27:50  
{{totalSubscript}} 订阅, 2,042 游览

在交易过程中,无论交易的代币是什么,都需要把这些代币转为 wei 存储在以太坊区块链中。

Unit Wei Value Wei
wei 1 1 wei
Kwei (babbage) 1e3 wei 1,000
Mwei (lovelace) 1e6 wei 1,000,000
Gwei (shannon) 1e9 wei 1,000,000,000
microether (szabo) 1e12 wei 1,000,000,000,000
milliether (finney) 1e15 wei 1,000,000,000,000,000
ether 1e18 wei 1,000,000,000,000,000,000

geth js 方法

  • web3.toDecimal
    十六进制字符串转为十进制数字

    web3.toDecimal(hexString)
    var number = web3.toDecimal('0x15');
    console.log(number); // 21
    
  • web3.fromDecimal

    十进制数字或者十进制字符串转为十六进制

    var value = web3.fromDecimal('21');
    console.log(value); // "0x15"
    
  • web3.fromWei

    把 wei 转为如下种类的以太坊单位(还有其他代币token单位)

    • kwei/ada
    • mwei/babbage
    • gwei/shannon
    • szabo
    • finney
    • ether
    • kether/grand/einstein
    • mether
    • gether
    • tether
      var value = web3.fromWei('21000000000000', 'ether');
      console.log(value); //0.000021
      
  • web3.toWei
    把以太坊单位(包含代币单位)转为 wei

    var value = web3.toWei('1', 'ether');
    console.log(value); // "1000000000000000000"
    
  • web3.toBigNumber(numberOrHexString)

    把给定数字或十六进制字符串转为 BigNumber 类型的实例。

    var value = web3.toBigNumber('200000000000000000000001');
    console.log(value); // instanceOf BigNumber
    console.log(value.toNumber()); // 2.0000000000000002e+23
    console.log(value.toString(10)); // '200000000000000000000001'
    

例子

举个交易的例子

>eth.sendTransaction({from:eth.coinbase,to:"0x2bda4364bb076187f0ef0067a61ccb95d636e383",value:web3.toWei(1,"ether")})

转账的数量是1个 ether(以太币)
web3.toWei(1,"ether")把以太币转为wei
再来通过获取以太坊账户的余额看看在区块链中这些代币数量的存储方式。

> web3.eth.getBalance(eth.coinbase)
267999999999999999999
> web3.fromWei(web3.eth.getBalance(eth.coinbase),"ether")
267.999999999999999999

上面获取账户余额例子中,就是获取钱包中 coinbase 账户的余额,得到的结果单位是 wei ,我们通过 fromWei 把wei转为了ether(以太币)

更新于 2018-05-21

查看ask更多相关的文章或提一个关于ask的问题,也可以与我们一起分享文章