我试图通过编写脚本在hyperledger作曲家中创建新的参与者和资产。请帮我这样做。如果不可能请让我理解原因。请同时提供示例代码片段。
谢谢
快速背景,参与者和资产是您使用Composer Modeling Language建模的“资源”。其他资源是交易和事件。
对于您的用例,您要在其中创建脚本以添加这些资源,您需要使用transaction processor functions。在这些函数中,您将使用registry和factory来创建参与者和资产。此外,请记住,在创建事务处理器函数之前,您首先需要创建一个事务资源。
以下示例代码:
假设我们有一个参与者用户。要创建此参与者,我们使用事务CreateUser。所以你的模型文件将是:
namespace org.network.participants
participant User identified by userId {
o String userId
o String name
o String email
}
transaction CreateUser {
o User userDetails
}
你的脚本文件将是:
/**
*
* @param {org.network.participants.CreateUser} transactionRequest
* @transaction
*/
async function createUser(transactionRequest) {
try {
let userDetails = transactionRequest.userDetails;
let userRegistry = await getParticipantRegistry('org.network.participants.User');
let factory = await getFactory();
let user = await factory.newResource('org.network.participants', 'User', userDetails.userId);
user.name = userDetails.name;
user.email = userDetails.email;
return userRegistry.add(user);
} catch(exception) {
throw new Error(exception);
}
}
您可以参考official composer documentation以获得进一步的参考。