From 0cb5209266b979bcee094f3863efca0a1fa63697 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Fri, 30 Nov 2018 15:57:30 -0800 Subject: Add length check to MultiAsset encoding --- packages/order-utils/src/asset_data_utils.ts | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'packages/order-utils/src/asset_data_utils.ts') diff --git a/packages/order-utils/src/asset_data_utils.ts b/packages/order-utils/src/asset_data_utils.ts index b5cfe698e..0b32cf216 100644 --- a/packages/order-utils/src/asset_data_utils.ts +++ b/packages/order-utils/src/asset_data_utils.ts @@ -73,6 +73,13 @@ export const assetDataUtils = { * @return The hex encoded assetData string */ encodeMultiAssetData(amounts: BigNumber[], nestedAssetData: string[]): string { + if (amounts.length !== nestedAssetData.length) { + throw new Error( + `Invalid MultiAsset arguments. Expected length of 'amounts' (${ + amounts.length + }) to equal length of 'nestedAssetData' (${nestedAssetData.length})`, + ); + } _.forEach(nestedAssetData, assetDataElement => assetDataUtils.validateAssetDataOrThrow(assetDataElement)); const abiEncoder = new AbiEncoder.Method(constants.MULTI_ASSET_METHOD_ABI as MethodAbi); const args = [amounts, nestedAssetData]; -- cgit v1.2.3