【solidity】ERC-20の主な機能について
ERC-20
と、コントラクトに必要な必須の関数についての記録
1.0_ERC20とは
最初に公式ドキュメントのリンクを貼ります。
ERC-20 TOKEN STANDARD
まず、ブロックチェーン界隈では、トークン保有者や開発者らが議論しながら開発を進めています。
そして、ERCとは、Ethereum Request for Commentsの略であり、先述の議論の結果、20番目に決定された約束事のようなものが、イーサリアムブロックチェーンのトークン規格「ERC-20」
です。
イーサリアムブロックチェーンと互換性を持つ暗号資産を作るための規格にも使われます。
CoindeskJapanの記事を引用すると、以下のように書かれてあり、数多くの暗号資産は、ERC-20のルールに沿って開発されている
。
coindesk_japan:イーサリアム規格「ERC-20」とは?
ERC-20規格は、暗号資産エコシステムのほとんどすべての領域に広がっている。ステーブルコイン「テザー(USDT)」やオラクルサービスのチェーンリンク(Chainlink)など、数多くの人気暗号資産はERC-20規格で作られた「ERC-20トークン」だ。
2.0_ERC-20に準拠して作られたトークンはどのくらいあるのか
実際にERC-20に準拠して開発されたトークンはどのくらいあるのでしょうか。
coindesk japanの記事によると、かなりの数が存在しています。
イーサリアムのデータを提供するイーサスキャン(Etherscan)によると、2020年12月時点で829のプロジェクトと、35万以上のトークンがERC-20規格に基づいている。
ただし、ERC-20規格にも、もちろん欠点があり、過去に少なくとも300万ドル(約3億3000万円)相当の盗難被害が報告されているとのことです。
これを受けて、新しい準拠規格の開発が進んでいますが、依然として、ERC-20規格は使われ続けています。
3.0_ERC-20に準拠するための6つの必須関数
このERC-20に準拠するには、以下の6つの関数を必ず規定しなければなりません。
solidity言語で実装していきます。
関数 | 概要 |
---|---|
totalSupply | 発行トークン総数を返す |
balanceOf | トークン所有者の残高を返す |
transfer | 指定の宛先に指定のトークン数を移転する |
transferForm | 指定の宛先に指定のトークン数を、所有者の代わりにコントラクトが自動で移転する |
approve | 権限移譲された支出者(Spender)は、指定アカウントから指定金額を上限として、トークン引き出すことができるようになる |
allowance | 権限移譲された支出者(Spender)が、トークンオーナーから、まだ引き出すことのできる金額を返す |
Binance Academyに詳しく書いてあるので、以下転載します。 Binance Academy ERC-20トークンの紹介
ERC-20に準拠するためには、コントラクトにtotalSupply、balanceOf、transfer、transferFrom、approve、およびallowanceの6つの必須関数を含める必要があります。さらに、名前、シンボル、十進法などのオプション関数を指定することが可能です。