【solidity】ERC-20の主な機能について

目次

ERC-20と、コントラクトに必要な必須の関数についての記録


1.0_ERC20とは


ethereum

最初に公式ドキュメントのリンクを貼ります。
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つの必須関数を含める必要があります。さらに、名前、シンボル、十進法などのオプション関数を指定することが可能です。