我试图创建自己的加密货币 - ' WhizCoin'在Hyperledger Composer Playground中。 我已经创建了基本的模型和脚本文件。 2名参与者 - 发件人和收件人,1份资产 - 硬币和1份“交易 - 分销币”。
/ * Model.cto文件: - * /
namespace org.whiz.whizcoin
// ASSETS:-
abstract asset Currency{
o Double rate default=100.00
o Double coins
}
asset WhizCoin identified by currencyid extends Currency{
o String currencyid default = "WhizCoin"
//--> Member owner
}
// PARTICIPANTS:-
abstract participant user{
o String name
o Integer balance
}
participant Member identified by memberId extends user {
o String memberId
}
// Transactions:-
transaction distributeCoins {
--> Member receiver
o Double amount
-->Currency wc
}
/ * logic.js文件: - * /
'use strict';
var NS = 'org.whiz.whizcoin';
/**
* @param {org.whiz.whizcoin.distributeCoins} distributeCoins - Distribute Coins
* @transaction
*/
function distributeCoins(distributeCoins) {
distributeCoins.receiver.balance += distributeCoins.amount;
distributeCoins.wc.coins -= distributeCoins.amount;
return getParticipantRegistry('org.whiz.whizcoin.Member')
.then(function (ParticipantRegistry) {
return ParticipantRegistry.update(distributeCoins.receiver);
})
.then(function() {
return getAssetRegistry('org.whiz.whizcoin.WhizCoin');
})
.then(function (AssetRegistry) {
return AssetRegistry.update(distributeCoins.whizcoin);
});
}
提交交易后,我得到的错误是:
Error: Expected a Resource or Concept.
我真的陷入困境,无法在其他任何地方找到任何解决方案。请帮忙。提前谢谢!
答案 0 :(得分:0)
在您更新资产注册表的逻辑部分中,您正在使用事务中不存在的变量whizcoin。在模型文件中,为此使用名称wc。用AssetRegistry.update(distributeCoins.whizcoin)
替换AssetRegistry.update(distributeCoins.wc)
可以解决您的问题。