如何在 hyperledger composer logic.js 中访问资产的交易历史?
How to access transaction history of an asset in hyperledger composer logic.js?
我正在 hyperledger
composer 的帮助下编写智能合约,我需要访问资产的交易历史记录以了解其状态是否得到当局批准,以及资产何时获得批准,交易已完成,现在需要访问我智能合约中 logic.js
内该资产的交易历史记录。
提前致谢。
以下是您可以访问 native API
并使用它可以访问特定资产 Historian
记录的方法
const id = transaction.assetId;
const nativeSupport = transaction.nativeSupport;
const nativeKey = getNativeAPI().createCompositeKey('Asset:systest.transactions.SimpleStringAsset', [id]);
const iterator = await getNativeAPI().getHistoryForKey(nativeKey);
let results = [];
let res = {done : false};
while (!res.done) {
res = await iterator.next();
if (res && res.value && res.value.value) {
let val = res.value.value.toString('utf8');
if (val.length > 0) {
results.push(JSON.parse(val));
}
}
if (res && res.done) {
try {
iterator.close();
}
catch (err) {
}
}
}
有关详细信息,请查看此 url:https://hyperledger.github.io/composer/latest/reference/js_scripts
我正在 hyperledger
composer 的帮助下编写智能合约,我需要访问资产的交易历史记录以了解其状态是否得到当局批准,以及资产何时获得批准,交易已完成,现在需要访问我智能合约中 logic.js
内该资产的交易历史记录。
提前致谢。
以下是您可以访问 native API
并使用它可以访问特定资产 Historian
记录的方法
const id = transaction.assetId;
const nativeSupport = transaction.nativeSupport;
const nativeKey = getNativeAPI().createCompositeKey('Asset:systest.transactions.SimpleStringAsset', [id]);
const iterator = await getNativeAPI().getHistoryForKey(nativeKey);
let results = [];
let res = {done : false};
while (!res.done) {
res = await iterator.next();
if (res && res.value && res.value.value) {
let val = res.value.value.toString('utf8');
if (val.length > 0) {
results.push(JSON.parse(val));
}
}
if (res && res.done) {
try {
iterator.close();
}
catch (err) {
}
}
}
有关详细信息,请查看此 url:https://hyperledger.github.io/composer/latest/reference/js_scripts