ERC-20
概要
カイアでのカンジタブルトークンの作成は、イーサリアムでの作成方法と同様のステップを踏み、ERC20 standardを使用します。
標準に従うには、以下のイベントと関数を実装したコントラクトをデプロイする:
function name() public view returns (string) //optionalfunction symbol() public view returns (string) //optionalfunction decimals() public view returns (uint8) //optionalfunction totalSupply() public view returns (uint256)function balanceOf(address _owner) public view returns (uint256 balance)function transfer(address _to, uint256 _value) public returns (bool success)function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)function approve(address _spender, uint256 _value) public returns (bool success)function allowance(address _owner, address _spender) public view returns (uint256 remaining)event Transfer(address indexed _from, address indexed _to, uint256 _value)event Approval(address indexed _owner, address indexed _spender, uint256 _value)
- **トークンの名前を返すメソッド:トークンの名前を返すメソッド。
- symbol:トークンのシンボルを返すメソッド。
- decimals:トークンが使用する小数の数を返すメソッド。 トークンの最小単位を定義するために使用される。 例えば、ERC-20トークンの小数点以下が18の場合、トークンは小数点以下18桁まで分割できることを意味する。
- totalSupply:この上限に達すると、スマートコントラクトは新しいトークンの生成を拒否します。
- balanceOf:ウォレットアドレスが持っているトークンの数を返すメソッド。
- 転送:総供給量から一定量のトークンを取り出し、ユーザーに渡すメソッド。
- transferFrom:ユーザー間でトークンを転送するために使用される、別のタイプの転送メソッド。
- approve:このメソッドは、総供給量を考慮して、スマートコントラクトがユーザーに一定量のトークンを割り当てることが許可されているかどうかを検証する。
- 許可:このメソッドはapprovedメソッドと全く同じであるが、あるユーザが他のユーザに一定量のトークンを送信するのに十分な残高があるかどうかをチェックする点が異なる。
- 転送イベント:トークンが転送されたときに発行される。
- 承認イベント:トークンの承認があったときに発行される。
はじめに
このセクションでは、Remix Online IDEを使用してERC20トークンコントラクトを作成し、デプロイします。 異なるチームによって開発されたERC20準拠トークンの実装がいくつかあり、それぞれがいくつかの要素を考慮して開発されている。 簡単かつ安全にトークンを作成するために、OpenZeppelin ERC-20コントラクトを使用します。 OpenZeppelinを使えば、ERC-20のインターフェイスをすべて書く必要はない。 その代わりに、ライブラリーのコントラクトをインポートして、その関数を使うことができる。
ステップ1:ERC20トークンコントラクトの作成
OpenZeppelin契約ウィザード」。
- OpenZeppelin契約ウィザード](https://wizard.openzeppelin.com)を開く
- ERC20**を選択してください。
- トークンに 名前 と シンボル を指定します。 例えばそれぞれ_Greek_と_GK_。
- Premint**フィールドで、10,000に設定する。 これにより、デプロイメントのためのトークンの初期量が作成される。
- Features**セクションで、Mintableボックスをチェックし、特権アカウント(onlyOwner)がより多くのサプライを作成できるようにする。
- コピー**アイコンをクリックして、次のセクションのRemixで使用するコードをコピーしてください。
ステップ2:ERC20トークンコントラクトの導入
リミックス IDE
- Remix](https://remix.ethereum.org)で、\*\*File Explorer**に移動し、contractsフォルダに
Greek.sol
という名前の新しいファイルを作成します。 - Solidity Compiler** タブに移動し、Compile Greek.sol をクリックしてトークン契約をコンパイルします。
- トランザクションのデプロイと実行**タブに移動する。
- 環境** > 注入プロバイダ > メタマスク を選択します。
- 契約**のドロップダウンで、契約を選択します。 例えば、ギリシャ語。
- Deploy**フィールドに、recipientとinitialOwnerのコンストラクタ引数を指定する。
- Deploy/transact**をクリックする。
デプロイ後、コントラクトのデプロイに使用したアカウントで balanceOf を呼び出すことができます。 以下のように、アカウントに10000000000000000トークンがあることがわかります。
上記のコントラクトをデプロイする際に10進数を18に設定したため、コンストラクタで10000トークンが固定数で鋳造され、1トークンは10進数で10^18の値を持つ。 TotalSupply メソッドは、鋳造されたトークンの総供給量を返します。
ステップ3:MetaMaskのERC-20トークンとのやりとり
MetaMaskを使って残高を確認し、配備したばかりのERC-20互換のギリシャ・トークンを送金することができる。 MetaMaskでトークン残高を確認するには、以下の手順に従ってください:
**メタマ スク
- メタマスクを開く
- 右端のEllipsisアイコンをクリックし、Import tokensをクリックします。
- また、Token contract address欄に最近導入されたギリシャの契約アドレスを貼り付けてください。
- 最後のステップとして、インポートをクリックします。
完了すると、次のようなメッセージのモーダルが表示されます:「トークンがインポートされました:というメッセージが表示され、インポートされたトークン (GK) が MetaMask ウォレットのトークン一覧に追加されます。