我想从DAML中的已归档合同中获取历史数据,以便可以将其用于审计目的。
我读到有关JSON API服务的信息,但它只能这样做。
https://docs.daml.com/json-api/index.html
创建
行使
查询有效合同。
我正在经历DAML的nodejs绑定,发现“ Interface ArchivedEvent”,但无法理解如何利用它来获取数据。
https://digital-asset.github.io/daml-js/latest/interfaces/archivedevent.html
最佳答案
这是示例代码,通过它我可以获取所有模板数据。
PackageCatalog包含所有templateID的JSON
templateId:{
packageId:“ my-package-id”,
moduleName:'SomeModule',
实体名称:“ SomeTemplate”
},
const ledger = require('@digitalasset/daml-ledger');
const templateIds = require('../config/PackageCatalog.json')
const connect = util.promisify(ledger.DamlLedgerClient.connect.bind(ledger.DamlLedgerClient))
const client = await connect({ host: ' host id of your like localhost or some ip', port: 'your sandbox port number' })
const tmplt_Test = templateIds['Main.Test.Testuno:Testtemp']
const filtersByParty = {}
filtersByParty['Party Data you want to fetch'] = { inclusive: { templateIds: [tmplt_Test] } };
const GetTransactionsRequest = {
begin: { offsetType: 'boundary', boundary: ledger.LedgerOffsetBoundaryValue.BEGIN },
filter: { filtersByParty: filtersByParty }
};
let getAllTransactionData = client.transactionClient.getTransactions(GetTransactionsRequest);
getAllTransactionData.on('data', response => {
console.log(" \n\n response :::: " + JSON.stringify(response))
for (let transaction of response.transactions) {
let events = transaction.eventsById;
for (let eventId in events) {
}
}
})
关于node.js - 如何使用Node.js绑定(bind)从DAML中的存档契约(Contract)中获取数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58820376/