add bitcoin withdraw max fee validation config
This commit is contained in:
@@ -53,6 +53,7 @@ VALIDATION_DIGITAL_STOCK_ATTACHMENTS_MAX=5
|
|||||||
VALIDATION_SHIPPING_NOTE_MIN_LENGTH=20
|
VALIDATION_SHIPPING_NOTE_MIN_LENGTH=20
|
||||||
VALIDATION_SHIPPING_NOTE_MAX_LENGTH=4000
|
VALIDATION_SHIPPING_NOTE_MAX_LENGTH=4000
|
||||||
VALIDATION_ORDER_MESSAGE_MAX_LENGTH=2000
|
VALIDATION_ORDER_MESSAGE_MAX_LENGTH=2000
|
||||||
|
VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE=500
|
||||||
|
|
||||||
SIGNED_COOKIE_JWT_SECRET=change-me-in-production
|
SIGNED_COOKIE_JWT_SECRET=change-me-in-production
|
||||||
|
|
||||||
@@ -146,4 +147,5 @@ VITE_VALIDATION_DIGITAL_STOCK_ATTACHMENTS_MAX=5
|
|||||||
VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH=20
|
VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH=20
|
||||||
VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH=4000
|
VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH=4000
|
||||||
VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH=2000
|
VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH=2000
|
||||||
|
VITE_VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE=500
|
||||||
VITE_ORDERS_DETAIL_POLL_INTERVAL_MS=5000
|
VITE_ORDERS_DETAIL_POLL_INTERVAL_MS=5000
|
||||||
|
|||||||
@@ -103,7 +103,8 @@ export const getAppConfig = (): AppConfig => {
|
|||||||
digitalStockAttachmentsMax: envInt('VALIDATION_DIGITAL_STOCK_ATTACHMENTS_MAX'),
|
digitalStockAttachmentsMax: envInt('VALIDATION_DIGITAL_STOCK_ATTACHMENTS_MAX'),
|
||||||
shippingNoteMinLength: envInt('VALIDATION_SHIPPING_NOTE_MIN_LENGTH'),
|
shippingNoteMinLength: envInt('VALIDATION_SHIPPING_NOTE_MIN_LENGTH'),
|
||||||
shippingNoteMaxLength: envInt('VALIDATION_SHIPPING_NOTE_MAX_LENGTH'),
|
shippingNoteMaxLength: envInt('VALIDATION_SHIPPING_NOTE_MAX_LENGTH'),
|
||||||
orderMessageMaxLength: envInt('VALIDATION_ORDER_MESSAGE_MAX_LENGTH')
|
orderMessageMaxLength: envInt('VALIDATION_ORDER_MESSAGE_MAX_LENGTH'),
|
||||||
|
bitcoinWithdrawMaxFeeRateSatVbyte: envInt('VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE')
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -153,6 +153,12 @@ class EnvironmentVariables {
|
|||||||
@Max(10000)
|
@Max(10000)
|
||||||
VALIDATION_ORDER_MESSAGE_MAX_LENGTH: number;
|
VALIDATION_ORDER_MESSAGE_MAX_LENGTH: number;
|
||||||
|
|
||||||
|
@IsNotEmpty()
|
||||||
|
@IsNumber()
|
||||||
|
@Min(1)
|
||||||
|
@Max(1000)
|
||||||
|
VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE: number;
|
||||||
|
|
||||||
@IsNotEmpty()
|
@IsNotEmpty()
|
||||||
@IsNumber()
|
@IsNumber()
|
||||||
@Min(4)
|
@Min(4)
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
import { Transform } from 'class-transformer';
|
import { Transform } from 'class-transformer';
|
||||||
import { IsInt, IsNotEmpty, IsString, Max, Min } from 'class-validator';
|
import { IsInt, IsNotEmpty, IsString, Max, Min } from 'class-validator';
|
||||||
|
import { getAppConfig } from '../../../config';
|
||||||
import { IsBitcoinAddress } from '../../../validation/decorators/isBitcoinAddress';
|
import { IsBitcoinAddress } from '../../../validation/decorators/isBitcoinAddress';
|
||||||
|
|
||||||
|
const {
|
||||||
|
validation: { bitcoinWithdrawMaxFeeRateSatVbyte }
|
||||||
|
} = getAppConfig();
|
||||||
|
|
||||||
export class BitcoinWalletWithdrawDto {
|
export class BitcoinWalletWithdrawDto {
|
||||||
@Transform(({ value }: { value: unknown }) => (typeof value === 'string' ? value.trim() : value))
|
@Transform(({ value }: { value: unknown }) => (typeof value === 'string' ? value.trim() : value))
|
||||||
@IsString()
|
@IsString()
|
||||||
@@ -11,7 +16,7 @@ export class BitcoinWalletWithdrawDto {
|
|||||||
|
|
||||||
@IsInt()
|
@IsInt()
|
||||||
@Min(1)
|
@Min(1)
|
||||||
@Max(100)
|
@Max(bitcoinWithdrawMaxFeeRateSatVbyte)
|
||||||
feeRateSatVbyte: number;
|
feeRateSatVbyte: number;
|
||||||
|
|
||||||
@IsString()
|
@IsString()
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ export interface AppConfig {
|
|||||||
shippingNoteMinLength: number;
|
shippingNoteMinLength: number;
|
||||||
shippingNoteMaxLength: number;
|
shippingNoteMaxLength: number;
|
||||||
orderMessageMaxLength: number;
|
orderMessageMaxLength: number;
|
||||||
|
bitcoinWithdrawMaxFeeRateSatVbyte: number;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,8 @@ export const config = {
|
|||||||
digitalStockAttachmentsMax: parseInt(env('VITE_VALIDATION_DIGITAL_STOCK_ATTACHMENTS_MAX'), 10),
|
digitalStockAttachmentsMax: parseInt(env('VITE_VALIDATION_DIGITAL_STOCK_ATTACHMENTS_MAX'), 10),
|
||||||
shippingNoteMinLength: parseInt(env('VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH'), 10),
|
shippingNoteMinLength: parseInt(env('VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH'), 10),
|
||||||
shippingNoteMaxLength: parseInt(env('VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH'), 10),
|
shippingNoteMaxLength: parseInt(env('VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH'), 10),
|
||||||
orderMessageMaxLength: parseInt(env('VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH'), 10)
|
orderMessageMaxLength: parseInt(env('VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH'), 10),
|
||||||
|
bitcoinWithdrawMaxFeeRateSatVbyte: parseInt(env('VITE_VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE'), 10)
|
||||||
},
|
},
|
||||||
|
|
||||||
orders: {
|
orders: {
|
||||||
|
|||||||
Vendored
+1
@@ -29,6 +29,7 @@ interface ImportMetaEnv {
|
|||||||
readonly VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH?: string;
|
readonly VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH?: string;
|
||||||
readonly VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH?: string;
|
readonly VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH?: string;
|
||||||
readonly VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH?: string;
|
readonly VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH?: string;
|
||||||
|
readonly VITE_VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE?: string;
|
||||||
readonly VITE_SHOP_FIAT_CURRENCY?: string;
|
readonly VITE_SHOP_FIAT_CURRENCY?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -140,6 +140,7 @@ services:
|
|||||||
VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH: ${VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH}
|
VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH: ${VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH}
|
||||||
VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH: ${VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH}
|
VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH: ${VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH}
|
||||||
VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH: ${VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH}
|
VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH: ${VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH}
|
||||||
|
VITE_VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE: ${VITE_VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE}
|
||||||
VITE_ORDERS_DETAIL_POLL_INTERVAL_MS: ${VITE_ORDERS_DETAIL_POLL_INTERVAL_MS}
|
VITE_ORDERS_DETAIL_POLL_INTERVAL_MS: ${VITE_ORDERS_DETAIL_POLL_INTERVAL_MS}
|
||||||
container_name: ${COMPOSE_PROJECT_NAME}_nginx
|
container_name: ${COMPOSE_PROJECT_NAME}_nginx
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ ARG VITE_VALIDATION_DIGITAL_STOCK_ATTACHMENTS_MAX
|
|||||||
ARG VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH
|
ARG VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH
|
||||||
ARG VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH
|
ARG VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH
|
||||||
ARG VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH
|
ARG VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH
|
||||||
|
ARG VITE_VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE
|
||||||
ARG VITE_ORDERS_DETAIL_POLL_INTERVAL_MS
|
ARG VITE_ORDERS_DETAIL_POLL_INTERVAL_MS
|
||||||
|
|
||||||
ENV VITE_API_BASE_URL=$VITE_API_BASE_URL \
|
ENV VITE_API_BASE_URL=$VITE_API_BASE_URL \
|
||||||
@@ -45,6 +46,7 @@ ENV VITE_API_BASE_URL=$VITE_API_BASE_URL \
|
|||||||
VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH=$VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH \
|
VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH=$VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH \
|
||||||
VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH=$VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH \
|
VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH=$VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH \
|
||||||
VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH=$VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH \
|
VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH=$VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH \
|
||||||
|
VITE_VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE=$VITE_VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE \
|
||||||
VITE_ORDERS_DETAIL_POLL_INTERVAL_MS=$VITE_ORDERS_DETAIL_POLL_INTERVAL_MS
|
VITE_ORDERS_DETAIL_POLL_INTERVAL_MS=$VITE_ORDERS_DETAIL_POLL_INTERVAL_MS
|
||||||
|
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|||||||
Reference in New Issue
Block a user