【区块链-以太坊】2 使用Remix编译和部署Solidity智能合约

1 基础知识

Remix简介
Remix 是以太坊提供的一个开发Solidity智能合约的网络版开发软件(无需安装)。合约的开发者在Remix里提供的JavaScript虚拟机上开发,调试好合约后,可以发布到以太坊,或者任何支持Solidity智能合约的区块链上。
solidity简介
Solidity 是 Ethereum 官方设计和支援的程式语言,专门用于编写智能合约。
使用智能合约的步骤
1)部署智能合约:就是合约的发起人把智能合约发布到区块链上,并且生成一个新的合约地址。
2)调用函数:调用部署在这个地址上的合约里的函数。一个合约只需部署一次,生成一个合约地址。但是这个地址上合约中的函数可以多次被调用。

2 使用Remix编译智能合约

1)打开Remix网页 http://remix.ethereum.org
2)创建新的智能合约

pragma solidity >0.4.22 <0.6.0;  /*version*/
contract MyToken {
/* This creates an array with all balances */
    mapping (address => uint256) public balanceOf;
    
    /* Initializes contract with initial supply tokens to the creator of the contract */
    constructor(uint256 initialSupply) public {
        balanceOf[msg.sender] = initialSupply;              
        // Give the creator all initial tokens
    }
    
    /* Send coins */
    function transfer(address _to, uint256 _value) public {
        require(balanceOf[msg.sender] >= _value);           
        // Check if the sender has enough
        require(balanceOf[_to] + _value >= balanceOf[_to]); 
        // Check for overflows
        balanceOf[msg.sender] -= _value;                    
        // Subtract from the sender
        balanceOf[_to] += _value;                  
        // Add the same to the recipient
    }
}

此智能合约实现两个操作
a) 创造代币:发起合约时创造指定数量的代币,代币拥有着是发起合约的Ethereum账户
b) 转移代币(transfer):转移指定数量的代币给指定账户
3)选择合适版本的编译器进行编译
4)编译成功后右下角显示绿色提示
在这里插入图片描述

3 在本地部署智能合约

1)点击run,环境选择JavaScript VM 表示所有资料都保存在本地。图中Account是JavaScript虚拟机提供的,共有5个账户,每个账户都有100测试ether。
在这里插入图片描述
2)发送交易部署合约。选择MyToken,在Deploy中输入要发行的代币数量,点击Deploy即可发送交易部署合约(点击下拉箭头可更清楚地看出此时调用的是initialSupply函数)
在这里插入图片描述
在这里插入图片描述
3)合约部署成功后,中下方灰色区域显示如下:
在这里插入图片描述
右下方显示如下:
在这里插入图片描述
此时发起合约的账户所持ether会减少
在这里插入图片描述
4)查询代币余额(balanceOf)
在balanceOf后填写账户地址,点击call,将会显示账户的代币余额
在这里插入图片描述
在这里插入图片描述
5)转移代币(transfer)
a)选择要转出的账户
在这里插入图片描述
b)输入要转入的账户及代币数量
在这里插入图片描述
c)点击transact,显示
在这里插入图片描述
d)查询账户代币余额
转出者余额为:
在这里插入图片描述
转入者余额为:
在这里插入图片描述
【注】
Q1:transact to MyToken. transfer errored: VM error: revert.
revert The transaction has been reverted to the initial state.
在这里插入图片描述
A1:这表示转出账户代币余额不足,交易失败

4 在测试网络中部署智能合约

1)打开MetaMask,选择Rinkeby Test Network
在这里插入图片描述
2)在Remix中选择测试网络,环境选择Injected Web3,自动连接MetaMask
在这里插入图片描述
3)发送交易部署合约
a)输入初始代币数目
在这里插入图片描述
b)点击Deploy后会弹出以下界面
在这里插入图片描述
c)点击confirm后,Remix中显示:
在这里插入图片描述
MetaMask中显示
在这里插入图片描述
4)转移代币
在这里插入图片描述
点击transact弹出如下窗口:
在这里插入图片描述
MetaMask中显示
在这里插入图片描述

5)查询代币余额
在这里插入图片描述
在这里插入图片描述

6)将代币加入钱包
a)合约发布成功后,会显示发布合约的交易查询地址,点击网页
在这里插入图片描述
b)红框中即为代币地址
在这里插入图片描述
c)在metamask页面中点击ADD TOKEN
在这里插入图片描述
d)点击Custom Token 根据合约的详细信息输入代币地址、定义代币名称以及精确位数
在这里插入图片描述
e)点击ADD TOKENS
在这里插入图片描述
f)代币添加成功
在这里插入图片描述
7)验证智能合约
a)点击合约地址,显示合约详细信息
在这里插入图片描述
b)点击code后显示:
在这里插入图片描述
c)点击Verify And Publish,进入验证界面,按照以下提示输入相应信息
· Contract Address:合约地址
· Contract Name:合约名称,即为编译时选择的合约名称
· Compiler:编译版本,即为编译时用的版本号
· Optimization:是否优化(选择:否)
· Enter the Solidity Contract Code below:输入合约代码
· Constructor Arguments ABI-encoded (For contracts that accept constructor parameters):合约中构造函数传入的参数的ABI码
在这里插入图片描述
【注】在code中可得到构造函数传入的参数的ABI码
在这里插入图片描述

d)点击Verify And Publish
在这里插入图片描述
e)验证成功后显示以下:
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值