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を回収?
がありそう?