我的问题是我在模型文件中定义事务,然后在JS脚本中使用它,但会引发错误"错误:找不到任何可以执行交易的功能。"当我尝试执行执行时,它会在代码的测试期间发生
我的模式文件 /** *新型号文件 */
/**
* New model file
*/
namespace org.acme.bank
participant accountholder identified by bankid
{
o String bankid
o String firstname
o String lastname
o String address
}
asset acount identified by accno
{
o String accno
o String balance
-->accountholder customer1
}
transaction amountTransfer
{
o String tid
o String amount
-->acount owner1
-->acount owner2
}
我的脚本.js
/**
* Track the trade of a commodity from one trader to another
* @param {org.acme.bank.amountTransfer} Transfer - to trade
* @transactiton
*/
function Transfer(Transfer)
{
var amount1=Transfer.owner1.balance
var amount2=Transfer.owner2.balance
if(Transfer.amount>amount1)
{
return 0;
}else
{
owner1.balance-=Transfer.amount
owner2.balance+=Transfer.amount
return getAssetRegistry('org.acme.bank.acount')
.then(function (assetRegistry) {
return assetRegistry.update(Transfer.owner1);
}).then(function () {
return getAssetRegistry('org.acme.bank.acount');
}).then(function (assetRegistry) {
return assetRegistry.update(Transfer.owner2);
});
}
}
预先感谢您
我在 my script.js
中找到了一个很小的错别字@transactiton
,然后我将其更换,然后不再发生错误。
我认为下面的代码可以按照您的预期工作。
/**
* Track the trade of a commodity from one trader to another
* @param {org.acme.bank.amountTransfer} Transfer - to trade
* @transaction
*/
function Transfer(Transfer)
{
var amount1=Transfer.owner1.balance
var amount2=Transfer.owner2.balance
if(Transfer.amount>amount1)
{
return 0;
}else
{
var owner1 = Transfer.owner1
var owner2 = Transfer.owner2
owner1.balance-=Transfer.amount
owner2.balance+=Transfer.amount
return getAssetRegistry('org.acme.bank.acount')
.then(function (assetRegistry) {
return assetRegistry.update(owner1);
}).then(function () {
return getAssetRegistry('org.acme.bank.acount');
}).then(function (assetRegistry) {
return assetRegistry.update(owner2);
});
}
}
现在,模型中的balance
和amount
字段的类型已更改为Integer
。