如何在 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