NodeJS API DAML绑定是一个用于连接DAML应用程序和DAML解释器的库。以下是一个使用NodeJS API DAML绑定的示例:
const daml = require('daml');
const ledgerId = 'ledger1';
const party = 'Alice';
const token = 'eyJlcnJvciI6IkdNQkFQSSIsInBhcnR5IjoiQWxpY2UifQ==';
const templateId = 'MyModule:MyTemplate';
const payload = { foo: 'bar' };
const client = new daml.ProjectClient('localhost', 6865, false);
await client.connect();
await client.listKnownParties();
const partyResult = await client.getParty(party);
const partyIdentifier = partyResult.result.identifier;
const command = {
commandType: daml.CommandType.CREATE_AND_EXERCISE,
templateId: { moduleName: 'MyModule', entityName: 'MyTemplate' },
arguments: payload,
choice: 'MyChoice',
signatories: [party],
observers: [],
goldKey: {
privateKey: Buffer.from(token, 'base64'),
publicKey: Buffer.from('', 'utf-8'),
},
meta: {
ledgerId,
commandId: daml.LfUtils.randomUUID(partyIdentifier),
workflowId: daml.LfUtils.randomUUID(partyIdentifier),
applicationId: 'myAppId',
},
};
const submitRequest = new daml.api.v1.CreateCommand()
.setCommand(daml.encodeCommand(command))
.setTimeout(30);
const result = await client.commandServiceClient.commands(submitRequest);
console.log(result);
在此示例中,我们创建了一个DAML ProjectClient,并使用它与DAML解释器进行通信。我们向DAML解释器发送了一个命令,以创建一个模板实例,并立即运行选择。这里的命令结构化为命令类型,模板ID,参数,选择,签名方,观察员,黄金密钥和元数据。然后,我们将此命令编码为字节串,并通过客户端的命令服务客户端将其发送到DAML库。
我们可以使用NodeJS API DAML绑定开发用于连接DAML应用程序和DAML解释器的库和工具。