remixIDE 发布以太坊智能合约SMART CONTRACT

 

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.设置完如下图:

remixIDE 发布以太坊智能合约SMART CONTRACT_第1张图片

那么在下面的Account的选项会默认选择 Ganache 创建的第一个账户地址。接下来我们点击Deploy就会将我们的智能合约部署到我们的Ganache测试链网中,如下图所示

remixIDE 发布以太坊智能合约SMART CONTRACT_第2张图片

 

至此,我们已经完成了使用remix 发布智能合约了。

因为,去中心化应用的场景中,应用访问合约就需要知道合约的地址和ABI定义,接下来讲讲,如何保存合约地址和ABI智能接口定义,点击上图,复制智能合约地址。

合约地址如:0x692a70d2e424a56d2c6c27aa97d1a86395877b3a

保存ABI,remix右面的配置TAB工具界面上,切换compile tab如下图1,点击detail按钮,如下图2,在弹出的页面上,往下拖动页面拖动ABI信息内容,点击复制按钮,完成ABI复制。

remixIDE 发布以太坊智能合约SMART CONTRACT_第3张图片

remixIDE 发布以太坊智能合约SMART CONTRACT_第4张图片

刚发布的智能合约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信息保存在文本存放好就可以了。

你可能感兴趣的:(区块链)