Skip to content

Commit b8bbbdf

Browse files
committed
fix: feedback comments
1 parent 9d400ba commit b8bbbdf

File tree

9 files changed

+49
-28
lines changed

9 files changed

+49
-28
lines changed

docker-compose/docker-compose.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,11 @@ services:
157157
- BTC_RELEASE_WATCHER_START_BLOCK
158158
- BTC_RELEASE_WATCHER_PAGE_SIZE
159159
- BTC_RELEASE_CHECK_TIMEOUT
160+
- BTC_MIN_TRANSFER_FEE_MULTIPLIER
161+
- RBTC_MIN_TRANSFER_FEE_MULTIPLIER
162+
- COLD_WALLET_FORCE_TRANSFER_AFTER_SECONDS
163+
- HOT_WALLET_LOW_LIQUIDITY_WARNING
164+
- HOT_WALLET_LOW_LIQUIDITY_CRITICAL
160165
ports:
161166
- "8080:8080"
162167
volumes:

docker-compose/local/docker-compose.lps.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ services:
8585
- BTC_RELEASE_WATCHER_START_BLOCK
8686
- BTC_RELEASE_WATCHER_PAGE_SIZE
8787
- BTC_RELEASE_CHECK_TIMEOUT
88+
- BTC_MIN_TRANSFER_FEE_MULTIPLIER
89+
- RBTC_MIN_TRANSFER_FEE_MULTIPLIER
90+
- COLD_WALLET_FORCE_TRANSFER_AFTER_SECONDS
91+
- HOT_WALLET_LOW_LIQUIDITY_WARNING
92+
- HOT_WALLET_LOW_LIQUIDITY_CRITICAL
8893
ports:
8994
- "8080:8080"
9095
volumes:

docker-compose/mainnet/docker-compose.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ services:
101101
- BTC_RELEASE_WATCHER_START_BLOCK
102102
- BTC_RELEASE_WATCHER_PAGE_SIZE
103103
- BTC_RELEASE_CHECK_TIMEOUT
104+
- BTC_MIN_TRANSFER_FEE_MULTIPLIER
105+
- RBTC_MIN_TRANSFER_FEE_MULTIPLIER
106+
- COLD_WALLET_FORCE_TRANSFER_AFTER_SECONDS
107+
- HOT_WALLET_LOW_LIQUIDITY_WARNING
108+
- HOT_WALLET_LOW_LIQUIDITY_CRITICAL
104109
ports:
105110
- "8080:8080"
106111
volumes:

docs/Environment.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ These are the environment variables required by the liquidity provider server (L
7272
| `BTC_MIN_TRANSFER_FEE_MULTIPLIER` | It is a plain number meaning the minimum multiplier for BTC transfers to cold wallet to be considered economical (transfer amount must be >= fee * multiplier) | `5` | No |
7373
| `RBTC_MIN_TRANSFER_FEE_MULTIPLIER` | It is a plain number meaning the minimum multiplier for RBTC transfers to cold wallet to be considered economical (transfer amount must be >= fee * multiplier) | `100` | No |
7474
| `COLD_WALLET_FORCE_TRANSFER_AFTER_SECONDS` | Number of seconds after which excess liquidity will be transferred to cold wallet even if below threshold | `1209600` (2 weeks) | No |
75+
| `HOT_WALLET_LOW_LIQUIDITY_WARNING` | Hot wallet liquidity threshold in whole coins (BTC/RBTC) below which a warning alert is emitted every check cycle | `3` | No |
76+
| `HOT_WALLET_LOW_LIQUIDITY_CRITICAL` | Hot wallet liquidity threshold in whole coins (BTC/RBTC) below which a critical alert is emitted every check cycle. Must be less than `HOT_WALLET_LOW_LIQUIDITY_WARNING` | `1` | No |
7577

7678
## AWS variables
7779
You may notice that in [`sample-config.env`](https://github.com/rsksmart/liquidity-provider-server/blob/master/sample-config.env) there are some environment variables that are related to AWS. These variables are required to use AWS services, however, they are not listed in the table as the AWS SDK has the functionality to load them from multiple sources. For that reason, they are not accessed directly from the code and are not listed in the table above.

internal/configuration/registry/usecase.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ func NewUseCaseRegistry(
9696
messaging *Messaging,
9797
mutexes entities.ApplicationMutexes,
9898
) *UseCaseRegistry {
99+
env.ColdWallet.FillWithDefaults()
100+
99101
return &UseCaseRegistry{
100102
summariesUseCase: reports.NewSummariesUseCase(
101103
databaseRegistry.PeginRepository,
@@ -392,17 +394,14 @@ func NewUseCaseRegistry(
392394
messaging.AlertSender,
393395
env.Provider.AlertRecipientEmail,
394396
),
395-
lowLiquidityAlertUseCase: func() *liquidity_provider.LowLiquidityAlertUseCase {
396-
coldWallet := env.ColdWallet.FillWithDefaults()
397-
return liquidity_provider.NewLowLiquidityAlertUseCase(
398-
lpRegistry.LiquidityProvider,
399-
lpRegistry.LiquidityProvider,
400-
messaging.AlertSender,
401-
env.Provider.AlertRecipientEmail,
402-
coldWallet.HotWalletLowLiquidityWarning,
403-
coldWallet.HotWalletLowLiquidityCritical,
404-
)
405-
}(),
397+
lowLiquidityAlertUseCase: liquidity_provider.NewLowLiquidityAlertUseCase(
398+
lpRegistry.LiquidityProvider,
399+
lpRegistry.LiquidityProvider,
400+
messaging.AlertSender,
401+
env.Provider.AlertRecipientEmail,
402+
env.ColdWallet.HotWalletLowLiquidityWarning,
403+
env.ColdWallet.HotWalletLowLiquidityCritical,
404+
),
406405
checkColdWalletAddressChangeUseCase: liquidity_provider.NewCheckColdWalletAddressChangeUseCase(
407406
databaseRegistry.LiquidityProviderRepository,
408407
lpRegistry.LiquidityProvider,

internal/entities/wei.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ func SatoshiToWei(x uint64) *Wei {
5656
return w
5757
}
5858

59-
func CoinToWei(x uint64) *Wei {
60-
coin := new(big.Int).SetUint64(x)
59+
func EtherToWei(x uint64) *Wei {
60+
ether := new(big.Int).SetUint64(x)
6161
w := new(Wei)
62-
w.AsBigInt().Mul(coin, bTenPowEighteen)
62+
w.AsBigInt().Mul(ether, bTenPowEighteen)
6363
return w
6464
}
6565

internal/usecases/liquidity_provider/low_liquidity_alert.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ func (useCase *LowLiquidityAlertUseCase) Run(ctx context.Context) error {
4848
return usecases.WrapUseCaseError(usecases.LowLiquidityAlertId, err)
4949
}
5050

51-
warningWei := entities.CoinToWei(useCase.warningThreshold)
52-
criticalWei := entities.CoinToWei(useCase.criticalThreshold)
51+
warningWei := entities.EtherToWei(useCase.warningThreshold)
52+
criticalWei := entities.EtherToWei(useCase.criticalThreshold)
5353

5454
useCase.checkAndAlert(ctx, "BTC", btcLiquidity, warningWei, criticalWei)
5555
useCase.checkAndAlert(ctx, "RBTC", rbtcLiquidity, warningWei, criticalWei)

internal/usecases/liquidity_provider/low_liquidity_alert_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ const (
3030
func TestLowLiquidityAlertUseCase_Run_NoAlertAboveWarning(t *testing.T) {
3131
provider := &mocks.ProviderMock{}
3232
alertSender := &mocks.AlertSenderMock{}
33-
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.CoinToWei(aboveWarningCoins), nil).Once()
34-
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.CoinToWei(aboveWarningCoins), nil).Once()
33+
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.EtherToWei(aboveWarningCoins), nil).Once()
34+
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.EtherToWei(aboveWarningCoins), nil).Once()
3535
useCase := liquidity_provider.NewLowLiquidityAlertUseCase(provider, provider, alertSender, alertRecipientEmail, warningThreshold, criticalThreshold)
3636
err := useCase.Run(context.Background())
3737
provider.AssertExpectations(t)
@@ -42,8 +42,8 @@ func TestLowLiquidityAlertUseCase_Run_NoAlertAboveWarning(t *testing.T) {
4242
func TestLowLiquidityAlertUseCase_Run_NoAlertAtExactWarning(t *testing.T) {
4343
provider := &mocks.ProviderMock{}
4444
alertSender := &mocks.AlertSenderMock{}
45-
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.CoinToWei(atWarningCoins), nil).Once()
46-
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.CoinToWei(atWarningCoins), nil).Once()
45+
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.EtherToWei(atWarningCoins), nil).Once()
46+
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.EtherToWei(atWarningCoins), nil).Once()
4747
useCase := liquidity_provider.NewLowLiquidityAlertUseCase(provider, provider, alertSender, alertRecipientEmail, warningThreshold, criticalThreshold)
4848
err := useCase.Run(context.Background())
4949
provider.AssertExpectations(t)
@@ -54,8 +54,8 @@ func TestLowLiquidityAlertUseCase_Run_NoAlertAtExactWarning(t *testing.T) {
5454
func TestLowLiquidityAlertUseCase_Run_WarningAlertBtc(t *testing.T) {
5555
provider := &mocks.ProviderMock{}
5656
alertSender := &mocks.AlertSenderMock{}
57-
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.CoinToWei(belowWarningCoins), nil).Once()
58-
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.CoinToWei(aboveWarningCoins), nil).Once()
57+
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.EtherToWei(belowWarningCoins), nil).Once()
58+
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.EtherToWei(aboveWarningCoins), nil).Once()
5959
alertSender.On("SendAlert",
6060
test.AnyCtx,
6161
alerts.AlertSubjectHotWalletLowLiquidityWarning,
@@ -74,8 +74,8 @@ func TestLowLiquidityAlertUseCase_Run_WarningAlertBtc(t *testing.T) {
7474
func TestLowLiquidityAlertUseCase_Run_WarningAlertRbtc(t *testing.T) {
7575
provider := &mocks.ProviderMock{}
7676
alertSender := &mocks.AlertSenderMock{}
77-
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.CoinToWei(aboveWarningCoins), nil).Once()
78-
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.CoinToWei(belowWarningCoins), nil).Once()
77+
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.EtherToWei(aboveWarningCoins), nil).Once()
78+
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.EtherToWei(belowWarningCoins), nil).Once()
7979
alertSender.On("SendAlert",
8080
test.AnyCtx,
8181
alerts.AlertSubjectHotWalletLowLiquidityWarning,
@@ -95,7 +95,7 @@ func TestLowLiquidityAlertUseCase_Run_CriticalAlertBtc(t *testing.T) {
9595
provider := &mocks.ProviderMock{}
9696
alertSender := &mocks.AlertSenderMock{}
9797
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.NewWei(zeroCoins), nil).Once()
98-
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.CoinToWei(aboveWarningCoins), nil).Once()
98+
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.EtherToWei(aboveWarningCoins), nil).Once()
9999
alertSender.On("SendAlert",
100100
test.AnyCtx,
101101
alerts.AlertSubjectHotWalletLowLiquidityCritical,
@@ -114,7 +114,7 @@ func TestLowLiquidityAlertUseCase_Run_CriticalAlertBtc(t *testing.T) {
114114
func TestLowLiquidityAlertUseCase_Run_CriticalAlertRbtc(t *testing.T) {
115115
provider := &mocks.ProviderMock{}
116116
alertSender := &mocks.AlertSenderMock{}
117-
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.CoinToWei(aboveWarningCoins), nil).Once()
117+
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.EtherToWei(aboveWarningCoins), nil).Once()
118118
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.NewWei(zeroCoins), nil).Once()
119119
alertSender.On("SendAlert",
120120
test.AnyCtx,
@@ -163,7 +163,7 @@ func TestLowLiquidityAlertUseCase_Run_OnlyCriticalWhenBelowCritical(t *testing.T
163163
provider := &mocks.ProviderMock{}
164164
alertSender := &mocks.AlertSenderMock{}
165165
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.NewWei(zeroCoins), nil).Once()
166-
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.CoinToWei(aboveWarningCoins), nil).Once()
166+
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.EtherToWei(aboveWarningCoins), nil).Once()
167167
alertSender.On("SendAlert",
168168
test.AnyCtx,
169169
alerts.AlertSubjectHotWalletLowLiquidityCritical,
@@ -197,7 +197,7 @@ func TestLowLiquidityAlertUseCase_Run_ErrorFromPegoutProvider(t *testing.T) {
197197
func TestLowLiquidityAlertUseCase_Run_ErrorFromPeginProvider(t *testing.T) {
198198
provider := &mocks.ProviderMock{}
199199
alertSender := &mocks.AlertSenderMock{}
200-
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.CoinToWei(aboveWarningCoins), nil).Once()
200+
provider.On("AvailablePegoutLiquidity", mock.Anything).Return(entities.EtherToWei(aboveWarningCoins), nil).Once()
201201
provider.On("AvailablePeginLiquidity", mock.Anything).Return(entities.NewWei(zeroCoins), assert.AnError).Once()
202202
useCase := liquidity_provider.NewLowLiquidityAlertUseCase(provider, provider, alertSender, alertRecipientEmail, warningThreshold, criticalThreshold)
203203
err := useCase.Run(context.Background())

test/lp-swap/docker-compose.lps.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ services:
8686
- BTC_RELEASE_WATCHER_START_BLOCK
8787
- BTC_RELEASE_WATCHER_PAGE_SIZE
8888
- BTC_RELEASE_CHECK_TIMEOUT
89+
- BTC_MIN_TRANSFER_FEE_MULTIPLIER
90+
- RBTC_MIN_TRANSFER_FEE_MULTIPLIER
91+
- COLD_WALLET_FORCE_TRANSFER_AFTER_SECONDS
92+
- HOT_WALLET_LOW_LIQUIDITY_WARNING
93+
- HOT_WALLET_LOW_LIQUIDITY_CRITICAL
8994
ports:
9095
- "8080-8081:8080"
9196
networks:

0 commit comments

Comments
 (0)