Skip to content

Commit 3c82dee

Browse files
authored
chore(checkout): Deprecate risk functions (#2703)
1 parent 574d471 commit 3c82dee

File tree

14 files changed

+76
-244
lines changed

14 files changed

+76
-244
lines changed

packages/checkout/sdk/src/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@ export type {
158158

159159
export {
160160
fetchRiskAssessment,
161-
fetchRiskAssessmentV2,
162161
isAddressSanctioned,
163162
isSingleAddressSanctioned,
164163
resultHasSanctionedWallets,
Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,38 @@
1-
export type RiskAssessmentResponse = {
2-
address: string;
3-
risk: RiskAssessmentLevel;
4-
risk_reason: string;
5-
};
6-
7-
export enum RiskAssessmentLevel {
8-
LOW = 'Low',
9-
MEDIUM = 'Medium',
10-
HIGH = 'High',
11-
SEVERE = 'Severe',
12-
}
1+
/* eslint-disable @typescript-eslint/no-unused-vars */
132

143
export type AssessmentResult = {
154
[address: string]: {
165
sanctioned: boolean;
176
};
187
};
198

20-
// deprecated - please use isSingleAddressSanctioned or resultHasSanctionedWallets
9+
/**
10+
* @deprecated This function is deprecated and will be removed.
11+
* @param riskAssessment
12+
* @param address
13+
* @returns
14+
*/
2115
export const isAddressSanctioned = (
2216
riskAssessment: AssessmentResult,
2317
address?: string,
24-
): boolean => {
25-
if (address) {
26-
return riskAssessment[address.toLowerCase()].sanctioned;
27-
}
28-
29-
return Object.values(riskAssessment).some((assessment) => assessment.sanctioned);
30-
};
18+
): boolean => false;
3119

20+
/**
21+
* @deprecated This function is deprecated and will be removed.
22+
* @param riskAssessment
23+
* @param address
24+
* @returns
25+
*/
3226
export const isSingleAddressSanctioned = (
3327
riskAssessment: AssessmentResult,
3428
address: string,
35-
): boolean => riskAssessment[address.toLowerCase()].sanctioned;
29+
): boolean => false;
3630

31+
/**
32+
* @deprecated This function is deprecated and will be removed.
33+
* @param riskAssessment
34+
* @returns
35+
*/
3736
export const resultHasSanctionedWallets = (
3837
riskAssessment: AssessmentResult,
39-
): boolean => Object.values(riskAssessment).some((assessment) => assessment.sanctioned);
38+
): boolean => false;
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
export * from './riskAssessment';
2-
export * from './riskAssessmentV2';
32
export * from './common';

packages/checkout/sdk/src/riskAssessment/riskAssessment.test.ts

Lines changed: 0 additions & 131 deletions
This file was deleted.
Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,16 @@
1-
import axios from 'axios';
2-
import { IMMUTABLE_API_BASE_URL } from '../env';
3-
import { RiskAssessmentConfig } from '../types';
1+
/* eslint-disable @typescript-eslint/no-unused-vars */
42
import { CheckoutConfiguration } from '../config';
5-
import { AssessmentResult, RiskAssessmentResponse } from './common';
3+
import { AssessmentResult } from './common';
64

5+
/**
6+
* @deprecated This function is deprecated and will be removed.
7+
* @param addresses
8+
* @param config
9+
* @returns
10+
*/
711
export const fetchRiskAssessment = async (
812
addresses: string[],
913
config: CheckoutConfiguration,
10-
): Promise<AssessmentResult> => {
11-
const result = Object.fromEntries(
12-
addresses.map((address) => [address.toLowerCase(), { sanctioned: false }]),
13-
);
14-
15-
const riskConfig = (await config.remote.getConfig('riskAssessment')) as
16-
| RiskAssessmentConfig
17-
| undefined;
18-
19-
if (!riskConfig?.enabled) {
20-
return result;
21-
}
22-
23-
try {
24-
const riskLevels = riskConfig?.levels.map((l) => l.toLowerCase()) ?? [];
25-
26-
const response = await axios.post<RiskAssessmentResponse[]>(
27-
`${IMMUTABLE_API_BASE_URL[config.environment]}/v1/sanctions/check`,
28-
{
29-
addresses,
30-
},
31-
);
32-
33-
for (const assessment of response.data) {
34-
result[assessment.address.toLowerCase()].sanctioned = riskLevels.includes(
35-
assessment.risk.toLowerCase(),
36-
);
37-
}
38-
39-
return result;
40-
} catch (error) {
41-
// eslint-disable-next-line no-console
42-
console.error('Error fetching risk assessment', error);
43-
return result;
44-
}
45-
};
14+
): Promise<AssessmentResult> => Object.fromEntries(
15+
addresses.map((address) => [address.toLowerCase(), { sanctioned: false }]),
16+
);

packages/checkout/sdk/src/sdk.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ export class Checkout {
227227

228228
/**
229229
* Fetches the risk assessment for the given addresses.
230+
* @deprecated This function is deprecated and will be removed.
230231
* @param {string[]} addresses - The addresses to assess.
231232
* @returns {Promise<AssessmentResult>} - A promise that resolves to the risk assessment result.
232233
*/
@@ -236,6 +237,7 @@ export class Checkout {
236237

237238
/**
238239
* Helper method that checks if given risk assessment results contain sanctioned addresses.
240+
* @deprecated This function is deprecated and will be removed.
239241
* @param {AssessmentResult} assessment - Risk assessment to analyse.
240242
* @param {string} [address] - If defined, only sanctions for the given address will be checked.
241243
* @returns {boolean} - Result of the check.

packages/checkout/widgets-lib/src/functions/checkSanctionedAddresses.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import {
22
CheckoutConfiguration,
3-
fetchRiskAssessmentV2,
4-
resultHasSanctionedWallets,
53
} from '@imtbl/checkout-sdk';
4+
import { fetchRiskAssessmentV2, resultHasSanctionedWallets } from '../lib/riskAssessment';
65

76
type TokenAmount = {
87
address: string;
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
export type RiskAssessmentResponse = {
2+
address: string;
3+
risk: RiskAssessmentLevel;
4+
// eslint-disable-next-line @typescript-eslint/naming-convention
5+
risk_reason: string;
6+
};
7+
8+
export enum RiskAssessmentLevel {
9+
LOW = 'Low',
10+
MEDIUM = 'Medium',
11+
HIGH = 'High',
12+
SEVERE = 'Severe',
13+
}
14+
15+
export type AssessmentResult = {
16+
[address: string]: {
17+
sanctioned: boolean;
18+
};
19+
};
20+
21+
export const isSingleAddressSanctioned = (
22+
riskAssessment: AssessmentResult,
23+
address: string,
24+
): boolean => riskAssessment[address.toLowerCase()].sanctioned;
25+
26+
export const resultHasSanctionedWallets = (
27+
riskAssessment: AssessmentResult,
28+
): boolean => Object.values(riskAssessment).some((assessment) => assessment.sanctioned);
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './riskAssessmentV2';
2+
export * from './common';

packages/checkout/sdk/src/riskAssessment/riskAssessmentV2.test.ts renamed to packages/checkout/widgets-lib/src/lib/riskAssessment/riskAssessmentV2.test.ts

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
/* eslint-disable @typescript-eslint/naming-convention */
12
import axios, { AxiosResponse } from 'axios';
3+
import { CheckoutConfiguration } from '@imtbl/checkout-sdk';
24
import { fetchRiskAssessmentV2 } from './riskAssessmentV2';
3-
import { isAddressSanctioned } from './common';
4-
import { CheckoutConfiguration } from '../config';
55

66
jest.mock('axios');
77

@@ -95,41 +95,4 @@ describe('riskAssessmentV2', () => {
9595
expect(sanctions[address1.toLowerCase()]).toEqual({ sanctioned: false });
9696
});
9797
});
98-
99-
describe('isAddressSanctioned', () => {
100-
it('should return true if any address is sanctioned', () => {
101-
const assessment = {
102-
'0x9999999123123123': {
103-
sanctioned: false,
104-
},
105-
'0xabcdef1234567890': {
106-
sanctioned: true,
107-
},
108-
};
109-
110-
expect(isAddressSanctioned(assessment)).toBe(true);
111-
});
112-
113-
it('should return true if single address is sanctioned', () => {
114-
const address = '0x1234567890ABCdef';
115-
const assessment = {
116-
[address.toLowerCase()]: {
117-
sanctioned: true,
118-
},
119-
};
120-
121-
expect(isAddressSanctioned(assessment, address)).toBe(true);
122-
});
123-
124-
it('should return false if single address is not sanctioned', () => {
125-
const address = '0x1234567890ABCdef';
126-
const assessment = {
127-
[address.toLowerCase()]: {
128-
sanctioned: false,
129-
},
130-
};
131-
132-
expect(isAddressSanctioned(assessment, address)).toBe(false);
133-
});
134-
});
13598
});

0 commit comments

Comments
 (0)