我正在尝试通过编写脚本在Hyperledger作曲家中创建新的参与者和资产。请帮我做到这一点。如果无法解决,请让我理解原因。请提供示例代码段。
谢谢
答案 0 :(得分:1)
快速背景下,参与者和资产是您使用Composer Modeling Language建模的“资源”。其他资源是“事务和事件”。
对于您的用例,要在其中创建脚本以添加这些资源,则需要使用transaction processor functions。在这些功能中,您将利用registry和factory创建参与者和资产。另外,请记住,在创建事务处理器功能之前,您首先需要创建一个事务资源。
下面的示例代码:
说我们有一个参与者 User 。为了创建此参与者,我们使用事务 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以获得进一步的参考。