ropsten testnetにerc20 tokenをtruffleでdeployする
概要
web上の情報をあちこち探すのがめんどくさいので(しかもバージョンの違いで若干仕様が異なったりするので)、自分用のメモがわりに、テストネット上でのERC20トークンの発行を簡潔にまとめておきます。
動作環境
MacOS High Sierra 10.13.6
Truffle v4.1.14
Python 2.7.9
node v9.3.0
solc Version: 0.4.24
事前に必要なもの
- Infuraのアクセストークン取得
- Metamaskのニーモニック取得
- ropstenのETH
作業ディレクトリにパッケージの準備をする
$ mkdir mytoken
$ cd mytoken
$ truffle init
続いて、truffleの初期化が終わったら、OpenZeppelin
の神パッケージをインストールします。
$ npm init -f
$ npm install zeppelin-solidity --save
node_modules
フォルダにzeppelin-solidity
のフォルダがあることが確認できるはずです。
contractの記述
ERC20トークンに必要な、name
, symbol
, decimals
を適当に決めます。decimals
は小数点以下何桁あるのかを表しています。
pragma solidity ^0.4.24;
import "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol";
contract MyToken is StandardToken {
string public name = "MyToken";
string public symbol = "MYT";
uint public decimals = 18;
constructor(uint initialSupply) public {
totalSupply_ = initialSupply;
balances[msg.sender] = initialSupply;
}
}
OpenZeppelin
のパッケージを継承しているので楽チンですね。
※solidityのコンパイラのバージョンが、0.4.23
以前は、contractの名前と同じ関数が、一番最初に実行されていましたが、0.4.23
以降は、constructor
がその役割を果たすようになりました。
コントラクトの名前と、ファイルの名前が一致するようにして、contracts
フォルダ下に配置します。
migration fileの作成
migrations
フォルダ下に2_deploy_contracts.js
を設置します。migrationsフォルダ下にあるファイルは、1から順に読み込まれることになるので、2から始まるファイル名にします。
このファイルでは、deploy
するコントラクトとそのコントラクトのconstructor
に渡す引数を指定します。この場合は、総発行量を引数にとりますので、任意の数字を設定します。
const MyToken = artifacts.require('./MyToken.sol')
module.exports = (deployer) => {
const initialSupply = 100000e18
deployer.deploy(MyToken, initialSupply)
}
truffle.jsの作成
ニーモニック(秘密鍵)は、12個の英単語で、そのニーモニックを元にして公開鍵が生成されているほか、トランザクションの署名にも使用されます。
インフラは、はEthereumのフルノードの代理で担ってくれるサービスで、指定されたエンドポイントに対してWeb3のJSON-RPCのリクエストを送信することでEtehreumネットワークに対するコール、トランザクションの処理を行うことが可能になります。非常に便利!
const HDWalletProvider = require("truffle-hdwallet-provider");
const mnemonic = "ニーモニックを入力";
const infura_url = "https://ropsten.infura.io/アクセストークンを入力";
module.exports = {
networks: {
ropsten: {
provider: function () {
return new HDWalletProvider(mnemonic, infura_url)
},
network_id: 3,
gas: 4700000 //Gasは、Gas limit最大値の4700000に設定しておきましょう。
}
}
};
truffle-hdwallet-providerのインストール
$ npm install truffle-hdwallet-provider
Truffleでウォレットを扱うために必要なパッケージです(この場合、Metamask)。
インストールする際にエラーが発生した場合、こちらを参考にしてみてください。
truffle開発時に発生したエラー npm install truffle-hdwallet-provider
deploy
さて、整いました!
ropstenにdeploy
しましょう。
$ truffle migrate --network ropsten
deploy
できたら、ropstenのetherscanでコントラクトアドレスを確認して、自分のmetamaskにtokenをimportしましょう。
Author And Source
この問題について(ropsten testnetにerc20 tokenをtruffleでdeployする), 我々は、より多くの情報をここで見つけました https://qiita.com/____easy/items/a93528210eb1ff647190著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .