主页 > tp钱包和imtoken钱包通用吗 > 使用 Remix 编译和部署以太坊智能合约
使用 Remix 编译和部署以太坊智能合约
Remix是一个开源的Solidity智能合约开发环境,提供编译、部署到本地或测试网络、执行合约等基本功能。 Solidity 是以太坊官方设计并支持的一种开发语言,专门用于编写智能合约。
本文希望在本地和测试网络部署一个非常简单的代币合约(仅发行和转账)来测试其功能。
详细描述使用Remix的步骤和使用中可能遇到的问题。
之前开发过以太坊智能合约,但是没有记录开发过程和遇到的问题,有点遗憾。 这次重新开始,从最基础的开始,循序渐进的学习。
开发环境
无需安装,只需在任何浏览器中直接启动 Remix。
获取代币合约
有很多代币合约的例子。 以太坊官网提供了一个最小可执行代币合约(MINIMUM VIABLE TOKEN):
pragma solidity ^0.4.0; 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 */ function MyToken(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 } }
这个 MyToken 合约非常简单,只能做两件事:
创建代币:在发起合约时创建指定数量的代币,代币的所有者为发起合约的以太坊账户转账:将指定数量的代币转入指定的以太坊账户
完整的代币合约请参考《ERC20代币用户手册》。
使用Remix编译合约,点击右上角+添加新的合约名称,只要扩展名为“.sol”即可。
将合约内容复制到本合约中,编译Remix。 默认设置将自动编译。 只要旁边没有红色的错误提示,就说明编译成功。
在本地部署合约
1、设置好网络,点击左上角的运行。
Environment 选择JavaScript VM意味着所有数据都存储在本地(类似于testrpc)。 它将提供5个虚拟账户,每个账户100 ETH,随机选择一个账户(记住以后总是使用它)。
2.选择MyToken发送交易部署合约。 您可以看到创建按钮。 并且根据合约的内容,已经显示必须输入initialSupply(即要发行的代币数量)。 输入一个数字,点击创建发送交易部署合约。
合约部署成功后,可以看到合约的界面。 Remix会根据合约内容自动生成对应的合约用户界面。 可以看到合约有两个函数:balanceOf(查询余额)和transfer(转移代币)。
您可以在底部看到日志(记录每个操作)。 其实部署合约是通过一笔以太坊交易完成的,点击详情可以看到这笔交易的详情。
执行合约——查询余额
1.选择刚刚发起合约的账户
您可以点击右侧的按钮进行复制
2、输入账号,注意用“”把账号括起来,例如:
"0xca35b7d915458ef540ade6068dfe2f44e8fa733c"
3.点击balanceOf
可以看到执行结果,就是当前账户的token余额。
可能的错误情况
注意,因为数据传输是JSON格式,所以必须加上“”。 如果您忘记了“”,您将在日志中看到一条错误消息:
执行合约——转移代币
1. 选择要输出的账户 选择刚刚发起的合约的账户。
2. 输入要转账的账户,选择复制其他账户。 在合约接口转账后面的输入位置,输入转账账户和要转账的代币数量。 账号也需要用“”括起来,例如:
"0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db", 10
3.点击转账 点击转账,成功后会看到日志更新。
4.确认余额更新。 这时候查看转账账户的余额,可以看到代币余额增加了!
错误情况 如果转账账户的token余额不足,交易会失败,并在日志中显示错误信息。
在测试网络上部署合约
1. 安装MetaMask 首先,要连接到测试网络,您需要安装MetaMask。 它是一个浏览器端的以太坊钱包,可以连接到以太坊公共和测试网络。 安装后需要创建以太坊账户,这里不再赘述。
这是启动成功后的样子。
我们选择 Ropsten 测试网
2.选择测试网络
回到Remix,这次Environment选择Injected Web3,Remix会自动连接MetaMask。
连接成功后,您将看到与 MetaMask 相同的账户和 Ether 余额
3. 部署合约 然后用同样的方法,点击创建部署合约,你会看到MetaMask弹窗。 只需按提交即可发送交易。
稍等片刻(需要等待交易确认),部署成功后会出现合约的用户界面。
好的,现在你可以用同样的方式使用合约了!
总结
Remix 为 Solidity 智能合约提供了一个开发环境,可以很容易地编译、部署、执行,甚至可以查错以太坊智能合约开发,适合编程经验不多的初学者。 但是,版本控制、测试和与其他开发工具一起使用是不可能的。 其实开发DApp以太坊智能合约开发,使用Truffle3、Ganache、web3.js编译部署合约更方便、更专业,更适合开发者。
推荐一个适合区块链初学者的以太坊DApp开发教程: