Merge branch 'development' into refactor/website
* development: Introduce an identityCommandBuilder Define types for methodID Define types for ethereumjs-abi Install types for yargs Fix comments Fix linter issues Fix linter error Rename SubscriptionOpts to BlockRange
This commit is contained in:
commit
06bd5a9b03
@ -1,10 +1,11 @@
|
||||
# CHANGELOG
|
||||
|
||||
v0.28.0 - _TBD_
|
||||
v0.x.x - _TBD, 2017_
|
||||
------------------------
|
||||
* Add `etherTokenAddress` arg to `depositAsync` and `withdrawAsync` methods on `zeroEx.etherToken` (#267)
|
||||
* Removed accidentally included `unsubscribeAll` method from `zeroEx.proxy`, `zeroEx.etherToken` and `zeroEx.tokenRegistry` (#267)
|
||||
* Removed `etherTokenContractAddress` from `ZeroEx` constructor arg `ZeroExConfig` (#267)
|
||||
* Add `etherTokenAddress` arg to `depositAsync` and `withdrawAsync` methods on `zeroEx.etherToken` (#267)
|
||||
* Removed accidentally included `unsubscribeAll` method from `zeroEx.proxy`, `zeroEx.etherToken` and `zeroEx.tokenRegistry` (#267)
|
||||
* Removed `etherTokenContractAddress` from `ZeroEx` constructor arg `ZeroExConfig` (#267)
|
||||
* Rename `SubscriptionOpts` to `BlockRange` (#272)
|
||||
|
||||
v0.27.1 - _November 28, 2017_
|
||||
------------------------
|
||||
|
@ -7,6 +7,7 @@ import * as Web3 from 'web3';
|
||||
import {
|
||||
Artifact,
|
||||
BlockParamLiteral,
|
||||
BlockRange,
|
||||
ContractEventArgs,
|
||||
ContractEvents,
|
||||
EventCallback,
|
||||
@ -14,7 +15,6 @@ import {
|
||||
InternalZeroExError,
|
||||
LogWithDecodedArgs,
|
||||
RawLog,
|
||||
SubscriptionOpts,
|
||||
ZeroExError,
|
||||
} from '../types';
|
||||
import {AbiDecoder} from '../utils/abi_decoder';
|
||||
@ -83,9 +83,9 @@ export class ContractWrapper {
|
||||
return filterToken;
|
||||
}
|
||||
protected async _getLogsAsync<ArgsType extends ContractEventArgs>(
|
||||
address: string, eventName: ContractEvents, subscriptionOpts: SubscriptionOpts,
|
||||
address: string, eventName: ContractEvents, blockRange: BlockRange,
|
||||
indexFilterValues: IndexedFilterValues, abi: Web3.ContractAbi): Promise<Array<LogWithDecodedArgs<ArgsType>>> {
|
||||
const filter = filterUtils.getFilter(address, eventName, indexFilterValues, abi, subscriptionOpts);
|
||||
const filter = filterUtils.getFilter(address, eventName, indexFilterValues, abi, blockRange);
|
||||
const logs = await this._web3Wrapper.getLogsAsync(filter);
|
||||
const logsWithDecodedArguments = _.map(logs, this._tryToDecodeLogOrNoop.bind(this));
|
||||
return logsWithDecodedArguments;
|
||||
|
@ -7,6 +7,7 @@ import * as Web3 from 'web3';
|
||||
import {artifacts} from '../artifacts';
|
||||
import {
|
||||
BlockParamLiteral,
|
||||
BlockRange,
|
||||
DecodedLogArgs,
|
||||
ECSignature,
|
||||
EventCallback,
|
||||
@ -25,7 +26,6 @@ import {
|
||||
OrderTransactionOpts,
|
||||
OrderValues,
|
||||
SignedOrder,
|
||||
SubscriptionOpts,
|
||||
ValidateOrderFillableOpts,
|
||||
} from '../types';
|
||||
import {AbiDecoder} from '../utils/abi_decoder';
|
||||
@ -616,20 +616,20 @@ export class ExchangeWrapper extends ContractWrapper {
|
||||
/**
|
||||
* Gets historical logs without creating a subscription
|
||||
* @param eventName The exchange contract event you would like to subscribe to.
|
||||
* @param subscriptionOpts Subscriptions options that let you configure the subscription.
|
||||
* @param blockRange Block range to get logs from.
|
||||
* @param indexFilterValues An object where the keys are indexed args returned by the event and
|
||||
* the value is the value you are interested in. E.g `{_from: aUserAddressHex}`
|
||||
* @return Array of logs that match the parameters
|
||||
*/
|
||||
public async getLogsAsync<ArgsType extends ExchangeContractEventArgs>(
|
||||
eventName: ExchangeEvents, subscriptionOpts: SubscriptionOpts, indexFilterValues: IndexedFilterValues,
|
||||
eventName: ExchangeEvents, blockRange: BlockRange, indexFilterValues: IndexedFilterValues,
|
||||
): Promise<Array<LogWithDecodedArgs<ArgsType>>> {
|
||||
assert.doesBelongToStringEnum('eventName', eventName, ExchangeEvents);
|
||||
assert.doesConformToSchema('subscriptionOpts', subscriptionOpts, schemas.subscriptionOptsSchema);
|
||||
assert.doesConformToSchema('blockRange', blockRange, schemas.blockRangeSchema);
|
||||
assert.doesConformToSchema('indexFilterValues', indexFilterValues, schemas.indexFilterValuesSchema);
|
||||
const exchangeContractAddress = this.getContractAddress();
|
||||
const logs = await this._getLogsAsync<ArgsType>(
|
||||
exchangeContractAddress, eventName, subscriptionOpts, indexFilterValues, artifacts.ExchangeArtifact.abi,
|
||||
exchangeContractAddress, eventName, blockRange, indexFilterValues, artifacts.ExchangeArtifact.abi,
|
||||
);
|
||||
return logs;
|
||||
}
|
||||
|
@ -5,11 +5,11 @@ import * as _ from 'lodash';
|
||||
|
||||
import {artifacts} from '../artifacts';
|
||||
import {
|
||||
BlockRange,
|
||||
EventCallback,
|
||||
IndexedFilterValues,
|
||||
LogWithDecodedArgs,
|
||||
MethodOpts,
|
||||
SubscriptionOpts,
|
||||
TokenContractEventArgs,
|
||||
TokenEvents,
|
||||
TransactionOpts,
|
||||
@ -291,20 +291,20 @@ export class TokenWrapper extends ContractWrapper {
|
||||
* Gets historical logs without creating a subscription
|
||||
* @param tokenAddress An address of the token that emmited the logs.
|
||||
* @param eventName The token contract event you would like to subscribe to.
|
||||
* @param subscriptionOpts Subscriptions options that let you configure the subscription.
|
||||
* @param blockRange Block range to get logs from.
|
||||
* @param indexFilterValues An object where the keys are indexed args returned by the event and
|
||||
* the value is the value you are interested in. E.g `{_from: aUserAddressHex}`
|
||||
* @return Array of logs that match the parameters
|
||||
*/
|
||||
public async getLogsAsync<ArgsType extends TokenContractEventArgs>(
|
||||
tokenAddress: string, eventName: TokenEvents, subscriptionOpts: SubscriptionOpts,
|
||||
tokenAddress: string, eventName: TokenEvents, blockRange: BlockRange,
|
||||
indexFilterValues: IndexedFilterValues): Promise<Array<LogWithDecodedArgs<ArgsType>>> {
|
||||
assert.isETHAddressHex('tokenAddress', tokenAddress);
|
||||
assert.doesBelongToStringEnum('eventName', eventName, TokenEvents);
|
||||
assert.doesConformToSchema('subscriptionOpts', subscriptionOpts, schemas.subscriptionOptsSchema);
|
||||
assert.doesConformToSchema('blockRange', blockRange, schemas.blockRangeSchema);
|
||||
assert.doesConformToSchema('indexFilterValues', indexFilterValues, schemas.indexFilterValuesSchema);
|
||||
const logs = await this._getLogsAsync<ArgsType>(
|
||||
tokenAddress, eventName, subscriptionOpts, indexFilterValues, artifacts.TokenArtifact.abi,
|
||||
tokenAddress, eventName, blockRange, indexFilterValues, artifacts.TokenArtifact.abi,
|
||||
);
|
||||
return logs;
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ export {
|
||||
ExchangeEvents,
|
||||
TokenEvents,
|
||||
IndexedFilterValues,
|
||||
SubscriptionOpts,
|
||||
BlockRange,
|
||||
BlockParam,
|
||||
OrderCancellationRequest,
|
||||
OrderFillRequest,
|
||||
|
@ -217,7 +217,7 @@ export enum BlockParamLiteral {
|
||||
|
||||
export type BlockParam = BlockParamLiteral|number;
|
||||
|
||||
export interface SubscriptionOpts {
|
||||
export interface BlockRange {
|
||||
fromBlock: BlockParam;
|
||||
toBlock: BlockParam;
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import * as _ from 'lodash';
|
||||
import * as uuid from 'uuid/v4';
|
||||
import * as Web3 from 'web3';
|
||||
|
||||
import {ContractEvents, IndexedFilterValues, SubscriptionOpts} from '../types';
|
||||
import {BlockRange, ContractEvents, IndexedFilterValues} from '../types';
|
||||
|
||||
const TOPIC_LENGTH = 32;
|
||||
|
||||
@ -14,7 +14,7 @@ export const filterUtils = {
|
||||
},
|
||||
getFilter(address: string, eventName: ContractEvents,
|
||||
indexFilterValues: IndexedFilterValues, abi: Web3.ContractAbi,
|
||||
subscriptionOpts?: SubscriptionOpts): Web3.FilterObject {
|
||||
blockRange?: BlockRange): Web3.FilterObject {
|
||||
const eventAbi = _.find(abi, {name: eventName}) as Web3.EventAbi;
|
||||
const eventSignature = filterUtils.getEventSignatureFromAbiByName(eventAbi, eventName);
|
||||
const topicForEventSignature = ethUtil.addHexPrefix(jsSHA3.keccak256(eventSignature));
|
||||
@ -24,9 +24,9 @@ export const filterUtils = {
|
||||
address,
|
||||
topics,
|
||||
};
|
||||
if (!_.isUndefined(subscriptionOpts)) {
|
||||
if (!_.isUndefined(blockRange)) {
|
||||
filter = {
|
||||
...subscriptionOpts,
|
||||
...blockRange,
|
||||
...filter,
|
||||
};
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import 'mocha';
|
||||
import * as Web3 from 'web3';
|
||||
|
||||
import {
|
||||
BlockRange,
|
||||
DecodedLogEvent,
|
||||
ExchangeContractErrs,
|
||||
ExchangeEvents,
|
||||
@ -13,7 +14,6 @@ import {
|
||||
OrderCancellationRequest,
|
||||
OrderFillRequest,
|
||||
SignedOrder,
|
||||
SubscriptionOpts,
|
||||
Token,
|
||||
ZeroEx,
|
||||
} from '../src';
|
||||
@ -760,7 +760,7 @@ describe('ExchangeWrapper', () => {
|
||||
let takerAddress: string;
|
||||
const fillableAmount = new BigNumber(5);
|
||||
const shouldThrowOnInsufficientBalanceOrAllowance = true;
|
||||
const subscriptionOpts: SubscriptionOpts = {
|
||||
const blockRange: BlockRange = {
|
||||
fromBlock: 0,
|
||||
toBlock: BlockParamLiteral.Latest,
|
||||
};
|
||||
@ -781,7 +781,7 @@ describe('ExchangeWrapper', () => {
|
||||
await zeroEx.awaitTransactionMinedAsync(txHash);
|
||||
const eventName = ExchangeEvents.LogFill;
|
||||
const indexFilterValues = {};
|
||||
const logs = await zeroEx.exchange.getLogsAsync(eventName, subscriptionOpts, indexFilterValues);
|
||||
const logs = await zeroEx.exchange.getLogsAsync(eventName, blockRange, indexFilterValues);
|
||||
expect(logs).to.have.length(1);
|
||||
expect(logs[0].event).to.be.equal(eventName);
|
||||
});
|
||||
@ -795,7 +795,7 @@ describe('ExchangeWrapper', () => {
|
||||
await zeroEx.awaitTransactionMinedAsync(txHash);
|
||||
const differentEventName = ExchangeEvents.LogCancel;
|
||||
const indexFilterValues = {};
|
||||
const logs = await zeroEx.exchange.getLogsAsync(differentEventName, subscriptionOpts, indexFilterValues);
|
||||
const logs = await zeroEx.exchange.getLogsAsync(differentEventName, blockRange, indexFilterValues);
|
||||
expect(logs).to.have.length(0);
|
||||
});
|
||||
it('should only get the logs with the correct indexed fields', async () => {
|
||||
@ -821,7 +821,7 @@ describe('ExchangeWrapper', () => {
|
||||
maker: differentMakerAddress,
|
||||
};
|
||||
const logs = await zeroEx.exchange.getLogsAsync<LogFillContractEventArgs>(
|
||||
eventName, subscriptionOpts, indexFilterValues,
|
||||
eventName, blockRange, indexFilterValues,
|
||||
);
|
||||
expect(logs).to.have.length(1);
|
||||
const args = logs[0].args;
|
||||
|
@ -7,8 +7,8 @@ import * as Web3 from 'web3';
|
||||
|
||||
import {
|
||||
ApprovalContractEventArgs,
|
||||
BlockRange,
|
||||
DecodedLogEvent,
|
||||
SubscriptionOpts,
|
||||
Token,
|
||||
TokenEvents,
|
||||
TransferContractEventArgs,
|
||||
@ -433,7 +433,7 @@ describe('TokenWrapper', () => {
|
||||
describe('#getLogsAsync', () => {
|
||||
let tokenAddress: string;
|
||||
let tokenTransferProxyAddress: string;
|
||||
const subscriptionOpts: SubscriptionOpts = {
|
||||
const blockRange: BlockRange = {
|
||||
fromBlock: 0,
|
||||
toBlock: BlockParamLiteral.Latest,
|
||||
};
|
||||
@ -449,7 +449,7 @@ describe('TokenWrapper', () => {
|
||||
const eventName = TokenEvents.Approval;
|
||||
const indexFilterValues = {};
|
||||
const logs = await zeroEx.token.getLogsAsync<ApprovalContractEventArgs>(
|
||||
tokenAddress, eventName, subscriptionOpts, indexFilterValues,
|
||||
tokenAddress, eventName, blockRange, indexFilterValues,
|
||||
);
|
||||
expect(logs).to.have.length(1);
|
||||
const args = logs[0].args;
|
||||
@ -464,7 +464,7 @@ describe('TokenWrapper', () => {
|
||||
const differentEventName = TokenEvents.Transfer;
|
||||
const indexFilterValues = {};
|
||||
const logs = await zeroEx.token.getLogsAsync(
|
||||
tokenAddress, differentEventName, subscriptionOpts, indexFilterValues,
|
||||
tokenAddress, differentEventName, blockRange, indexFilterValues,
|
||||
);
|
||||
expect(logs).to.have.length(0);
|
||||
});
|
||||
@ -478,7 +478,7 @@ describe('TokenWrapper', () => {
|
||||
_owner: coinbase,
|
||||
};
|
||||
const logs = await zeroEx.token.getLogsAsync<ApprovalContractEventArgs>(
|
||||
tokenAddress, eventName, subscriptionOpts, indexFilterValues,
|
||||
tokenAddress, eventName, blockRange, indexFilterValues,
|
||||
);
|
||||
expect(logs).to.have.length(1);
|
||||
const args = logs[0].args;
|
||||
|
@ -38,7 +38,7 @@
|
||||
"@types/handlebars": "^4.0.36",
|
||||
"@types/mkdirp": "^0.5.1",
|
||||
"@types/node": "^8.0.53",
|
||||
"@types/yargs": "^8.0.2",
|
||||
"@types/yargs": "^10.0.0",
|
||||
"npm-run-all": "^4.1.2",
|
||||
"shx": "^0.2.2",
|
||||
"tslint": "5.8.0",
|
||||
|
@ -23,12 +23,12 @@ const DEFAULT_GAS_PRICE = ((10 ** 9) * 2).toString();
|
||||
* Compiles all contracts with options passed in through CLI.
|
||||
* @param argv Instance of process.argv provided by yargs.
|
||||
*/
|
||||
async function onCompileCommand(args: CliOptions): Promise<void> {
|
||||
async function onCompileCommand(argv: CliOptions): Promise<void> {
|
||||
const opts: CompilerOptions = {
|
||||
contractsDir: args.contractsDir,
|
||||
networkId: args.networkId,
|
||||
optimizerEnabled: args.shouldOptimize ? 1 : 0,
|
||||
artifactsDir: args.artifactsDir,
|
||||
contractsDir: argv.contractsDir,
|
||||
networkId: argv.networkId,
|
||||
optimizerEnabled: argv.shouldOptimize ? 1 : 0,
|
||||
artifactsDir: argv.artifactsDir,
|
||||
};
|
||||
await commands.compileAsync(opts);
|
||||
}
|
||||
@ -113,6 +113,7 @@ function deployCommandBuilder(yargsInstance: any) {
|
||||
}
|
||||
|
||||
(() => {
|
||||
const identityCommandBuilder = _.identity;
|
||||
return yargs
|
||||
.option('contracts-dir', {
|
||||
type: 'string',
|
||||
@ -150,11 +151,11 @@ function deployCommandBuilder(yargsInstance: any) {
|
||||
})
|
||||
.command('compile',
|
||||
'compile contracts',
|
||||
_.noop,
|
||||
identityCommandBuilder,
|
||||
onCompileCommand)
|
||||
.command('migrate',
|
||||
'compile and deploy contracts using migration scripts',
|
||||
_.noop,
|
||||
identityCommandBuilder,
|
||||
onMigrateCommand)
|
||||
.command('deploy',
|
||||
'deploy a single contract with provided arguments',
|
||||
|
@ -1,5 +1,6 @@
|
||||
import {TxData} from '@0xproject/types';
|
||||
import * as Web3 from 'web3';
|
||||
import * as yargs from 'yargs';
|
||||
|
||||
export enum AbiType {
|
||||
Function = 'function',
|
||||
@ -32,7 +33,7 @@ export interface SolcErrors {
|
||||
[key: string]: boolean;
|
||||
}
|
||||
|
||||
export interface CliOptions {
|
||||
export interface CliOptions extends yargs.Arguments {
|
||||
artifactsDir: string;
|
||||
contractsDir: string;
|
||||
jsonrpcPort: number;
|
||||
|
8
packages/contracts/globals.d.ts
vendored
8
packages/contracts/globals.d.ts
vendored
@ -1,8 +1,5 @@
|
||||
declare module 'bn.js';
|
||||
declare module 'ethereumjs-abi';
|
||||
declare module 'chai-bignumber';
|
||||
declare module 'dirty-chai';
|
||||
declare module 'yargs';
|
||||
|
||||
// HACK: In order to merge the bignumber declaration added by chai-bignumber to the chai Assertion
|
||||
// interface we must use `namespace` as the Chai definitelyTyped definition does. Since we otherwise
|
||||
@ -31,6 +28,11 @@ declare module 'web3-eth-abi' {
|
||||
export function encodeParameters(typesArray: string[], parameters: any[]): string;
|
||||
}
|
||||
|
||||
declare module 'ethereumjs-abi' {
|
||||
const soliditySHA3: (argTypes: string[], args: any[]) => Buffer;
|
||||
const methodID: (name: string, types: string[]) => Buffer;
|
||||
}
|
||||
|
||||
// Truffle injects the following into the global scope
|
||||
declare var artifacts: any;
|
||||
declare var contract: any;
|
||||
|
@ -36,7 +36,7 @@
|
||||
"@types/lodash": "^4.14.86",
|
||||
"@types/node": "^8.0.53",
|
||||
"@types/request-promise-native": "^1.0.2",
|
||||
"@types/yargs": "^8.0.2",
|
||||
"@types/yargs": "^10.0.0",
|
||||
"chai": "^4.0.1",
|
||||
"chai-as-promised": "^7.1.0",
|
||||
"chai-as-promised-typescript-typings": "^0.0.3",
|
||||
|
@ -1,5 +1,9 @@
|
||||
# CHANGELOG
|
||||
|
||||
v0.x.x - _TBD, 2017_
|
||||
------------------------
|
||||
* Rename `subscriptionOptsSchema` to `blockRangeSchema` (#272)
|
||||
|
||||
v0.6.7 - _Nov. 14, 2017_
|
||||
------------------------
|
||||
* Re-publish JSON-schema previously published under NPM package 0x-json-schemas
|
||||
|
@ -10,8 +10,8 @@ export const blockParamSchema = {
|
||||
],
|
||||
};
|
||||
|
||||
export const subscriptionOptsSchema = {
|
||||
id: '/SubscriptionOpts',
|
||||
export const blockRangeSchema = {
|
||||
id: '/BlockRange',
|
||||
properties: {
|
||||
fromBlock: {$ref: '/BlockParam'},
|
||||
toBlock: {$ref: '/BlockParam'},
|
@ -2,6 +2,10 @@ import {
|
||||
addressSchema,
|
||||
numberSchema,
|
||||
} from '../schemas/basic_type_schemas';
|
||||
import {
|
||||
blockParamSchema,
|
||||
blockRangeSchema,
|
||||
} from '../schemas/block_range_schema';
|
||||
import {
|
||||
ecSignatureParameterSchema,
|
||||
ecSignatureSchema,
|
||||
@ -55,10 +59,6 @@ import {
|
||||
import {
|
||||
signedOrdersSchema,
|
||||
} from '../schemas/signed_orders_schema';
|
||||
import {
|
||||
blockParamSchema,
|
||||
subscriptionOptsSchema,
|
||||
} from '../schemas/subscription_opts_schema';
|
||||
import {
|
||||
tokenSchema,
|
||||
} from '../schemas/token_schema';
|
||||
@ -81,7 +81,7 @@ export const schemas = {
|
||||
signedOrderSchema,
|
||||
signedOrdersSchema,
|
||||
blockParamSchema,
|
||||
subscriptionOptsSchema,
|
||||
blockRangeSchema,
|
||||
tokenSchema,
|
||||
jsNumber,
|
||||
txDataSchema,
|
||||
|
@ -23,7 +23,7 @@ const {
|
||||
signedOrderSchema,
|
||||
signedOrdersSchema,
|
||||
blockParamSchema,
|
||||
subscriptionOptsSchema,
|
||||
blockRangeSchema,
|
||||
tokenSchema,
|
||||
jsNumber,
|
||||
txDataSchema,
|
||||
@ -170,21 +170,21 @@ describe('Schema', () => {
|
||||
validateAgainstSchema(testCases, blockParamSchema, shouldFail);
|
||||
});
|
||||
});
|
||||
describe('#subscriptionOptsSchema', () => {
|
||||
describe('#blockRangeSchema', () => {
|
||||
it('should validate valid subscription opts', () => {
|
||||
const testCases = [
|
||||
{fromBlock: 42, toBlock: 'latest'},
|
||||
{fromBlock: 42},
|
||||
{},
|
||||
];
|
||||
validateAgainstSchema(testCases, subscriptionOptsSchema);
|
||||
validateAgainstSchema(testCases, blockRangeSchema);
|
||||
});
|
||||
it('should fail for invalid subscription opts', () => {
|
||||
const testCases = [
|
||||
{fromBlock: '42'},
|
||||
];
|
||||
const shouldFail = true;
|
||||
validateAgainstSchema(testCases, subscriptionOptsSchema, shouldFail);
|
||||
validateAgainstSchema(testCases, blockRangeSchema, shouldFail);
|
||||
});
|
||||
});
|
||||
describe('#tokenSchema', () => {
|
||||
|
@ -1,5 +1,6 @@
|
||||
import {
|
||||
BlockParam,
|
||||
BlockRange,
|
||||
DecodedLogEvent,
|
||||
ExchangeContractEventArgs,
|
||||
ExchangeEvents,
|
||||
@ -9,7 +10,6 @@ import {
|
||||
LogWithDecodedArgs,
|
||||
Order,
|
||||
SignedOrder,
|
||||
SubscriptionOpts,
|
||||
Token as ZeroExToken,
|
||||
TransactionReceiptWithDecodedLogs,
|
||||
ZeroEx,
|
||||
@ -524,12 +524,12 @@ export class Blockchain {
|
||||
}
|
||||
private async fetchHistoricalExchangeLogFillEventsAsync(indexFilterValues: IndexedFilterValues) {
|
||||
const fromBlock = tradeHistoryStorage.getFillsLatestBlock(this.userAddress, this.networkId);
|
||||
const subscriptionOpts: SubscriptionOpts = {
|
||||
const blockRange: BlockRange = {
|
||||
fromBlock,
|
||||
toBlock: 'latest' as BlockParam,
|
||||
};
|
||||
const decodedLogs = await this.zeroEx.exchange.getLogsAsync<LogFillContractEventArgs>(
|
||||
ExchangeEvents.LogFill, subscriptionOpts, indexFilterValues,
|
||||
ExchangeEvents.LogFill, blockRange, indexFilterValues,
|
||||
);
|
||||
for (const decodedLog of decodedLogs) {
|
||||
if (!this.doesLogEventInvolveUser(decodedLog)) {
|
||||
|
@ -95,6 +95,7 @@ const docsInfoConfig: DocsInfoConfig = {
|
||||
'ExchangeEvents',
|
||||
'IndexedFilterValues',
|
||||
'SubscriptionOpts',
|
||||
'BlockRange',
|
||||
'BlockParam',
|
||||
'OrderFillOrKillRequest',
|
||||
'OrderCancellationRequest',
|
||||
|
@ -266,6 +266,10 @@
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/yargs@^10.0.0":
|
||||
version "10.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-10.0.0.tgz#b93aa88155fe5106cddf3f934517411ca2a45939"
|
||||
|
||||
"@types/yargs@^8.0.2":
|
||||
version "8.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-8.0.2.tgz#0f9c7b236e2d78cd8f4b6502de15d0728aa29385"
|
||||
|
Loading…
x
Reference in New Issue
Block a user