Hyperledger Composer Playground执行错误

时间:2018-01-18 07:34:39

标签: hyperledger-fabric hyperledger hyperledger-composer

我试图创建自己的加密货币 - ' 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.

我真的陷入困境,无法在其他任何地方找到任何解决方案。请帮忙。提前谢谢!

1 个答案:

答案 0 :(得分:0)

在您更新资产注册表的逻辑部分中,您正在使用事务中不存在的变量whizcoin。在模型文件中,为此使用名称wc。用AssetRegistry.update(distributeCoins.whizcoin)替换AssetRegistry.update(distributeCoins.wc)可以解决您的问题。