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