如何解析web3.js调用智能合约

  介绍

如何解析web3.js调用智能合约,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

小编将用web3。js走一个简单调用智能合约流程。

1

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

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

 \ Migrations0.sol合同
  
  pragma  solidity  ^ 0.4.23;
  
  contract  Migrations0  {
  
  ,,,//编写一个函数,来完成两个数的相加操作
  
  ,,,function  aAndb (uint  uint  b), public  constant  returns (单位),{
  
  ,,,,,return  a + b;
  
  ,,,}
  
  }
  
  迁移\ 1 _initial_migration0.js
  
  var  Migrations =, artifacts.require (“。/Migrations0.sol");
  
  时间=module.exports 函数(部署人员),{
  
  deployer.deploy才能(迁移);
  
  2};

<强>编译

在松露开发编译一下

如何解析web3.js调用智能合约

在。/构建/合同文件中生成json文件

如何解析web3.js调用智能合约

其中:

“abi":, (
  
  ,,,{
  
  ,,,,,“constant":,真的,
  
  ,,,,,“inputs":,
  
  ,,,,,,,{
  
  ,,,,,,,,,“name":,“a"
  
  ,,,,,,,,,“type":,“uint256"
  
  ,,,,,,,},
  
  ,,,,,,,{
  
  ,,,,,,,,,“name":,“b"
  
  ,,,,,,,,,“type":,“uint256"
  
  ,,,,,,,}
  
  ,,,,,,
  
  ,,,,,“name":,“aAndb"
  
  ,,,,,“outputs":,
  
  ,,,,,,,{
  
  ,,,,,,,,,“name":,““,
  
  ,,,,,,,,,“type":,“uint256"
  
  ,,,,,,,}
  
  ,,,,,,
  
  ,,,,,“payable":,假的,
  
  ,,,,,“stateMutability":,“调整前,
  
  ,,,,,“type":,“function"
  
  ,,,}
  
  ]才能

压缩后的abi:

 [{“constant":真的,“inputs": [{“name":“a",“type":“uint256"}, {“name":“b",“type":“uint256"}],“name":“aAndb",“outputs": [{“name":““,“type":“uint256"}],“payable":假的,“stateMutability":“调整前,“type":“function"}] 

3

<强>部署

Migrations0的合约地址:0 x345ca3e014aaf5dca488057592ee47305d9b3e10

如何解析web3。js调用智能合约4

<强>调用

如何解析web3.js调用智能合约

web3.eth.contract:

web3.eth.contract (abiArray)

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

参数:

数组安康;一到多个描述合约的函数,事件的ABI对象。

返回值:

对象之处;一个合约对象。

如何解析web3.js调用智能合约