From fd91408e156243e73c17e962c6abc7dbdb39902f Mon Sep 17 00:00:00 2001 From: Anton Semikin Date: Thu, 15 Sep 2022 09:35:11 +0200 Subject: [PATCH 1/2] [DEV-441] implemented faucet restriction for user addresses --- .../models/payout/services/payout-defichain.service.ts | 4 ++++ .../strategies/payout/payout-defichain-token.strategy.ts | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/payment/models/payout/services/payout-defichain.service.ts b/src/payment/models/payout/services/payout-defichain.service.ts index d9c38f1980..650cfd31f0 100644 --- a/src/payment/models/payout/services/payout-defichain.service.ts +++ b/src/payment/models/payout/services/payout-defichain.service.ts @@ -48,6 +48,10 @@ export class PayoutDeFiChainService { if (context === PayoutOrderContext.STAKING_REWARD) return Config.blockchain.default.intWalletAddress; } + isUserAddress(address: string): boolean { + return ['df1', 'tf1'].includes(address.slice(0, 3)); + } + private getClient(context: PayoutOrderContext): DeFiClient { if (context === PayoutOrderContext.BUY_CRYPTO) return this.#outClient; if (context === PayoutOrderContext.STAKING_REWARD) return this.#intClient; diff --git a/src/payment/models/payout/strategies/payout/payout-defichain-token.strategy.ts b/src/payment/models/payout/strategies/payout/payout-defichain-token.strategy.ts index 081684f23b..ea11eef225 100644 --- a/src/payment/models/payout/strategies/payout/payout-defichain-token.strategy.ts +++ b/src/payment/models/payout/strategies/payout/payout-defichain-token.strategy.ts @@ -65,10 +65,16 @@ export class PayoutDeFiChainTokenStrategy extends PayoutDeFiChainStrategy { private async checkUtxoForGroup(orders: PayoutOrder[]): Promise { for (const order of orders) { - await this.checkUtxo(order.destinationAddress); + if (this.isEligibleForMinimalUtxo(order.destinationAddress)) { + await this.checkUtxo(order.destinationAddress); + } } } + private isEligibleForMinimalUtxo(address: string): boolean { + return this.defichainService.isUserAddress(address); + } + private async checkUtxo(address: string): Promise { const utxo = await this.defichainService.getUtxoForAddress(address); From a4d6efb6e32baed04d2e4bd622e208fe2450c8ce Mon Sep 17 00:00:00 2001 From: Anton Semikin Date: Fri, 16 Sep 2022 11:57:07 +0200 Subject: [PATCH 2/2] [DEV-441] renamed method to better reflect wallet type --- src/payment/models/payout/services/payout-defichain.service.ts | 2 +- .../payout/strategies/payout/payout-defichain-token.strategy.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/payment/models/payout/services/payout-defichain.service.ts b/src/payment/models/payout/services/payout-defichain.service.ts index 650cfd31f0..da63652b2e 100644 --- a/src/payment/models/payout/services/payout-defichain.service.ts +++ b/src/payment/models/payout/services/payout-defichain.service.ts @@ -48,7 +48,7 @@ export class PayoutDeFiChainService { if (context === PayoutOrderContext.STAKING_REWARD) return Config.blockchain.default.intWalletAddress; } - isUserAddress(address: string): boolean { + isLightWalletAddress(address: string): boolean { return ['df1', 'tf1'].includes(address.slice(0, 3)); } diff --git a/src/payment/models/payout/strategies/payout/payout-defichain-token.strategy.ts b/src/payment/models/payout/strategies/payout/payout-defichain-token.strategy.ts index ea11eef225..926dd7c58c 100644 --- a/src/payment/models/payout/strategies/payout/payout-defichain-token.strategy.ts +++ b/src/payment/models/payout/strategies/payout/payout-defichain-token.strategy.ts @@ -72,7 +72,7 @@ export class PayoutDeFiChainTokenStrategy extends PayoutDeFiChainStrategy { } private isEligibleForMinimalUtxo(address: string): boolean { - return this.defichainService.isUserAddress(address); + return this.defichainService.isLightWalletAddress(address); } private async checkUtxo(address: string): Promise {