Etherium Coin 調査

概要

Tokenにどのような機能があったらいいか、NANJCOINを参考に調べました。

NANJCOINについては、こちらの記事が勉強になりました。
NANJCOINのコードについて、NANJのエンジニア†つっちー†さんが解説してくれました!そもそもERCとは?

NANJCOINのコードです! https://etherscan.io/address/0xffe02ee4c69edf1b340fcad64fbd6b37a7b9e265#code

中身

Library

SafeMath

四則演算するとき、値のオーバーフローや、アンダーフローに対応するためのライブラリ

詳しい説明は、こちらの記事がわかりやすいのでおすすめ!
SafeMath.solを読んでみました

openzeppelin の ソース
openzeppelin-solidity/SafeMath.sol at master · OpenZeppelin/openzeppelin-solidity · GitHub

Contract

Ownable

コントラクトを作った人しか実行できない関数を作るために利用する

詳しい説明は、こちらの記事がわかりやすいのでおすすめ! 【Solidity基礎】OpenZeppelinのOwnableについて - ブロックチェーンエンジニアとして生きる

openzeppelin の ソース
openzeppelin-solidity/Ownable.sol at master · OpenZeppelin/openzeppelin-solidity · GitHub
上記ソースには、renounceOwnership という関数が追加されていて、これを使うとownerの権限がなくなって、より非中央集権に近づくようにできる

ERC20

この記事がわかりやすいです。 ERC20トークンで実装すべきメソッドとイベントの解説 - ブロックチェーンエンジニアとして生きる

関数としては、

  • name
  • symbol
  • decimal
  • totalSupply
  • balanceOf
  • transfer
  • transferFrom
  • approve
  • allowance

イベント(これを実行するとログが残る)は、

  • Transfer
  • Approval

name, symbol, decimal についての一般的な実装はこちらに
openzeppelin-solidity/ERC20Detailed.sol at master · OpenZeppelin/openzeppelin-solidity · GitHub

それ以外の一般的な実装はこちらに(BurnとMintの実装も入ってました) openzeppelin-solidity/ERC20.sol at master · OpenZeppelin/openzeppelin-solidity · GitHub

ERC223

ERC20の関数には、欠点がありそこを解消したのがERC223だそうです。 詳しくは、下の記事がわかりやすかったです。
EthereumのERC20 Tokenの問題点を解決したERC223 Tokenとは? - ブロックチェーンエンジニアとして生きる

NANJCOINは、ERC223の規格を採用しているようです。
ERC223規格を採用することで、発行量を増やしたり、減らしたり、Tokenの回収ができたりするようです。
ただ、それだとERC20に対応してる取引所で取引できないので、ERC20とも互換性を持つよう作られているとのことです。
(approveとか、transferFromとかがERC223だと削除されてます)

その他

NANJCOINに入ってるその他の機能には、(違ったらすいません)

  • DistributionAirdrop
    • 一括で指定したアカウントにToken配布?
  • FrozenAccount
    • アカウント凍結?
  • LockupAccount
    • 一定時間までアカウントをロック?
  • collectTokens
    • 一括で指定したアカウントからTokenを回収?

がありそう?