aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/contracts/src/utils/exchange_wrapper.ts14
-rw-r--r--packages/contracts/src/utils/log_decoder.ts9
2 files changed, 13 insertions, 10 deletions
diff --git a/packages/contracts/src/utils/exchange_wrapper.ts b/packages/contracts/src/utils/exchange_wrapper.ts
index f86b507e9..788bf07f4 100644
--- a/packages/contracts/src/utils/exchange_wrapper.ts
+++ b/packages/contracts/src/utils/exchange_wrapper.ts
@@ -36,7 +36,7 @@ export class ExchangeWrapper {
const tx = await this._zeroEx.awaitTransactionMinedAsync(txHash);
tx.logs = _.filter(tx.logs, log => log.address === this._exchange.address);
tx.logs = _.map(tx.logs, log => {
- const logWithDecodedArgs = this._logDecoder.tryToDecodeLogOrNoop(log);
+ const logWithDecodedArgs = this._logDecoder.decodeLogOrThrow(log);
wrapLogBigNumbers(logWithDecodedArgs);
return logWithDecodedArgs;
});
@@ -57,7 +57,7 @@ export class ExchangeWrapper {
const tx = await this._zeroEx.awaitTransactionMinedAsync(txHash);
tx.logs = _.filter(tx.logs, log => log.address === this._exchange.address);
tx.logs = _.map(tx.logs, log => {
- const logWithDecodedArgs = this._logDecoder.tryToDecodeLogOrNoop(log);
+ const logWithDecodedArgs = this._logDecoder.decodeLogOrThrow(log);
wrapLogBigNumbers(logWithDecodedArgs);
return logWithDecodedArgs;
});
@@ -81,7 +81,7 @@ export class ExchangeWrapper {
const tx = await this._zeroEx.awaitTransactionMinedAsync(txHash);
tx.logs = _.filter(tx.logs, log => log.address === this._exchange.address);
tx.logs = _.map(tx.logs, log => {
- const logWithDecodedArgs = this._logDecoder.tryToDecodeLogOrNoop(log);
+ const logWithDecodedArgs = this._logDecoder.decodeLogOrThrow(log);
wrapLogBigNumbers(logWithDecodedArgs);
return logWithDecodedArgs;
});
@@ -105,7 +105,7 @@ export class ExchangeWrapper {
const tx = await this._zeroEx.awaitTransactionMinedAsync(txHash);
tx.logs = _.filter(tx.logs, log => log.address === this._exchange.address);
tx.logs = _.map(tx.logs, log => {
- const logWithDecodedArgs = this._logDecoder.tryToDecodeLogOrNoop(log);
+ const logWithDecodedArgs = this._logDecoder.decodeLogOrThrow(log);
wrapLogBigNumbers(logWithDecodedArgs);
return logWithDecodedArgs;
});
@@ -129,7 +129,7 @@ export class ExchangeWrapper {
const tx = await this._zeroEx.awaitTransactionMinedAsync(txHash);
tx.logs = _.filter(tx.logs, log => log.address === this._exchange.address);
tx.logs = _.map(tx.logs, log => {
- const logWithDecodedArgs = this._logDecoder.tryToDecodeLogOrNoop(log);
+ const logWithDecodedArgs = this._logDecoder.decodeLogOrThrow(log);
wrapLogBigNumbers(logWithDecodedArgs);
return logWithDecodedArgs;
});
@@ -153,7 +153,7 @@ export class ExchangeWrapper {
const tx = await this._zeroEx.awaitTransactionMinedAsync(txHash);
tx.logs = _.filter(tx.logs, log => log.address === this._exchange.address);
tx.logs = _.map(tx.logs, log => {
- const logWithDecodedArgs = this._logDecoder.tryToDecodeLogOrNoop(log);
+ const logWithDecodedArgs = this._logDecoder.decodeLogOrThrow(log);
wrapLogBigNumbers(logWithDecodedArgs);
return logWithDecodedArgs;
});
@@ -174,7 +174,7 @@ export class ExchangeWrapper {
const tx = await this._zeroEx.awaitTransactionMinedAsync(txHash);
tx.logs = _.filter(tx.logs, log => log.address === this._exchange.address);
tx.logs = _.map(tx.logs, log => {
- const logWithDecodedArgs = this._logDecoder.tryToDecodeLogOrNoop(log);
+ const logWithDecodedArgs = this._logDecoder.decodeLogOrThrow(log);
wrapLogBigNumbers(logWithDecodedArgs);
return logWithDecodedArgs;
});
diff --git a/packages/contracts/src/utils/log_decoder.ts b/packages/contracts/src/utils/log_decoder.ts
index 89f641078..d8685e3d7 100644
--- a/packages/contracts/src/utils/log_decoder.ts
+++ b/packages/contracts/src/utils/log_decoder.ts
@@ -22,8 +22,11 @@ export class LogDecoder {
});
this._abiDecoder = new AbiDecoder(abiArrays);
}
- public tryToDecodeLogOrNoop<ArgsType>(log: Web3.LogEntry): LogWithDecodedArgs<ArgsType> | RawLog {
- const logWithDecodedArgs = this._abiDecoder.tryToDecodeLogOrNoop(log);
- return logWithDecodedArgs;
+ public decodeLogOrThrow<ArgsType>(log: Web3.LogEntry): LogWithDecodedArgs<ArgsType> | RawLog {
+ const logWithDecodedArgsOrLog = this._abiDecoder.tryToDecodeLogOrNoop(log);
+ if (_.isUndefined((logWithDecodedArgsOrLog as LogWithDecodedArgs<ArgsType>).args)) {
+ throw new Error(`Unable to decode log: ${JSON.stringify(log)}`);
+ }
+ return logWithDecodedArgsOrLog;
}
}