From 119242209d1617bcad19570646ee30b9055f999c Mon Sep 17 00:00:00 2001 From: RadeRadivojevic Date: Sun, 6 Aug 2023 20:30:36 +0200 Subject: [PATCH 1/9] Feat: COR-33002 Travel Rule Configuration and Policy routes * COR-28409 Exposing external Travel Rule endpoints View TR screening and post/screening policy Bypass screening during service outages. Inbound transaction delay Outbound transaction delay --- src/fireblocks-sdk.ts | 44 ++++++++++++++++++++++++++++++++++++++++++- src/types.ts | 6 ++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/fireblocks-sdk.ts b/src/fireblocks-sdk.ts index 026e63ed..556e8758 100644 --- a/src/fireblocks-sdk.ts +++ b/src/fireblocks-sdk.ts @@ -90,7 +90,7 @@ import { SmartTransfersTicketsFilters, SmartTransfersTicketTermPayload, SmartTransfersTicketTermFundPayload, - SmartTransfersTicketTermResponse, + SmartTransfersTicketTermResponse, ScreeningPolicyConfiguration, } from "./types"; import { AxiosProxyConfig, AxiosResponse } from "axios"; import { PIIEncryption } from "./pii-client"; @@ -1549,6 +1549,48 @@ export class FireblocksSDK { return await this.apiClient.issuePutRequest(`/v1/screening/travel-rule/vasp/update`, vaspInfo); } + /** + * Get PostScreening Policies for travel rule compliance + */ + public async getPostScreeningPolicy(): Promise { + return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/post_screening_policy}`); + } + + /** + * Get Screening Policies for travel rule compliance + */ + public async getScreeningPolicy(): Promise { + return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/screening_policy}`); + } + + /** + * Get Screening Configuration for travel rule compliance + */ + public async getScreeningConfiguration(): Promise { + return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/policy_configuration}`); + } + + /** + * Set Bypass Screening Configuration for travel rule compliance + */ + public async setBypassConfiguration(bypassConfiguration: ScreeningPolicyConfiguration): Promise { + return await this.apiClient.issuePutRequest(`/api/travel-rule/bypass/configuration}`, bypassConfiguration); + } + + /** + * Update Inbound Transaction Delay Configuration for travel rule compliance + */ + public async updateInboundDelay(inboundDelay: ScreeningPolicyConfiguration): Promise { + return await this.apiClient.issuePutRequest(`/v1/screening/travel_rule/inbound_delay}`, inboundDelay); + } + + /** + * Update Outbound Transaction Delay Configuration for travel rule compliance + */ + public async updateOutboundDelay(outboundDelay: ScreeningPolicyConfiguration): Promise { + return await this.apiClient.issuePutRequest(`/v1/screening/travel_rule/policy_configuration}`, outboundDelay); + } + /** * Creates Smart Transfers ticket * @param data diff --git a/src/types.ts b/src/types.ts index 0f1c1e3e..0df61e50 100644 --- a/src/types.ts +++ b/src/types.ts @@ -500,6 +500,12 @@ export interface TravelRuleVaspFilter { order?: string; } +export interface ScreeningPolicyConfiguration { + bypassScreeningDuringServiceOutages?: boolean; + inboundTransactionDelay?: number; + outboundTransactionDelay?: number; +} + export enum Web3ConnectionFeeLevel { HIGH = "HIGH", MEDIUM = "MEDIUM", From 47db45a7d931c09322c3816204d424c8d0101d15 Mon Sep 17 00:00:00 2001 From: RadeRadivojevic Date: Wed, 9 Aug 2023 06:57:37 +0200 Subject: [PATCH 2/9] Update path and method naming --- src/fireblocks-sdk.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/fireblocks-sdk.ts b/src/fireblocks-sdk.ts index 556e8758..aa46c2d6 100644 --- a/src/fireblocks-sdk.ts +++ b/src/fireblocks-sdk.ts @@ -1552,42 +1552,42 @@ export class FireblocksSDK { /** * Get PostScreening Policies for travel rule compliance */ - public async getPostScreeningPolicy(): Promise { + public async getTravelRulePostScreeningPolicy(): Promise { return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/post_screening_policy}`); } /** * Get Screening Policies for travel rule compliance */ - public async getScreeningPolicy(): Promise { + public async getTravelRuleScreeningPolicy(): Promise { return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/screening_policy}`); } /** * Get Screening Configuration for travel rule compliance */ - public async getScreeningConfiguration(): Promise { + public async getTravelRuleScreeningConfiguration(): Promise { return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/policy_configuration}`); } /** * Set Bypass Screening Configuration for travel rule compliance */ - public async setBypassConfiguration(bypassConfiguration: ScreeningPolicyConfiguration): Promise { - return await this.apiClient.issuePutRequest(`/api/travel-rule/bypass/configuration}`, bypassConfiguration); + public async setTravelRuleBypassConfiguration(bypassConfiguration: ScreeningPolicyConfiguration): Promise { + return await this.apiClient.issuePutRequest(`/v1/travel-rule/bypass/configuration}`, bypassConfiguration); } /** * Update Inbound Transaction Delay Configuration for travel rule compliance */ - public async updateInboundDelay(inboundDelay: ScreeningPolicyConfiguration): Promise { + public async updateTravelRuleInboundDelay(inboundDelay: ScreeningPolicyConfiguration): Promise { return await this.apiClient.issuePutRequest(`/v1/screening/travel_rule/inbound_delay}`, inboundDelay); } /** * Update Outbound Transaction Delay Configuration for travel rule compliance */ - public async updateOutboundDelay(outboundDelay: ScreeningPolicyConfiguration): Promise { + public async updateTravelRuleOutboundDelay(outboundDelay: ScreeningPolicyConfiguration): Promise { return await this.apiClient.issuePutRequest(`/v1/screening/travel_rule/policy_configuration}`, outboundDelay); } From 3502f46b72492bc9cbf38cfd3cd38c70142e7662 Mon Sep 17 00:00:00 2001 From: RadeRadivojevic Date: Wed, 9 Aug 2023 07:32:20 +0200 Subject: [PATCH 3/9] Update paths remove unecessary braces --- fireblocks-sdk-5.3.1.tgz | Bin 0 -> 36997 bytes src/fireblocks-sdk.ts | 16 ++++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 fireblocks-sdk-5.3.1.tgz diff --git a/fireblocks-sdk-5.3.1.tgz b/fireblocks-sdk-5.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e2090990f8897e46920e4b1d7926511b4a081afd GIT binary patch literal 36997 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 literal 0 HcmV?d00001 diff --git a/src/fireblocks-sdk.ts b/src/fireblocks-sdk.ts index aa46c2d6..824c1d99 100644 --- a/src/fireblocks-sdk.ts +++ b/src/fireblocks-sdk.ts @@ -1553,42 +1553,42 @@ export class FireblocksSDK { * Get PostScreening Policies for travel rule compliance */ public async getTravelRulePostScreeningPolicy(): Promise { - return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/post_screening_policy}`); + return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/post_screening_policy`); } /** * Get Screening Policies for travel rule compliance */ public async getTravelRuleScreeningPolicy(): Promise { - return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/screening_policy}`); + return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/screening_policy`); } /** * Get Screening Configuration for travel rule compliance */ public async getTravelRuleScreeningConfiguration(): Promise { - return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/policy_configuration}`); + return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/policy_configuration`); } /** - * Set Bypass Screening Configuration for travel rule compliance + * Update Bypass Screening Configuration for travel rule compliance */ - public async setTravelRuleBypassConfiguration(bypassConfiguration: ScreeningPolicyConfiguration): Promise { - return await this.apiClient.issuePutRequest(`/v1/travel-rule/bypass/configuration}`, bypassConfiguration); + public async updateTravelRuleBypassConfiguration(bypassConfiguration: ScreeningPolicyConfiguration): Promise { + return await this.apiClient.issuePutRequest(`/v1/screening/travel-rule/bypass/configuration`, bypassConfiguration); } /** * Update Inbound Transaction Delay Configuration for travel rule compliance */ public async updateTravelRuleInboundDelay(inboundDelay: ScreeningPolicyConfiguration): Promise { - return await this.apiClient.issuePutRequest(`/v1/screening/travel_rule/inbound_delay}`, inboundDelay); + return await this.apiClient.issuePutRequest(`/v1/screening/travel_rule/inbound_delay`, inboundDelay); } /** * Update Outbound Transaction Delay Configuration for travel rule compliance */ public async updateTravelRuleOutboundDelay(outboundDelay: ScreeningPolicyConfiguration): Promise { - return await this.apiClient.issuePutRequest(`/v1/screening/travel_rule/policy_configuration}`, outboundDelay); + return await this.apiClient.issuePutRequest(`/v1/screening/travel_rule/policy_configuration`, outboundDelay); } /** From 97b1590522e97c9b5f872d6fa2213be642c3d836 Mon Sep 17 00:00:00 2001 From: RadeRadivojevic Date: Fri, 11 Aug 2023 13:48:59 +0200 Subject: [PATCH 4/9] Unify Update Screening Policy configuration endpoints add interfaces --- fireblocks-sdk-5.3.1.tgz | Bin 36997 -> 0 bytes src/fireblocks-sdk.ts | 26 ++++----------- src/types.ts | 69 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 20 deletions(-) delete mode 100644 fireblocks-sdk-5.3.1.tgz diff --git a/fireblocks-sdk-5.3.1.tgz b/fireblocks-sdk-5.3.1.tgz deleted file mode 100644 index e2090990f8897e46920e4b1d7926511b4a081afd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36997 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 diff --git a/src/fireblocks-sdk.ts b/src/fireblocks-sdk.ts index 824c1d99..cd95535b 100644 --- a/src/fireblocks-sdk.ts +++ b/src/fireblocks-sdk.ts @@ -90,7 +90,7 @@ import { SmartTransfersTicketsFilters, SmartTransfersTicketTermPayload, SmartTransfersTicketTermFundPayload, - SmartTransfersTicketTermResponse, ScreeningPolicyConfiguration, + SmartTransfersTicketTermResponse, ScreeningPolicyConfiguration, TravelRulePolicy, TravelRuleRulesConfiguration, } from "./types"; import { AxiosProxyConfig, AxiosResponse } from "axios"; import { PIIEncryption } from "./pii-client"; @@ -1552,43 +1552,29 @@ export class FireblocksSDK { /** * Get PostScreening Policies for travel rule compliance */ - public async getTravelRulePostScreeningPolicy(): Promise { + public async getTravelRulePostScreeningPolicy(): Promise { return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/post_screening_policy`); } /** * Get Screening Policies for travel rule compliance */ - public async getTravelRuleScreeningPolicy(): Promise { + public async getTravelRuleScreeningPolicy(): Promise { return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/screening_policy`); } /** * Get Screening Configuration for travel rule compliance */ - public async getTravelRuleScreeningConfiguration(): Promise { + public async getTravelRuleScreeningConfiguration(): Promise { return await this.apiClient.issueGetRequest(`/v1/screening/travel_rule/policy_configuration`); } /** * Update Bypass Screening Configuration for travel rule compliance */ - public async updateTravelRuleBypassConfiguration(bypassConfiguration: ScreeningPolicyConfiguration): Promise { - return await this.apiClient.issuePutRequest(`/v1/screening/travel-rule/bypass/configuration`, bypassConfiguration); - } - - /** - * Update Inbound Transaction Delay Configuration for travel rule compliance - */ - public async updateTravelRuleInboundDelay(inboundDelay: ScreeningPolicyConfiguration): Promise { - return await this.apiClient.issuePutRequest(`/v1/screening/travel_rule/inbound_delay`, inboundDelay); - } - - /** - * Update Outbound Transaction Delay Configuration for travel rule compliance - */ - public async updateTravelRuleOutboundDelay(outboundDelay: ScreeningPolicyConfiguration): Promise { - return await this.apiClient.issuePutRequest(`/v1/screening/travel_rule/policy_configuration`, outboundDelay); + public async updateTravelRulePolicyConfiguration(bypassConfiguration: ScreeningPolicyConfiguration): Promise { + return await this.apiClient.issuePutRequest(`/v1/screening/travel-rule/bypass/policy_configuration`, bypassConfiguration); } /** diff --git a/src/types.ts b/src/types.ts index 0df61e50..152b6d83 100644 --- a/src/types.ts +++ b/src/types.ts @@ -506,6 +506,75 @@ export interface ScreeningPolicyConfiguration { outboundTransactionDelay?: number; } +export enum TravelRuleAction { + screen = "SCREEN", + pass = "PASS", + freeze = "FREEZE" +} + +export interface TravelRulePolicyRule { + sourceType?: string; + sourceSubType?: string; + destType?: string; + destSubType?: string; + destAddress?: string; + sourceId?: string; + destId?: string; + asset?: string; + baseAsset?: string; + amount?: number; + amountUSD?: number; + networkProtocol?: string; + operation?: string; + action: TravelRuleAction; +} + +export enum PolicyApprovalStatus { + live = "live", + processing = "processing" +} + +export enum TransactionDirection { + inbound = "INBOUND", + outbound = "OUTBOUND" +} + +export enum FbTravelRuleTransactionStatus { + completed = "COMPLETED", + pending = "PENDING", + rejected = "REJECTED", + failed = "FAILED", + canceled = "CANCELED", + blockingTimeExpired = "BLOCKING_TIME_EXPIRED", +} + +export enum TravelRuleVerdict { + accept = "ACCEPT", + reject = "REJECT", + alert = "ALERT", + wait = "WAIT", + freeze = "FREEZE", + cancel = "CANCEL" +} + +export interface TravelRuleRulesConfiguration { + direction?: TransactionDirection; + status?: FbTravelRuleTransactionStatus; + amountUSD?: number; + amount?: number; + asset?: string; + action: TravelRuleVerdict; +} + +export interface TravelRulePolicy { + tenantId?: string; + policy: TravelRulePolicyRule[]; + policyStatus?: PolicyApprovalStatus; + isDefault: boolean; + createDate?: Date; + lastUpdate: Date; +} + export enum Web3ConnectionFeeLevel { HIGH = "HIGH", MEDIUM = "MEDIUM", From 63d86110461cbf20ae0062d3cb298681a4f9905b Mon Sep 17 00:00:00 2001 From: RadeRadivojevic Date: Fri, 11 Aug 2023 13:50:56 +0200 Subject: [PATCH 5/9] Rename paramethar for Screening Policy configuration --- src/fireblocks-sdk.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fireblocks-sdk.ts b/src/fireblocks-sdk.ts index cd95535b..b0ea4149 100644 --- a/src/fireblocks-sdk.ts +++ b/src/fireblocks-sdk.ts @@ -1573,7 +1573,7 @@ export class FireblocksSDK { /** * Update Bypass Screening Configuration for travel rule compliance */ - public async updateTravelRulePolicyConfiguration(bypassConfiguration: ScreeningPolicyConfiguration): Promise { + public async updateTravelRulePolicyConfiguration(screeningPolicyConfiguration: ScreeningPolicyConfiguration): Promise { return await this.apiClient.issuePutRequest(`/v1/screening/travel-rule/bypass/policy_configuration`, bypassConfiguration); } From 6cfc61ddfd31f2ede90de3f0b59ff90b501a4a6e Mon Sep 17 00:00:00 2001 From: RadeRadivojevic Date: Fri, 11 Aug 2023 13:53:01 +0200 Subject: [PATCH 6/9] Update JS doc for updateTravelRulePolicyConfiguration parameter description --- src/fireblocks-sdk.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/fireblocks-sdk.ts b/src/fireblocks-sdk.ts index b0ea4149..b2cbea6b 100644 --- a/src/fireblocks-sdk.ts +++ b/src/fireblocks-sdk.ts @@ -1572,9 +1572,10 @@ export class FireblocksSDK { /** * Update Bypass Screening Configuration for travel rule compliance + * @param screeningPolicyConfiguration */ public async updateTravelRulePolicyConfiguration(screeningPolicyConfiguration: ScreeningPolicyConfiguration): Promise { - return await this.apiClient.issuePutRequest(`/v1/screening/travel-rule/bypass/policy_configuration`, bypassConfiguration); + return await this.apiClient.issuePutRequest(`/v1/screening/travel-rule/bypass/policy_configuration`, screeningPolicyConfiguration); } /** From 496d7a8e0dfda7e3aecf292b8375a96e4924ed4d Mon Sep 17 00:00:00 2001 From: RadeRadivojevic Date: Fri, 11 Aug 2023 14:14:24 +0200 Subject: [PATCH 7/9] Fix update screening policy update URL --- src/fireblocks-sdk.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fireblocks-sdk.ts b/src/fireblocks-sdk.ts index b2cbea6b..eff876b0 100644 --- a/src/fireblocks-sdk.ts +++ b/src/fireblocks-sdk.ts @@ -1575,7 +1575,7 @@ export class FireblocksSDK { * @param screeningPolicyConfiguration */ public async updateTravelRulePolicyConfiguration(screeningPolicyConfiguration: ScreeningPolicyConfiguration): Promise { - return await this.apiClient.issuePutRequest(`/v1/screening/travel-rule/bypass/policy_configuration`, screeningPolicyConfiguration); + return await this.apiClient.issuePutRequest(`/v1/screening/travel-rule/policy_configuration`, screeningPolicyConfiguration); } /** From f6163b55a20d9badf7617ca65e6ce9a6fb79e9b4 Mon Sep 17 00:00:00 2001 From: RadeRadivojevic Date: Fri, 11 Aug 2023 14:23:34 +0200 Subject: [PATCH 8/9] Add undescore on Update url --- src/fireblocks-sdk.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fireblocks-sdk.ts b/src/fireblocks-sdk.ts index eff876b0..2cc38fdb 100644 --- a/src/fireblocks-sdk.ts +++ b/src/fireblocks-sdk.ts @@ -1575,7 +1575,7 @@ export class FireblocksSDK { * @param screeningPolicyConfiguration */ public async updateTravelRulePolicyConfiguration(screeningPolicyConfiguration: ScreeningPolicyConfiguration): Promise { - return await this.apiClient.issuePutRequest(`/v1/screening/travel-rule/policy_configuration`, screeningPolicyConfiguration); + return await this.apiClient.issuePutRequest(`/v1/screening/travel_rule/policy_configuration`, screeningPolicyConfiguration); } /** From e812b05280f4d3d48672a8c7e5eeb0e00837b579 Mon Sep 17 00:00:00 2001 From: RadeRadivojevic Date: Thu, 17 Aug 2023 16:44:30 +0200 Subject: [PATCH 9/9] remove duplicate import --- src/fireblocks-sdk.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/fireblocks-sdk.ts b/src/fireblocks-sdk.ts index 30c04544..895ac115 100644 --- a/src/fireblocks-sdk.ts +++ b/src/fireblocks-sdk.ts @@ -90,7 +90,9 @@ import { SmartTransfersTicketsFilters, SmartTransfersTicketTermPayload, SmartTransfersTicketTermFundPayload, - SmartTransfersTicketTermResponse, ScreeningPolicyConfiguration, TravelRulePolicy, TravelRuleRulesConfiguration, + ScreeningPolicyConfiguration, + TravelRulePolicy, + TravelRuleRulesConfiguration, SmartTransfersTicketTermResponse, UsersGroup, PendingTokenLinkDto, } from "./types";