我有2位参与者参与我的连锁代码和1次交易,以更改1个资产的所有权。 .cto 文件
asset Product identified by productId{
o String productId
--> User owner
}
abstract participant User {}
participant Buyer identified by buyerId extends User {
o String buyerId
}
participant Seller identified by sellerId extends User {
o String sellerId
}
transaction changeOwner {
--> User user
--> Product product
}
//script.js
async function change(tx) {
tx.product.owner = tx.user;
}'
我面临的问题是,当我在作曲家游乐场中对其进行测试时,我可以像
那样编辑事务“所有者”:“ resource:org.example.basic。买方#buyer1”,“所有者”: “ resource:org.example.basic。卖方#seller1”
如果我采用这种方式,则链代码可以正常工作,但
当我生成其有角度的骨架并提供值时,它看起来像这样
“所有者”:“资源:org.example.basic。用户#buyer1”,即使在API中, 正在使用用户
我如何确保它发送正确的命名空间或正确的用户?
答案 0 :(得分:0)
Composer Playground会为您提供的内容建模,并为建模资产,参与者或交易等提供建议的JSON。它只是一天结束时的游乐场。
您需要将 resource 类传递给事务函数,而不是抽象类User
(它不是用于存储或检索对象的资源注册表)。 >
因此您的交易可能应该是(仅基于产品所有者(“所有者”)可以“出售”资产:-)):
asset Product identified by productId{
o String productId
--> Seller owner
}
transaction changeOwner {
--> Product product
--> Buyer newOwner
}
以及基于当前模型的交易:
//script.js
async function change(tx) {
tx.product.owner.sellerId = tx.newOwner.buyerId;
}
您应该在Angular应用中看到相同的内容。