Solidity是以太坊目前最流行的智能合约编程语言,Remix IDE是Solidity智能合约的开发环境是,使用Remix可以加快我们开发智能合约。
访问地址(https://remix.ethereum.org/#optimize=true),打开线上remix IDE, 点击remix左上角工具按钮,新建一个智能合约文件UserInfo.sol,在合约编辑页面编写如下代码:
pragma solidity ^0.4.16; contract UserInfoContract { string userName; //用户名称 uint userAge; //用户年龄 /*设置用户的信息*/ function setUser(string _userName, uint _userAge) public { userName = _userName; userAge = _userAge; } /*获取用户的信息*/ function getUser() public constant returns (string, uint) { return (userName, userAge); } } |
代码很简单,就是简单的给userName和userAge变量赋值与读取。
下面就要把智能合约部署到以太坊的节点了,我们使用ganache模拟以太坊节点,使用一下命令启动ganache:
ganache-cli –p 7545 |
Ganache启动成功后,我们需要切换到remix中来部署智能合约,在remix中切换到 run 的 tab 下,将Environment切换成Web3 Provider,并输入我们的测试链的地址http://127.0.0.1:7545.设置完如下图:
那么在下面的Account的选项会默认选择 Ganache 创建的第一个账户地址。接下来我们点击Deploy就会将我们的智能合约部署到我们的Ganache测试链网中,如下图所示
至此,我们已经完成了使用remix 发布智能合约了。
因为,去中心化应用的场景中,应用访问合约就需要知道合约的地址和ABI定义,接下来讲讲,如何保存合约地址和ABI智能接口定义,点击上图,复制智能合约地址。
合约地址如:0x692a70d2e424a56d2c6c27aa97d1a86395877b3a
保存ABI,remix右面的配置TAB工具界面上,切换compile tab如下图1,点击detail按钮,如下图2,在弹出的页面上,往下拖动页面拖动ABI信息内容,点击复制按钮,完成ABI复制。
刚发布的智能合约ABI如下:
[ { "constant": false, "inputs": [ { "name": "_userName", "type": "string" }, { "name": "_userAge", "type": "uint256" } ], "name": "setUser", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "getUser", "outputs": [ { "name": "", "type": "string" }, { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" } ] |
最后,我们把合约地址和ABI信息保存在文本存放好就可以了。