diff --git a/fabric-network/src/events.ts b/fabric-network/src/events.ts index 22ab5128d3..dcd7367ff9 100644 --- a/fabric-network/src/events.ts +++ b/fabric-network/src/events.ts @@ -24,6 +24,7 @@ export interface TransactionEvent { getStatus(): string; getBlockEvent(): BlockEvent; getContractEvents(): ContractEvent[]; + isValid(): boolean; } export interface FilteredTransactionEvent extends TransactionEvent { diff --git a/fabric-network/src/impl/event/filteredevents.ts b/fabric-network/src/impl/event/filteredevents.ts index c3daedfe20..0c450b99a5 100644 --- a/fabric-network/src/impl/event/filteredevents.ts +++ b/fabric-network/src/impl/event/filteredevents.ts @@ -18,6 +18,7 @@ function getCodeToStatusMap(): { [code: number]: string } { } const codeToStatusMap = getCodeToStatusMap(); +const validStatus = 'VALID'; export function newFilteredBlockEvent(eventInfo: EventInfo): FilteredBlockEvent { let transactionEvents: FilteredTransactionEvent[] | undefined; @@ -63,7 +64,8 @@ export function newCommitEvent(peer: Endorser, eventInfo: EventInfo): CommitEven getTransactionId: () => transactionId, getStatus: () => eventInfo.status!, getContractEvents: () => getTransactionEvent().getContractEvents(), - getTransactionData: () => getTransactionEvent().getTransactionData() + getTransactionData: () => getTransactionEvent().getTransactionData(), + isValid: () => eventInfo.status === validStatus }; } @@ -89,7 +91,8 @@ function newFilteredTransactionEvent(blockEvent: FilteredBlockEvent, filteredTra getTransactionId: () => filteredTransaction.txid, getStatus: () => status, getContractEvents: () => getContractEvents(transactionEvent), - getTransactionData: () => filteredTransaction + getTransactionData: () => filteredTransaction, + isValid: () => status === validStatus }; return transactionEvent; diff --git a/fabric-network/src/impl/event/transactioneventhandler.ts b/fabric-network/src/impl/event/transactioneventhandler.ts index 33949b0d7a..a7d7e29edc 100644 --- a/fabric-network/src/impl/event/transactioneventhandler.ts +++ b/fabric-network/src/impl/event/transactioneventhandler.ts @@ -119,7 +119,7 @@ export class TransactionEventHandler implements TxEventHandler { } private eventCallback(error?: CommitError, event?: CommitEvent) { - if (event && event.getStatus() !== 'VALID') { + if (event && !event.isValid()) { const message = `Commit of transaction ${this.transactionId} failed on peer ${event.getPeer().name} with status ${event.getStatus()}`; this.strategyFail(new Error(message)); } diff --git a/test/ts-scenario/config/handlers/sample-transaction-event-handler.ts b/test/ts-scenario/config/handlers/sample-transaction-event-handler.ts index 62522472e2..609d96ee5d 100644 --- a/test/ts-scenario/config/handlers/sample-transaction-event-handler.ts +++ b/test/ts-scenario/config/handlers/sample-transaction-event-handler.ts @@ -82,7 +82,7 @@ class SampleTransactionEventHandler implements TxEventHandler { } private eventCallback(error?: CommitError, event?: CommitEvent) { - if (event && event.getStatus() !== 'VALID') { + if (event && !event.isValid()) { return this.fail(new Error(event.getStatus())); }