From bb46f184edf04d75fd64c040783b75f2468a7dc1 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Tue, 17 Sep 2019 10:46:58 -0700 Subject: [PATCH] Remove use of generatePseudoRandomAddress in favor of randomAddress --- contracts/coordinator/test/libs.ts | 4 +- contracts/coordinator/test/mixins.ts | 4 +- .../test/lib_eip712_exchange_domain.ts | 4 +- .../test/lib_exchange_rich_error_decoder.ts | 14 +++---- .../exchange/test/signature_validator.ts | 12 +++--- contracts/test-utils/src/address_utils.ts | 3 ++ contracts/utils/test/lib_address_array.ts | 40 +++++++++---------- 7 files changed, 42 insertions(+), 39 deletions(-) diff --git a/contracts/coordinator/test/libs.ts b/contracts/coordinator/test/libs.ts index 6e584246d7..66cf0100aa 100644 --- a/contracts/coordinator/test/libs.ts +++ b/contracts/coordinator/test/libs.ts @@ -1,4 +1,4 @@ -import { addressUtils, chaiSetup, constants, provider, txDefaults, web3Wrapper } from '@0x/contracts-test-utils'; +import { chaiSetup, constants, provider, randomAddress, txDefaults, web3Wrapper } from '@0x/contracts-test-utils'; import { BlockchainLifecycle } from '@0x/dev-utils'; import { transactionHashUtils } from '@0x/order-utils'; import { BigNumber, providerUtils } from '@0x/utils'; @@ -13,7 +13,7 @@ const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper); describe('Libs tests', () => { let coordinatorContract: CoordinatorContract; let chainId: number; - const exchangeAddress = addressUtils.generatePseudoRandomAddress(); + const exchangeAddress = randomAddress(); before(async () => { await blockchainLifecycle.startAsync(); diff --git a/contracts/coordinator/test/mixins.ts b/contracts/coordinator/test/mixins.ts index 98b039ee88..06f1f9a65b 100644 --- a/contracts/coordinator/test/mixins.ts +++ b/contracts/coordinator/test/mixins.ts @@ -1,11 +1,11 @@ import { constants as exchangeConstants, exchangeDataEncoder, ExchangeFunctionName } from '@0x/contracts-exchange'; import { - addressUtils, chaiSetup, constants, expectContractCallFailedAsync, getLatestBlockTimestampAsync, provider, + randomAddress, TransactionFactory, txDefaults, web3Wrapper, @@ -33,7 +33,7 @@ describe('Mixins tests', () => { let approvalFactory1: ApprovalFactory; let approvalFactory2: ApprovalFactory; let defaultOrder: SignedOrder; - const exchangeAddress = addressUtils.generatePseudoRandomAddress(); + const exchangeAddress = randomAddress(); let exchangeDomain: EIP712DomainWithDefaultSchema; before(async () => { diff --git a/contracts/exchange-libs/test/lib_eip712_exchange_domain.ts b/contracts/exchange-libs/test/lib_eip712_exchange_domain.ts index 56363d9771..b2bcdc2e00 100644 --- a/contracts/exchange-libs/test/lib_eip712_exchange_domain.ts +++ b/contracts/exchange-libs/test/lib_eip712_exchange_domain.ts @@ -1,4 +1,4 @@ -import { addressUtils, blockchainTests, constants, expect } from '@0x/contracts-test-utils'; +import { blockchainTests, constants, expect, randomAddress } from '@0x/contracts-test-utils'; import { BigNumber, signTypedDataUtils } from '@0x/utils'; import * as ethUtil from 'ethereumjs-util'; @@ -28,7 +28,7 @@ blockchainTests('LibEIP712ExchangeDomain', env => { }); it('should calculate the correct domain hash when verifyingContractAddressIfExists is set to a non-null address', async () => { const chainId = 1; - const verifyingContractAddress = addressUtils.generatePseudoRandomAddress(); + const verifyingContractAddress = randomAddress(); const libEIP712ExchangeDomainContract = await TestLibEIP712ExchangeDomainContract.deployFrom0xArtifactAsync( artifacts.TestLibEIP712ExchangeDomain, env.provider, diff --git a/contracts/exchange/test/lib_exchange_rich_error_decoder.ts b/contracts/exchange/test/lib_exchange_rich_error_decoder.ts index 274c69eeb5..f0c85b5394 100644 --- a/contracts/exchange/test/lib_exchange_rich_error_decoder.ts +++ b/contracts/exchange/test/lib_exchange_rich_error_decoder.ts @@ -1,11 +1,11 @@ import { - addressUtils, blockchainTests, constants, expect, hexRandom, OrderStatus, orderUtils, + randomAddress, } from '@0x/contracts-test-utils'; import { ExchangeRevertErrors, generatePseudoRandomSalt } from '@0x/order-utils'; import { BigNumber, RevertError } from '@0x/utils'; @@ -59,8 +59,8 @@ blockchainTests.resets('LibExchangeRichErrorDecoder', ({ provider, txDefaults }) (() => { const errorCode = ExchangeRevertErrors.SignatureErrorCode.Illegal; const orderHash = orderUtils.generatePseudoRandomOrderHash(); - const signer = addressUtils.generatePseudoRandomAddress(); - const validator = addressUtils.generatePseudoRandomAddress(); + const signer = randomAddress(); + const validator = randomAddress(); const data = hexRandom(ERROR_DATA_LENGTH); const signature = hexRandom(SIGNATURE_LENGTH); const errorData = hexRandom(ERROR_DATA_LENGTH); @@ -78,7 +78,7 @@ blockchainTests.resets('LibExchangeRichErrorDecoder', ({ provider, txDefaults }) (() => { const orderHash = orderUtils.generatePseudoRandomOrderHash(); - const address = addressUtils.generatePseudoRandomAddress(); + const address = randomAddress(); createDecodeTest(ExchangeRevertErrors.ExchangeInvalidContextError, [ ExchangeRevertErrors.ExchangeContextErrorCodes.InvalidMaker, orderHash, @@ -103,14 +103,14 @@ blockchainTests.resets('LibExchangeRichErrorDecoder', ({ provider, txDefaults }) })(); (() => { - const maker = addressUtils.generatePseudoRandomAddress(); - const sender = addressUtils.generatePseudoRandomAddress(); + const maker = randomAddress(); + const sender = randomAddress(); const currentEpoch = generatePseudoRandomSalt(); createDecodeTest(ExchangeRevertErrors.OrderEpochError, [maker, sender, currentEpoch]); })(); (() => { - const assetProxyAddress = addressUtils.generatePseudoRandomAddress(); + const assetProxyAddress = randomAddress(); createDecodeTest(ExchangeRevertErrors.AssetProxyExistsError, [ hexRandom(ASSET_PROXY_ID_LENGTH), assetProxyAddress, diff --git a/contracts/exchange/test/signature_validator.ts b/contracts/exchange/test/signature_validator.ts index 0c9f41b7d9..b9f8f3b10d 100644 --- a/contracts/exchange/test/signature_validator.ts +++ b/contracts/exchange/test/signature_validator.ts @@ -1,5 +1,4 @@ import { - addressUtils, blockchainTests, constants, expect, @@ -8,6 +7,7 @@ import { LogDecoder, OrderFactory, orderUtils, + randomAddress, TransactionFactory, } from '@0x/contracts-test-utils'; import { @@ -428,11 +428,11 @@ blockchainTests.resets('MixinSignatureValidator', env => { const defaultOrderParams = { ...constants.STATIC_ORDER_PARAMS, makerAddress, - feeRecipientAddress: addressUtils.generatePseudoRandomAddress(), - makerAssetData: assetDataUtils.encodeERC20AssetData(addressUtils.generatePseudoRandomAddress()), - takerAssetData: assetDataUtils.encodeERC20AssetData(addressUtils.generatePseudoRandomAddress()), - makerFeeAssetData: assetDataUtils.encodeERC20AssetData(addressUtils.generatePseudoRandomAddress()), - takerFeeAssetData: assetDataUtils.encodeERC20AssetData(addressUtils.generatePseudoRandomAddress()), + feeRecipientAddress: randomAddress(), + makerAssetData: assetDataUtils.encodeERC20AssetData(randomAddress()), + takerAssetData: assetDataUtils.encodeERC20AssetData(randomAddress()), + makerFeeAssetData: assetDataUtils.encodeERC20AssetData(randomAddress()), + takerFeeAssetData: assetDataUtils.encodeERC20AssetData(randomAddress()), makerFee: constants.ZERO_AMOUNT, takerFee: constants.ZERO_AMOUNT, domain: { diff --git a/contracts/test-utils/src/address_utils.ts b/contracts/test-utils/src/address_utils.ts index 37858ef568..0825d860b9 100644 --- a/contracts/test-utils/src/address_utils.ts +++ b/contracts/test-utils/src/address_utils.ts @@ -1,6 +1,9 @@ import { constants } from './constants'; import { hexRandom } from './hex_utils'; +/** + * Generates a random address. + */ export function randomAddress(): string { return hexRandom(constants.ADDRESS_LENGTH); } diff --git a/contracts/utils/test/lib_address_array.ts b/contracts/utils/test/lib_address_array.ts index d69f8bf306..5f74cc3659 100644 --- a/contracts/utils/test/lib_address_array.ts +++ b/contracts/utils/test/lib_address_array.ts @@ -1,4 +1,4 @@ -import { addressUtils, chaiSetup, provider, txDefaults, web3Wrapper } from '@0x/contracts-test-utils'; +import { chaiSetup, provider, randomAddress, txDefaults, web3Wrapper } from '@0x/contracts-test-utils'; import { BlockchainLifecycle } from '@0x/dev-utils'; import { BigNumber, LibAddressArrayRevertErrors } from '@0x/utils'; import * as chai from 'chai'; @@ -29,23 +29,23 @@ describe('LibAddressArray', () => { describe('append', () => { it('should append to empty array', async () => { - const addr = addressUtils.generatePseudoRandomAddress(); + const addr = randomAddress(); const result = await lib.publicAppend.callAsync([], addr); const expected = [addr]; expect(result).to.deep.equal(expected); }); it('should append to non-empty array', async () => { - const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); - const addr = addressUtils.generatePseudoRandomAddress(); + const arr = _.times(3, () => randomAddress()); + const addr = randomAddress(); const expected = [...arr, addr]; const result = await lib.publicAppend.callAsync(arr, addr); expect(result).to.deep.equal(expected); }); it('should revert if the free memory pointer was moved to before the end of the array', async () => { - const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); - const addr = addressUtils.generatePseudoRandomAddress(); + const arr = _.times(3, () => randomAddress()); + const addr = randomAddress(); const freeMemOffset = new BigNumber(-1); const addressArrayEndPtr = new BigNumber(256); const expectedError = new LibAddressArrayRevertErrors.MismanagedMemoryError( @@ -56,8 +56,8 @@ describe('LibAddressArray', () => { }); it('should keep the same memory address if free memory pointer does not move', async () => { - const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); - const addr = addressUtils.generatePseudoRandomAddress(); + const arr = _.times(3, () => randomAddress()); + const addr = randomAddress(); const freeMemOffset = new BigNumber(0); const expected = [...arr, addr]; const [result, oldArrayMemStart, newArrayMemStart] = await lib.testAppendRealloc.callAsync( @@ -70,8 +70,8 @@ describe('LibAddressArray', () => { }); it('should change memory address if free memory pointer advances', async () => { - const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); - const addr = addressUtils.generatePseudoRandomAddress(); + const arr = _.times(3, () => randomAddress()); + const addr = randomAddress(); const freeMemOffset = new BigNumber(1); const expectedArray = [...arr, addr]; const [result, oldArrayMemStart, newArrayMemStart] = await lib.testAppendRealloc.callAsync( @@ -88,27 +88,27 @@ describe('LibAddressArray', () => { describe('contains', () => { it('should return false on an empty array', async () => { - const addr = addressUtils.generatePseudoRandomAddress(); + const addr = randomAddress(); const isFound = await lib.publicContains.callAsync([], addr); expect(isFound).to.equal(false); }); it('should return false on a missing item', async () => { - const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); - const addr = addressUtils.generatePseudoRandomAddress(); + const arr = _.times(3, () => randomAddress()); + const addr = randomAddress(); const isFound = await lib.publicContains.callAsync(arr, addr); expect(isFound).to.equal(false); }); it('should return true on an included item', async () => { - const arr = _.times(4, () => addressUtils.generatePseudoRandomAddress()); + const arr = _.times(4, () => randomAddress()); const addr = _.sample(arr) as string; const isFound = await lib.publicContains.callAsync(arr, addr); expect(isFound).to.equal(true); }); it('should return true on the only item in the array', async () => { - const arr = _.times(1, () => addressUtils.generatePseudoRandomAddress()); + const arr = _.times(1, () => randomAddress()); const isFound = await lib.publicContains.callAsync(arr, arr[0]); expect(isFound).to.equal(true); }); @@ -116,20 +116,20 @@ describe('LibAddressArray', () => { describe('indexOf', () => { it('should fail on an empty array', async () => { - const addr = addressUtils.generatePseudoRandomAddress(); + const addr = randomAddress(); const [isSuccess] = await lib.publicIndexOf.callAsync([], addr); expect(isSuccess).to.equal(false); }); it('should fail on a missing item', async () => { - const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); - const addr = addressUtils.generatePseudoRandomAddress(); + const arr = _.times(3, () => randomAddress()); + const addr = randomAddress(); const [isSuccess] = await lib.publicIndexOf.callAsync(arr, addr); expect(isSuccess).to.equal(false); }); it('should succeed on an included item', async () => { - const arr = _.times(4, () => addressUtils.generatePseudoRandomAddress()); + const arr = _.times(4, () => randomAddress()); const expectedIndexOf = _.random(0, arr.length - 1); const addr = arr[expectedIndexOf]; const [isSuccess, index] = await lib.publicIndexOf.callAsync(arr, addr); @@ -138,7 +138,7 @@ describe('LibAddressArray', () => { }); it('should succeed on the only item in the array', async () => { - const arr = _.times(1, () => addressUtils.generatePseudoRandomAddress()); + const arr = _.times(1, () => randomAddress()); const [isSuccess, index] = await lib.publicIndexOf.callAsync(arr, arr[0]); expect(isSuccess).to.equal(true); expect(index).bignumber.to.equal(0);