当前位置:   article > 正文

web3.js调用智能合约

web3js智能合约

本文将用web3.js走一个简单调用智能合约流程。

1

利用truffleinit 命令生成智能合约框架

代码参考。按照自动化生成的框架进行简单的修改如下:

  1. contracts\Migrations0.sol
  2. pragma solidity ^0.4.23;
  3. contract Migrations0 {
  4.     //编写一个函数,来完成两个数的相加操作
  5.     function aAndb(uint a,uint b) public constant returns (uint) {
  6.       return a+b;
  7.     }
  8. }
  9. migrations\1_initial_migration0.js
  10. var Migrations = artifacts.require("./Migrations0.sol");
  11. module.exports = function(deployer) {
  12.   deployer.deploy(Migrations);
  13. };
  14. 复制代码

2

编译

在truffle develop编译一下

在./build/contracts文件中生成json文件

其中:

  1. "abi": [
  2.     {
  3.       "constant": true,
  4.       "inputs": [
  5.         {
  6.           "name": "a",
  7.           "type": "uint256"
  8.         },
  9.         {
  10.           "name": "b",
  11.           "type": "uint256"
  12.         }
  13.       ],
  14.       "name": "aAndb",
  15.       "outputs": [
  16.         {
  17.           "name": "",
  18.           "type": "uint256"
  19.         }
  20.       ],
  21.       "payable": false,
  22.       "stateMutability": "view",
  23.       "type": "function"
  24.     }
  25.   ]
  26. 复制代码

压缩后的abi:

  1. [{"constant":true,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"}],"name":"aAndb","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]
  2. 复制代码

3

部署

Migrations0的合约地址:0x345ca3e014aaf5dca488057592ee47305d9b3e10

4

调用

web3.eth.contract:

web3.eth.contract(abiArray)

创建一个Solidity的合约对象,用来在某个地址上初始化合约。

参数:

Array - 一到多个描述合约的函数,事件的ABI对象。

返回值:

Object - 一个合约对象。

具体参考http://web3.tryblockchain.org/Web3.js-api-refrence.html

本文作者:HiBlock区块链技术布道群-阿飞

原文发布于CSDN

原文链接:

https://blog.csdn.net/lxfgzm/article/details/80646578

加微信baobaotalk_com,加入技术布道群

线下活动推荐

技术工坊|如何利用ERC875协议开发世界杯区块链门票?(北京)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/861525
推荐阅读
相关标签
  

闽ICP备14008679号