From 52ac8c225181a3252553b3c47d61719542a5e319 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Mon, 21 Aug 2017 19:06:13 +0200 Subject: Reject checksummed addresses --- src/schemas/basic_type_schemas.ts | 2 +- src/utils/assert.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/schemas/basic_type_schemas.ts b/src/schemas/basic_type_schemas.ts index c3b81185d..5d66cf79b 100644 --- a/src/schemas/basic_type_schemas.ts +++ b/src/schemas/basic_type_schemas.ts @@ -1,7 +1,7 @@ export const addressSchema = { id: '/addressSchema', type: 'string', - pattern: '^0[xX][0-9A-Fa-f]{40}$', + pattern: '^0x[0-9a-f]{40}$', }; export const numberSchema = { diff --git a/src/utils/assert.ts b/src/utils/assert.ts index 969209208..d835d85c5 100644 --- a/src/utils/assert.ts +++ b/src/utils/assert.ts @@ -24,6 +24,10 @@ export const assert = { isETHAddressHex(variableName: string, value: string): void { const web3 = new Web3(); this.assert(web3.isAddress(value), this.typeAssertionMessage(variableName, 'ETHAddressHex', value)); + this.assert( + web3.isAddress(value) && !web3.isChecksumAddress(value), + 'Checksummed addresses are not supported. Convert to lower case before passing', + ); }, doesBelongToStringEnum(variableName: string, value: string, stringEnum: any /* There is no base type for every string enum */): void { -- cgit v1.2.3