在"基本样本网络"或者"贸易网络"或者"弹珠 - 演示" Hyperledger Fabric Composer的示例 - 一旦提交了事务,它就会检查数据库中是否存在资产ID。但是,它不会检查新所有者(参与者)是否确实存在。如何检查新所有者是否实际存在于创建的数据库中?
答案 0 :(得分:1)
发布的示例(类似) - 基于此代码进行交易'交易' - > https://github.com/hyperledger/composer-sample-networks/blob/master/packages/trade-network/lib/logic.js
indent inner next [
答案 1 :(得分:0)
我找到了确切的解决方案和语法..这是针对大理石交易演示,它检查参与者和资产的存在
/**
* Trade a marble to a new player
* @param {org.hyperledger_composer.marbles.TradeMarble} tradeMarble - the trade marble transaction
* @transaction
*/
function tradeMarble(tradeMarble) {
return getParticipantRegistry('org.hyperledger_composer.marbles.Player')
.then(function(playerRegistry) {
return playerRegistry.exists(tradeMarble.newOwner.getIdentifier())
})
.then(function(exists) {
if(!exists) {
throw Error('Invalid participant id')
} else {
return getAssetRegistry('org.hyperledger_composer.marbles.Marble')
.then(function (assetRegistry) {
tradeMarble.marble.owner = tradeMarble.newOwner;
return assetRegistry.update(tradeMarble.marble);
});
}
})
}