Hyperledger Composer 游乐场执行错误

Hyperledger Composer Playground Execution Error

我正在尝试在 Hyperledger Composer Playground 中创建我自己的加密货币-'WhizCoin'。 我已经创建了基本模型和脚本文件。 2 个参与者 - 发送者和接收者,1 个资产 - 硬币,1 个交易 - DistributeCoins。

/* 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.

我真的被困住了,在其他任何地方都找不到任何解决方案。请帮忙。提前致谢!

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