部署以太坊合约

第一步:准备环境(Remix+MetaMask)

       1. 基于浏览器的Remix,网址为:http://remix.ethereum.org/ 或者直接在浏览器中搜索Remix(会直接跳转到新版)。

       2. MetaMask是一个基于Chrome浏览器的插件,具体的安装过程,参考链接:https://cloud.tencent.com/developer/article/1127431

       3. MetaMask钱包中准备几个以太币,因为部署智能合约是需要消耗gas的。

 

第二步: 编写智能合约(可以自己创建一个新的.sol文件编写智能合约。此时,我是从网上找一个现成的智能合约来部署测试的)。

 

pragma solidity ^0.4.26;
contract Token{
uint256 public totalSupply;

function balanceOf(address _owner) public constant 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 constant returns
(uint256 remaining);
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256
_value);
}
contract test is Token {

string public name; //名称,例如"My test token"
uint8 public decimals; //返回token使用的小数点后几位。比如如果设置为3,就是支持0.001表示.
string public symbol; //token简称,like MTT

function test(uint256 _initialAmount, string _tokenName, uint8 _decimalUnits, string _tokenSymbol) public {
totalSupply = _initialAmount * 10 ** uint256(_decimalUnits); // 设置初始总量
balances[msg.sender] = totalSupply; // 初始token数量给予消息发送者,因为是构造函数,所以这里也是合约的创建者

name = _tokenName;
decimals = _decimalUnits;
symbol = _tokenSymbol;
}

function transfer(address _to, uint256 _value) public returns (bool success) {


require(balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]);
require(_to != 0x0);
balances[msg.sender] -= _value;//从消息发送者账户中减去token数量_value
balances[_to] += _value;//往接收账户增加token数量_value
Transfer(msg.sender, _to, _value);//触发转币交易事件
return true;
}


function transferFrom(address _from, address _to, uint256 _value) public returns
(bool success) {
require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value);
balances[_to] += _value;//接收账户增加token数量_value
balances[_from] -= _value; //支出账户_from减去token数量_value
allowed[_from][msg.sender] -= _value;//消息发送者可以从账户_from中转出的数量减少_value
Transfer(_from, _to, _value);//触发转币交易事件
return true;
}
function balanceOf(address _owner) public constant returns (uint256 balance) {
return balances[_owner];
}


function approve(address _spender, uint256 _value) public returns (bool success)
{
require((_value == 0) || (allowed[msg.sender][_spender] == 0));
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}

function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
return allowed[_owner][_spender];//允许_spender从_owner中转出的token数
}
mapping (address => uint256) balances;
mapping (address => mapping (address => uint256)) allowed;
}
第三步:编译智能合约(注意:保证编译的版本跟.sol文件中solidity的版本是一致的,否则编译是会报错的呦~~)

 

第四步:部署智能合约 

  1. 在第一项选择Environment的时候,当你选中Injected Web3之后,系统会自动弹出右边的关联请求,选择连接即可。

 

    2. 接下来选择部署合约的账户Account,小费。同样地,在点击Deploy 的时候,系统也会弹出MetaMask让确认一下是否部署(因为部署智能合约是要消耗小费的)。

 

第五步:合约部署成功

原文链接:https://blog.csdn.net/zqq_2016/article/details/103435025

posted @ 2021-06-03 15:30  简进祥  阅读(270)  评论(0编辑  收藏  举报