900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 基于新版Remix+MetaMask部署以太坊智能合约

基于新版Remix+MetaMask部署以太坊智能合约

时间:2024-03-20 10:27:20

相关推荐

基于新版Remix+MetaMask部署以太坊智能合约

本来是不打算写这个博客的,因为网上也有很多关于Remix+MetaMask的教程,但是看到的教程都是基于旧版的Remix,所以当初自己在开始部署的时候还是挺费力的。所以,希望能帮到跟我一样的小伙伴吧~~

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

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

2. MetaMask是一个基于Chrome浏览器的插件,具体的安装过程,参考链接:/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 MTTfunction 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数量_valuebalances[_to] += _value;//往接收账户增加token数量_valueTransfer(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数量_valuebalances[_from] -= _value; //支出账户_from减去token数量_valueallowed[_from][msg.sender] -= _value;//消息发送者可以从账户_from中转出的数量减少_valueTransfer(_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让确认一下是否部署(因为部署智能合约是要消耗小费的)。

第五步:合约部署成功过一会儿,我们再去看一眼咱们的MetaMask钱包,就会发现合约已经部署成功了,并且我们是可以看到交易详情滴~~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。