添加數字貨幣錢包
- chrome安裝MetaMask, 如下圖:

- 創建MetaMask賬戶密碼, 然后登錄
- 打開metaMask, 在頂部選擇測驗網路, 然后點擊購買,如圖:

- 在新的頁面中選擇測驗水管->獲取ETH

- 在網頁中點擊 Request 1 eth from faucet,從而獲取一個eth

2. 編輯智能合約
-
打開網站 https://remix.ethereum.org/

-
如上圖,點擊創建新檔案,并編輯智能合約代碼(最后附代碼)

-
智能合約編輯成功之后就可以開始部署了, 點擊左邊欄第二個按鈕,并點擊Compile {你的檔案名}.sol, 如下圖:

-
編譯成功后,點擊左側第三個按鈕,進行部署, 如下圖, 選擇Injected web3, 選完之后回自動連接你metamask,點擊metamask授權操作,獲取你的metamask錢包地址

-
點擊Deploy右側按鈕,填寫需要發布的幣種資訊,其中:
INITIALSUPPLY: 發行量
TOKENNAME: 幣種名稱
TOKENSYMBOL: 對應SYMBOl

-
點擊下面的transact->MetaMask確認 即可

-
完成之后, 鏈上會產生一個區塊資訊, 如下圖, 復制其中的hash資訊, 然后去https://ropsten.etherscan.io/查看合約地址資訊


其中上圖選中的部分就是新生成的合約地址
MetaMask添加新生成的代幣
- 打開MetaMask, 添加代幣->輸入剛剛生成的合約地址 ,如下圖:

- 完成之后,錢包賬戶就會多了剛剛添加的代幣,如圖:

- 好了,到這里就全部完成了,下面是用來測驗的智能合約代碼
pragma solidity ^0.4.16;
interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; }
contract TokenERC20 {
string public name;
string public symbol;
uint8 public decimals = 18; // 18 是建議的默認值
uint256 public totalSupply;
mapping (address => uint256) public balanceOf; //
mapping (address => mapping (address => uint256)) public allowance;
event Transfer(address indexed from, address indexed to, uint256 value);
event Burn(address indexed from, uint256 value);
function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) public {
totalSupply = initialSupply * 10 ** uint256(decimals);
balanceOf[msg.sender] = totalSupply;
name = tokenName;
symbol = tokenSymbol;
}
function _transfer(address _from, address _to, uint _value) internal {
require(_to != 0x0);
require(balanceOf[_from] >= _value);
require(balanceOf[_to] + _value > balanceOf[_to]);
uint previousBalances = balanceOf[_from] + balanceOf[_to];
balanceOf[_from] -= _value;
balanceOf[_to] += _value;
Transfer(_from, _to, _value);
assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
}
function transfer(address _to, uint256 _value) public {
_transfer(msg.sender, _to, _value);
}
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
require(_value <= allowance[_from][msg.sender]); // Check allowance
allowance[_from][msg.sender] -= _value;
_transfer(_from, _to, _value);
return true;
}
function approve(address _spender, uint256 _value) public
returns (bool success) {
allowance[msg.sender][_spender] = _value;
return true;
}
function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) {
tokenRecipient spender = tokenRecipient(_spender);
if (approve(_spender, _value)) {
spender.receiveApproval(msg.sender, _value, this, _extraData);
return true;
}
}
function burn(uint256 _value) public returns (bool success) {
require(balanceOf[msg.sender] >= _value);
balanceOf[msg.sender] -= _value;
totalSupply -= _value;
Burn(msg.sender, _value);
return true;
}
function burnFrom(address _from, uint256 _value) public returns (bool success) {
require(balanceOf[_from] >= _value);
require(_value <= allowance[_from][msg.sender]);
balanceOf[_from] -= _value;
allowance[_from][msg.sender] -= _value;
totalSupply -= _value;
Burn(_from, _value);
return true;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/298426.html
標籤:區塊鏈
