介绍
如何解析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};
<强>编译强>
在松露开发编译一下
在。/构建/合同文件中生成json文件
其中:
“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.eth.contract:
web3.eth.contract (abiArray)
创建一个坚固的合约对象,用来在某个地址上初始化合约。
参数:
数组安康;一到多个描述合约的函数,事件的ABI对象。
返回值:
对象之处;一个合约对象。