diff --git a/indexer/services/comlink/__tests__/controllers/api/v4/addresses-controller.test.ts b/indexer/services/comlink/__tests__/controllers/api/v4/addresses-controller.test.ts index dc3bac60a9..11837e63a2 100644 --- a/indexer/services/comlink/__tests__/controllers/api/v4/addresses-controller.test.ts +++ b/indexer/services/comlink/__tests__/controllers/api/v4/addresses-controller.test.ts @@ -406,16 +406,13 @@ describe('addresses-controller#V4', () => { const response: request.Response = await sendRequest({ type: RequestMethod.GET, path: `/v4/addresses/${invalidAddress}`, - expectedStatus: 400, + expectedStatus: 404, }); expect(response.body).toEqual({ errors: [ { - msg: 'address must be a valid dydx address', - location: 'params', - param: 'address', - value: 'invalidAddress', + msg: 'No subaccounts found for address invalidAddress', }, ], }); @@ -736,10 +733,7 @@ describe('addresses-controller#V4', () => { expect(response.body).toEqual({ errors: [ { - msg: 'address must be a valid dydx address', - location: 'params', - param: 'address', - value: 'invalidAddress', + msg: 'Address invalidAddress is not a valid dYdX V4 address', }, ], }); diff --git a/indexer/services/comlink/src/controllers/api/v4/compliance-controller.ts b/indexer/services/comlink/src/controllers/api/v4/compliance-controller.ts index f8f5bd23e1..a99d96a0e8 100644 --- a/indexer/services/comlink/src/controllers/api/v4/compliance-controller.ts +++ b/indexer/services/comlink/src/controllers/api/v4/compliance-controller.ts @@ -23,6 +23,7 @@ import { complianceProvider } from '../../../helpers/compliance/compliance-clien import { create4xxResponse, handleControllerError } from '../../../lib/helpers'; import { rateLimiterMiddleware } from '../../../lib/rate-limit'; import { getIpAddr } from '../../../lib/utils'; +import { CheckAddressSchema } from '../../../lib/validation/schemas'; import { handleValidationErrors } from '../../../request-helpers/error-handler'; import ExportResponseCodeStats from '../../../request-helpers/export-response-code-stats'; import { ComplianceRequest, ComplianceResponse } from '../../../types'; diff --git a/indexer/services/comlink/src/lib/validation/schemas.ts b/indexer/services/comlink/src/lib/validation/schemas.ts index 68df7664d1..63ffcbec93 100644 --- a/indexer/services/comlink/src/lib/validation/schemas.ts +++ b/indexer/services/comlink/src/lib/validation/schemas.ts @@ -288,9 +288,12 @@ function verifyIsBech32(address: string): Error | undefined { return undefined; } -export function isValidAddress(address: string): boolean { +export function isValidDydxAddress(address: string): boolean { // An address is valid if it starts with `dydx1` and is Bech32 format. - const ret: boolean = address.startsWith('dydx1') && (verifyIsBech32(address) === undefined); - console.log('is valid address: ', ret); - return ret; + return address.startsWith('dydx1') && (verifyIsBech32(address) === undefined); +} + +export function isValidAddress(address: string): boolean { + // Address is valid if its under 90 characters and alphanumeric + return address.length <= 90 && /^[a-zA-Z0-9]*$/.test(address); }