pragma solidity ^0.4.24;
contract EIP20Interface{
//獲取_owner地址的餘額
function balanceOf(address _owner) public view returns (uint256 balance);
//轉賬:從自己賬戶向_to地址轉入_value個Token
function transfer(address _to, uint256 _value)public returns (bool success);
//轉賬:從_from向_to轉_value個Token
function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
//允許_spender從自己(調用方)賬戶轉走_value個Token
function approve(address _spender, uint256 _value) returns (bool success);
//自己_owner查詢__spender地址可以轉走自己多少個Token
function allowance(address _owner, address _spender) view returns (uint256 remaining);
//轉賬的時候必須要調用的時間,比如Tranfer,TransferFrom
event Transfer(address indexed _from, address indexed _to, uint256 _value);
//成功執行approve方法後調用的事件
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
contract YJCToken is EIP20Interface {
//1.獲取token名字,比如"YaJing Coin"
string public name;
//2.獲取Token簡稱,比如"YJC"
string public symbol;
//3.獲取小數位,比如以太坊的decimals爲18
uint8 public decimals;
//4.獲取token發佈的總量,比如HT 5億
uint256 public totalSupply;
mapping(address=>uint256) balances ;
mapping(address=>mapping(address=>uint256)) allowances;
function YJCToken(string _name,string _symbol, uint8 _decimals,uint256 _totalSupply) public{
name = _name;
symbol = _symbol;
decimals = _decimals;
totalSupply = _totalSupply;
balances[msg.sender] = _totalSupply;
}
//獲取_owner地址的餘額
function balanceOf(address _owner) public view returns (uint256 balance){
return balances[_owner];
}
//轉賬:從自己賬戶向_to地址轉入_value個Token
function transfer(address _to, uint256 _value)public returns (bool success){
require(_value >0 && balances[_to] + _value > balances[_to] && balances[msg.sender] > _value);
balances[_to] += _value;
balances[msg.sender] -= _value;
Transfer(msg.sender, _to,_value);
return true;
}
//轉賬:從_from向_to轉_value個Token
function transferFrom(address _from, address _to, uint256 _value) returns (bool success){
uint256 allowan = allowances[_from][_to];
require(allowan > _value && balances[_from] >= _value && _to == msg.sender && balances[_to] + _value>balances[_to]);
allowances[_from][_to] -= _value;
balances[_from] -= _value;
balances[_to] += _value;
Transfer(_from,_to,_value);
return true;
}
//允許_spender從自己(調用方)賬戶轉走_value個Token
function approve(address _spender, uint256 _value) returns (bool success){
require(_value >0 && balances[msg.sender] > _value);
allowances[msg.sender][_spender] = _value;
Approval(msg.sender,_spender,_value);
return true;
}
//自己_owner查詢_spender地址可以轉走自己多少個Token
function allowance(address _owner, address _spender) view returns (uint256 remaining){
return allowances[_owner][_spender];
}
}
填寫Token初始化參數
需要注意:發行總量=_totalSupply/_decimals,此處發行了100個YJC
點擊transact,會自動彈出來這個界面,這個賬戶是新建的賬戶餘額爲0ETH。
需要先得到一定數量的以太幣才能部署智能合約
再重新transact一下,點擊確認
在Ramix端直接獲取參數值:
部署成功
查詢賬戶的Token餘額
注意:代幣聯繫人地址是生成的token合約地址
點擊這個粘貼過來即可
這個代幣也可以轉賬給別人