如何在超级分类器编写器logic.js中访问资产的事务历史记录?

时间:2018-05-15 06:11:51

标签: hyperledger-fabric hyperledger smartcontracts

我在hyperledger作曲家的帮助下写了一份智能合约,我需要访问资产的交易历史记录才能知道它是否已被当局批准,以及当资产被批准时,进行交易,现在需要在我的智能合约中的logic.js内访问该资产的交易历史记录。

提前致谢。

1 个答案:

答案 0 :(得分:1)

在这里,您可以访问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) {
        }
    }
}

有关更多信息,请查看以下网址:https://hyperledger.github.io/composer/latest/reference/js_scripts