diff options
author | Leonid <logvinov.leon@gmail.com> | 2017-11-24 05:13:07 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-24 05:13:07 +0800 |
commit | 17e41f2391a73656cce2ddf43c27acd2ae6260fd (patch) | |
tree | 7eca02eb9838fec703343cb0a720f6a1e954e20c | |
parent | f97074dc84b5c45b9c487ee27ca7ed671bb6fd71 (diff) | |
parent | fcd37808d46d162b183b7c6d9aeb58ebc431caba (diff) | |
download | dexon-sol-tools-17e41f2391a73656cce2ddf43c27acd2ae6260fd.tar dexon-sol-tools-17e41f2391a73656cce2ddf43c27acd2ae6260fd.tar.gz dexon-sol-tools-17e41f2391a73656cce2ddf43c27acd2ae6260fd.tar.bz2 dexon-sol-tools-17e41f2391a73656cce2ddf43c27acd2ae6260fd.tar.lz dexon-sol-tools-17e41f2391a73656cce2ddf43c27acd2ae6260fd.tar.xz dexon-sol-tools-17e41f2391a73656cce2ddf43c27acd2ae6260fd.tar.zst dexon-sol-tools-17e41f2391a73656cce2ddf43c27acd2ae6260fd.zip |
Merge pull request #234 from 0xProject/feature/eventTypes
Make DecodedLogEvent contain web3 log under a log subkey
-rw-r--r-- | packages/0x.js/CHANGELOG.md | 4 | ||||
-rw-r--r-- | packages/0x.js/src/contract_wrappers/contract_wrapper.ts | 14 | ||||
-rw-r--r-- | packages/0x.js/src/types.ts | 5 | ||||
-rw-r--r-- | packages/0x.js/test/exchange_wrapper_test.ts | 6 | ||||
-rw-r--r-- | packages/0x.js/test/token_wrapper_test.ts | 12 |
5 files changed, 25 insertions, 16 deletions
diff --git a/packages/0x.js/CHANGELOG.md b/packages/0x.js/CHANGELOG.md index 235a6eedb..f33eab94e 100644 --- a/packages/0x.js/CHANGELOG.md +++ b/packages/0x.js/CHANGELOG.md @@ -1,5 +1,9 @@ # CHANGELOG +vx.x.x +------------------------ + * Make `DecodedLogEvent<A>` contain `LogWithDecodedArgs<A>` under log key instead of merging it in like web3 does (#234) + v0.26.0 ------------------------ * Add post-formatter for logs converting `blockNumber`, `logIndex`, `transactionIndex` from hexes to numbers (#231) diff --git a/packages/0x.js/src/contract_wrappers/contract_wrapper.ts b/packages/0x.js/src/contract_wrappers/contract_wrapper.ts index 7997b1647..c1c95c6db 100644 --- a/packages/0x.js/src/contract_wrappers/contract_wrapper.ts +++ b/packages/0x.js/src/contract_wrappers/contract_wrapper.ts @@ -95,13 +95,13 @@ export class ContractWrapper { await this._web3Wrapper.getContractInstanceFromArtifactAsync<ContractType>(artifact, addressIfExists); return contractInstance; } - private _onLogStateChanged<ArgsType extends ContractEventArgs>(removed: boolean, log: Web3.LogEntry): void { + private _onLogStateChanged<ArgsType extends ContractEventArgs>(isRemoved: boolean, log: Web3.LogEntry): void { _.forEach(this._filters, (filter: Web3.FilterObject, filterToken: string) => { if (filterUtils.matchesFilter(log, filter)) { const decodedLog = this._tryToDecodeLogOrNoop(log) as LogWithDecodedArgs<ArgsType>; const logEvent = { - ...decodedLog, - removed, + log: decodedLog, + isRemoved, }; this._filterCallbacks[filterToken](null, logEvent); } @@ -117,13 +117,13 @@ export class ContractWrapper { this._blockAndLogStreamInterval = intervalUtils.setAsyncExcludingInterval( this._reconcileBlockAsync.bind(this), constants.DEFAULT_BLOCK_POLLING_INTERVAL, ); - let removed = false; + let isRemoved = false; this._onLogAddedSubscriptionToken = this._blockAndLogStreamer.subscribeToOnLogAdded( - this._onLogStateChanged.bind(this, removed), + this._onLogStateChanged.bind(this, isRemoved), ); - removed = true; + isRemoved = true; this._onLogRemovedSubscriptionToken = this._blockAndLogStreamer.subscribeToOnLogRemoved( - this._onLogStateChanged.bind(this, removed), + this._onLogStateChanged.bind(this, isRemoved), ); } private _stopBlockAndLogStream(): void { diff --git a/packages/0x.js/src/types.ts b/packages/0x.js/src/types.ts index c3aabfd86..ac4106d0b 100644 --- a/packages/0x.js/src/types.ts +++ b/packages/0x.js/src/types.ts @@ -40,7 +40,10 @@ export type OrderValues = [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]; export type LogEvent = Web3.LogEntryEvent; -export type DecodedLogEvent<ArgsType> = Web3.DecodedLogEntryEvent<ArgsType>; +export interface DecodedLogEvent<ArgsType> { + isRemoved: boolean; + log: LogWithDecodedArgs<ArgsType>; +} export type EventCallback<ArgsType> = (err: null|Error, log?: DecodedLogEvent<ArgsType>) => void; export type EventWatcherCallback = (log: LogEvent) => void; diff --git a/packages/0x.js/test/exchange_wrapper_test.ts b/packages/0x.js/test/exchange_wrapper_test.ts index add89a3b2..4ea17ec26 100644 --- a/packages/0x.js/test/exchange_wrapper_test.ts +++ b/packages/0x.js/test/exchange_wrapper_test.ts @@ -649,7 +649,7 @@ describe('ExchangeWrapper', () => { (async () => { const callback = (err: Error, logEvent: DecodedLogEvent<LogFillContractEventArgs>) => { - expect(logEvent.event).to.be.equal(ExchangeEvents.LogFill); + expect(logEvent.log.event).to.be.equal(ExchangeEvents.LogFill); done(); }; await zeroEx.exchange.subscribeAsync( @@ -665,7 +665,7 @@ describe('ExchangeWrapper', () => { (async () => { const callback = (err: Error, logEvent: DecodedLogEvent<LogCancelContractEventArgs>) => { - expect(logEvent.event).to.be.equal(ExchangeEvents.LogCancel); + expect(logEvent.log.event).to.be.equal(ExchangeEvents.LogCancel); done(); }; await zeroEx.exchange.subscribeAsync( @@ -688,7 +688,7 @@ describe('ExchangeWrapper', () => { await zeroEx.setProviderAsync(newProvider); const callback = (err: Error, logEvent: DecodedLogEvent<LogFillContractEventArgs>) => { - expect(logEvent.event).to.be.equal(ExchangeEvents.LogFill); + expect(logEvent.log.event).to.be.equal(ExchangeEvents.LogFill); done(); }; await zeroEx.exchange.subscribeAsync( diff --git a/packages/0x.js/test/token_wrapper_test.ts b/packages/0x.js/test/token_wrapper_test.ts index 1a7cb9e40..882913793 100644 --- a/packages/0x.js/test/token_wrapper_test.ts +++ b/packages/0x.js/test/token_wrapper_test.ts @@ -361,10 +361,11 @@ describe('TokenWrapper', () => { (async () => { const callback = (err: Error, logEvent: DecodedLogEvent<TransferContractEventArgs>) => { expect(logEvent).to.not.be.undefined(); - expect(logEvent.logIndex).to.be.equal(0); - expect(logEvent.transactionIndex).to.be.equal(0); - expect(logEvent.blockNumber).to.be.a('number'); - const args = logEvent.args; + expect(logEvent.isRemoved).to.be.false(); + expect(logEvent.log.logIndex).to.be.equal(0); + expect(logEvent.log.transactionIndex).to.be.equal(0); + expect(logEvent.log.blockNumber).to.be.a('number'); + const args = logEvent.log.args; expect(args._from).to.be.equal(coinbase); expect(args._to).to.be.equal(addressWithoutFunds); expect(args._value).to.be.bignumber.equal(transferAmount); @@ -379,7 +380,8 @@ describe('TokenWrapper', () => { (async () => { const callback = (err: Error, logEvent: DecodedLogEvent<ApprovalContractEventArgs>) => { expect(logEvent).to.not.be.undefined(); - const args = logEvent.args; + expect(logEvent.isRemoved).to.be.false(); + const args = logEvent.log.args; expect(args._owner).to.be.equal(coinbase); expect(args._spender).to.be.equal(addressWithoutFunds); expect(args._value).to.be.bignumber.equal(allowanceAmount); |