Add some missed underscores, update changelog and comments
This commit is contained in:
		@@ -127,7 +127,7 @@ export class OrderStateWatcher {
 | 
			
		||||
        }
 | 
			
		||||
        delete this._orderByOrderHash[orderHash];
 | 
			
		||||
        delete this._orderStateByOrderHashCache[orderHash];
 | 
			
		||||
        const exchange = (this._orderFilledCancelledLazyStore as any).exchange as ExchangeWrapper;
 | 
			
		||||
        const exchange = (this._orderFilledCancelledLazyStore as any)._exchange as ExchangeWrapper;
 | 
			
		||||
        const zrxTokenAddress = exchange.getZRXTokenAddress();
 | 
			
		||||
        this._removeFromDependentOrderHashes(signedOrder.maker, zrxTokenAddress, orderHash);
 | 
			
		||||
        this._removeFromDependentOrderHashes(signedOrder.maker, signedOrder.makerTokenAddress, orderHash);
 | 
			
		||||
@@ -351,7 +351,7 @@ export class OrderStateWatcher {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    private _getZRXTokenAddress(): string {
 | 
			
		||||
        const exchange = (this._orderFilledCancelledLazyStore as any).exchange as ExchangeWrapper;
 | 
			
		||||
        const exchange = (this._orderFilledCancelledLazyStore as any)._exchange as ExchangeWrapper;
 | 
			
		||||
        const zrxTokenAddress = exchange.getZRXTokenAddress();
 | 
			
		||||
        return zrxTokenAddress;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -81,7 +81,7 @@ export class OrderStateUtils {
 | 
			
		||||
        // If we pass it from the instantiator - there is no opportunity to get it there
 | 
			
		||||
        // because JS doesn't support async constructors.
 | 
			
		||||
        // Moreover - it's cached under the hood so it's equivalent to an async constructor.
 | 
			
		||||
        const exchange = (this._orderFilledCancelledLazyStore as any).exchange as ExchangeWrapper;
 | 
			
		||||
        const exchange = (this._orderFilledCancelledLazyStore as any)._exchange as ExchangeWrapper;
 | 
			
		||||
        const zrxTokenAddress = exchange.getZRXTokenAddress();
 | 
			
		||||
        const orderHash = ZeroEx.getOrderHashHex(signedOrder);
 | 
			
		||||
        const makerBalance = await this._balanceAndProxyAllowanceLazyStore.getBalanceAsync(
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@ describe('ExchangeTransferSimulator', () => {
 | 
			
		||||
            await exchangeTransferSimulator.transferFromAsync(
 | 
			
		||||
                exampleTokenAddress, sender, recipient, transferAmount, TradeSide.Taker, TransferType.Trade,
 | 
			
		||||
            );
 | 
			
		||||
            const store = (exchangeTransferSimulator as any).store;
 | 
			
		||||
            const store = (exchangeTransferSimulator as any)._store;
 | 
			
		||||
            const senderBalance = await store.getBalanceAsync(exampleTokenAddress, sender);
 | 
			
		||||
            const recipientBalance = await store.getBalanceAsync(exampleTokenAddress, recipient);
 | 
			
		||||
            const senderProxyAllowance = await store.getProxyAllowanceAsync(exampleTokenAddress, sender);
 | 
			
		||||
@@ -81,7 +81,7 @@ describe('ExchangeTransferSimulator', () => {
 | 
			
		||||
            await exchangeTransferSimulator.transferFromAsync(
 | 
			
		||||
                exampleTokenAddress, sender, recipient, transferAmount, TradeSide.Taker, TransferType.Trade,
 | 
			
		||||
            );
 | 
			
		||||
            const store = (exchangeTransferSimulator as any).store;
 | 
			
		||||
            const store = (exchangeTransferSimulator as any)._store;
 | 
			
		||||
            const senderBalance = await store.getBalanceAsync(exampleTokenAddress, sender);
 | 
			
		||||
            const recipientBalance = await store.getBalanceAsync(exampleTokenAddress, recipient);
 | 
			
		||||
            const senderProxyAllowance = await store.getProxyAllowanceAsync(exampleTokenAddress, sender);
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@ export class TokenUtils {
 | 
			
		||||
        return zrxToken;
 | 
			
		||||
    }
 | 
			
		||||
    public getWethTokenOrThrow(): Token {
 | 
			
		||||
        const wethToken = _.find(this.tokens, {symbol: WETH_TOKEN_SYMBOL});
 | 
			
		||||
        const wethToken = _.find(this._tokens, {symbol: WETH_TOKEN_SYMBOL});
 | 
			
		||||
        if (_.isUndefined(wethToken)) {
 | 
			
		||||
            throw new Error(InternalZeroExError.WethNotInTokenRegistry);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -15,28 +15,28 @@ export class Contract implements Web3.ContractInstance {
 | 
			
		||||
    // and we don't know their types in advance
 | 
			
		||||
    [name: string]: any;
 | 
			
		||||
    constructor(web3ContractInstance: Web3.ContractInstance, defaults: Partial<Web3.TxData>) {
 | 
			
		||||
        this.contract = web3ContractInstance;
 | 
			
		||||
        this._contract = web3ContractInstance;
 | 
			
		||||
        this.address = web3ContractInstance.address;
 | 
			
		||||
        this.abi = web3ContractInstance.abi;
 | 
			
		||||
        this.defaults = defaults;
 | 
			
		||||
        this.populateEvents();
 | 
			
		||||
        this.populateFunctions();
 | 
			
		||||
        this.validator = new SchemaValidator();
 | 
			
		||||
        this._defaults = defaults;
 | 
			
		||||
        this._populateEvents();
 | 
			
		||||
        this._populateFunctions();
 | 
			
		||||
        this._validator = new SchemaValidator();
 | 
			
		||||
    }
 | 
			
		||||
    private _populateFunctions(): void {
 | 
			
		||||
        const functionsAbi = _.filter(this.abi, abiPart => abiPart.type === AbiType.Function);
 | 
			
		||||
        _.forEach(functionsAbi, (functionAbi: Web3.MethodAbi) => {
 | 
			
		||||
            if (functionAbi.constant) {
 | 
			
		||||
                const cbStyleCallFunction = this.contract[functionAbi.name].call;
 | 
			
		||||
                const cbStyleCallFunction = this._contract[functionAbi.name].call;
 | 
			
		||||
                this[functionAbi.name] = {
 | 
			
		||||
                    callAsync: promisify(cbStyleCallFunction, this.contract),
 | 
			
		||||
                    callAsync: promisify(cbStyleCallFunction, this._contract),
 | 
			
		||||
                };
 | 
			
		||||
            } else {
 | 
			
		||||
                const cbStyleFunction = this.contract[functionAbi.name];
 | 
			
		||||
                const cbStyleEstimateGasFunction = this.contract[functionAbi.name].estimateGas;
 | 
			
		||||
                const cbStyleFunction = this._contract[functionAbi.name];
 | 
			
		||||
                const cbStyleEstimateGasFunction = this._contract[functionAbi.name].estimateGas;
 | 
			
		||||
                this[functionAbi.name] = {
 | 
			
		||||
                    estimateGasAsync: promisify(cbStyleEstimateGasFunction, this.contract),
 | 
			
		||||
                    sendTransactionAsync: this.promisifyWithDefaultParams(cbStyleFunction),
 | 
			
		||||
                    estimateGasAsync: promisify(cbStyleEstimateGasFunction, this._contract),
 | 
			
		||||
                    sendTransactionAsync: this._promisifyWithDefaultParams(cbStyleFunction),
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
@@ -44,7 +44,7 @@ export class Contract implements Web3.ContractInstance {
 | 
			
		||||
    private _populateEvents(): void {
 | 
			
		||||
        const eventsAbi = _.filter(this.abi, abiPart => abiPart.type === AbiType.Event);
 | 
			
		||||
        _.forEach(eventsAbi, (eventAbi: Web3.EventAbi) => {
 | 
			
		||||
            this[eventAbi.name] = this.contract[eventAbi.name];
 | 
			
		||||
            this[eventAbi.name] = this._contract[eventAbi.name];
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
    private _promisifyWithDefaultParams(fn: (...args: any[]) => void): (...args: any[]) => Promise<any> {
 | 
			
		||||
@@ -52,11 +52,11 @@ export class Contract implements Web3.ContractInstance {
 | 
			
		||||
            const promise = new Promise((resolve, reject) => {
 | 
			
		||||
                const lastArg = args[args.length - 1];
 | 
			
		||||
                let txData: Partial<Web3.TxData> = {};
 | 
			
		||||
                if (this.isTxData(lastArg)) {
 | 
			
		||||
                if (this._isTxData(lastArg)) {
 | 
			
		||||
                    txData = args.pop();
 | 
			
		||||
                }
 | 
			
		||||
                txData = {
 | 
			
		||||
                    ...this.defaults,
 | 
			
		||||
                    ...this._defaults,
 | 
			
		||||
                    ...txData,
 | 
			
		||||
                };
 | 
			
		||||
                const callback = (err: Error, data: any) => {
 | 
			
		||||
@@ -68,14 +68,14 @@ export class Contract implements Web3.ContractInstance {
 | 
			
		||||
                };
 | 
			
		||||
                args.push(txData);
 | 
			
		||||
                args.push(callback);
 | 
			
		||||
                fn.apply(this.contract, args);
 | 
			
		||||
                fn.apply(this._contract, args);
 | 
			
		||||
            });
 | 
			
		||||
            return promise;
 | 
			
		||||
        };
 | 
			
		||||
        return promisifiedWithDefaultParams;
 | 
			
		||||
    }
 | 
			
		||||
    private _isTxData(lastArg: any): boolean {
 | 
			
		||||
        const isValid = this.validator.isValid(lastArg, schemas.txDataSchema);
 | 
			
		||||
        const isValid = this._validator.isValid(lastArg, schemas.txDataSchema);
 | 
			
		||||
        return isValid;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@
 | 
			
		||||
v0.x.x - TBD
 | 
			
		||||
------------------------
 | 
			
		||||
    * Added custom 'underscore-privates' rule, requiring underscores to be prepended to private variable names
 | 
			
		||||
    * Because our tools can be used in both a TS and JS environment, we want to make the private methods of any public facing interface show up at the bottom of auto-complete lists. Additionally, we wanted to remain consistent with respect to our usage of underscores in order to enforce this rule with a linter rule, rather then manual code reviews.
 | 
			
		||||
 | 
			
		||||
v0.3.0 - _December 20, 2017_
 | 
			
		||||
------------------------
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
import * as Lint from 'tslint';
 | 
			
		||||
import * as ts from 'typescript';
 | 
			
		||||
 | 
			
		||||
const UNDERSCORE = '_'.charCodeAt(0);
 | 
			
		||||
const UNDERSCORE = '_';
 | 
			
		||||
 | 
			
		||||
type RelevantClassMember =
 | 
			
		||||
    | ts.MethodDeclaration
 | 
			
		||||
@@ -9,15 +9,15 @@ type RelevantClassMember =
 | 
			
		||||
    | ts.GetAccessorDeclaration
 | 
			
		||||
    | ts.SetAccessorDeclaration;
 | 
			
		||||
 | 
			
		||||
// Based on: https://github.com/DanielRosenwasser/underscore-privates-tslint-rule
 | 
			
		||||
// Copied from: https://github.com/DanielRosenwasser/underscore-privates-tslint-rule
 | 
			
		||||
// The version on github is not published on npm
 | 
			
		||||
export class Rule extends Lint.Rules.AbstractRule {
 | 
			
		||||
    public static FAILURE_STRING = 'private members name must be prefixed with an underscore';
 | 
			
		||||
    public static FAILURE_STRING = 'private members must be prefixed with an underscore';
 | 
			
		||||
 | 
			
		||||
    public apply(sourceFile: ts.SourceFile): Lint.RuleFailure[] {
 | 
			
		||||
        return this.applyWithFunction(sourceFile, walk);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function walk(ctx: Lint.WalkContext<void>): void {
 | 
			
		||||
    traverse(ctx.sourceFile);
 | 
			
		||||
 | 
			
		||||
@@ -26,23 +26,19 @@ function walk(ctx: Lint.WalkContext<void>): void {
 | 
			
		||||
        return ts.forEachChild(node, traverse);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function checkNodeForViolations(ctx: Lint.WalkContext<void>, node: ts.Node): void {
 | 
			
		||||
    if (!isRelevantClassMember(node)) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // The declaration might have a computed property name or a numeric name.
 | 
			
		||||
    const name = node.name;
 | 
			
		||||
    if (!nameIsIdentifier(name)) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!nameStartsWithUnderscore(name.text) && memberIsPrivate(node)) {
 | 
			
		||||
        ctx.addFailureAtNode(name, Rule.FAILURE_STRING);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function isRelevantClassMember(node: ts.Node): node is RelevantClassMember {
 | 
			
		||||
    switch (node.kind) {
 | 
			
		||||
        case ts.SyntaxKind.MethodDeclaration:
 | 
			
		||||
@@ -54,15 +50,12 @@ function isRelevantClassMember(node: ts.Node): node is RelevantClassMember {
 | 
			
		||||
            return false;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function nameStartsWithUnderscore(text: string) {
 | 
			
		||||
    return text.charCodeAt(0) === UNDERSCORE;
 | 
			
		||||
    return text.charCodeAt(0) === UNDERSCORE.charCodeAt(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function memberIsPrivate(node: ts.Declaration) {
 | 
			
		||||
    return Lint.hasModifier(node.modifiers, ts.SyntaxKind.PrivateKeyword);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function nameIsIdentifier(node: ts.Node): node is ts.Identifier {
 | 
			
		||||
    return node.kind === ts.SyntaxKind.Identifier;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user