node.js - 在 Hyperledger Fabric NodeJS 智能合约中,所有参数都应该作为字符串传递吗?
问题描述
在fabric-sample
Hyperledger Fabric 的存储库中,具体是商业票据的示例应用:
有一行调用该issue
函数:
const issueResponse = await contract.submitTransaction('issue', 'MagnetoCorp', '00001', '2020-05-31', '2020-11-30', '5000000');
最后一个参数应该是一个整数,但该值5000000
作为字符串传递。
这是在 Hyperledger Fabric 中编写 NodeJS 智能合约的要求,所有参数都应作为字符串传递吗?
解决方案
是的,函数参数必须作为字符串传递。
如果您想将 JSON 传递给函数,您可以对数据进行字符串化并在方法内对其进行解析。
例如:
data = "{\"field1\":\"value1\",\"field2\":\"value2\"}"
var response = await contract.submitTransaction('myFunction', data);
然后在你的链码中
async myFunction(ctx, data){
data = JSON.parse(data);
//... your logics
}
推荐阅读
- php - 如何为所有 php 页面定义一个变量?
- sql - SQL Server - 获取第一个和最后一个(按日期时间)DataPoints 值
- java - 构建器模式的抽象类
- entity-framework - 如何删除与同一张表具有 1:1 关系的行?
- asynchronous - 如何在 Flutter 的 Firebase 快照上调用 Future?
- javascript - jQuery:仅在没有选定选项时才设置选定选项
- git - Visual Studio 的 Git 忽略项目
- java - 为类似于 Excel 的电子表格应用程序生成列名的方法/函数
- javascript - 如何在车把中设置 (!)?
- c - C - Libcurl - 如何搜索带有特殊字符的邮件 (ä,ö,ü)