@cranberry-money/shared-utils 8.23.215 → 8.23.218
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/validation/wallets.d.ts +15 -0
- package/dist/validation/wallets.d.ts.map +1 -0
- package/dist/validation/wallets.js +81 -0
- package/dist/validation/wallets.js.map +1 -0
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export { NUMBER_FORMAT_OPTIONS_CURRENCY, NUMBER_FORMAT_OPTIONS_CURRENCY_SIGNED,
|
|
|
5
5
|
export { getTradeStatusBadge, getOrderStatusBadge, getTargetTradeStatusBadge } from './badges';
|
|
6
6
|
export { formatPortfolioValue, calculateTotalValue, getMarketAllocation, getCashAllocation, validateAllocations, } from './portfolio';
|
|
7
7
|
export { isNumericOnly, validatePassword, formatVerificationToken, validateEmailConfirmation, isValidPhoneFormat, isValidFullName, formatPhoneNumber, isValidInvestmentAmount, isValidSourceOfFunds, } from './validation';
|
|
8
|
+
export { isValidEthereumAddress, isValidBitcoinAddress, validateWalletAddress, formatWalletAddress, formatWalletAddressShort, formatWalletAddressMedium, formatWalletAddressLong, getBlockchainExplorerUrl, getTransactionExplorerUrl, isEVMCompatible, isBitcoinBased, } from './validation/wallets';
|
|
8
9
|
export { validateUserProfileField } from './user-validation';
|
|
9
10
|
export { hasActiveFilters, countActiveFilters, hasActiveInstrumentFilters, countActiveInstrumentFilters, hasActiveTradeFilters, countActiveTradeFilters, hasActiveTransactionFilters, countActiveTransactionFilters, hasActiveOrderFilters, countActiveOrderFilters, } from './filters';
|
|
10
11
|
export { combineTargetAndActualAllocations, transformAllocationsToDisplayItems, calculateAllocationTotals, formatAllocationPercentage, } from './dashboard';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGjF,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,SAAS,EACT,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAG/F,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGpE,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,OAAO,EAEL,iBAAiB,EACjB,wBAAwB,EAExB,YAAY,EACZ,mBAAmB,EAEnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EAErB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGjF,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,SAAS,EACT,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAG/F,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGpE,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGpG,OAAO,EAEL,iBAAiB,EACjB,wBAAwB,EAExB,YAAY,EACZ,mBAAmB,EAEnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EAErB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,8 @@ export { getTradeStatusBadge, getOrderStatusBadge, getTargetTradeStatusBadge } f
|
|
|
12
12
|
export { formatPortfolioValue, calculateTotalValue, getMarketAllocation, getCashAllocation, validateAllocations, } from './portfolio';
|
|
13
13
|
// Validation utilities
|
|
14
14
|
export { isNumericOnly, validatePassword, formatVerificationToken, validateEmailConfirmation, isValidPhoneFormat, isValidFullName, formatPhoneNumber, isValidInvestmentAmount, isValidSourceOfFunds, } from './validation';
|
|
15
|
+
// Wallet validation utilities
|
|
16
|
+
export { isValidEthereumAddress, isValidBitcoinAddress, validateWalletAddress, formatWalletAddress, formatWalletAddressShort, formatWalletAddressMedium, formatWalletAddressLong, getBlockchainExplorerUrl, getTransactionExplorerUrl, isEVMCompatible, isBitcoinBased, } from './validation/wallets';
|
|
15
17
|
// User profile validation utilities
|
|
16
18
|
export { validateUserProfileField } from './user-validation';
|
|
17
19
|
// Filter utilities
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEjE,4BAA4B;AAC5B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEjF,2CAA2C;AAC3C,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,SAAS,EACT,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE/F,sBAAsB;AACtB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,uBAAuB;AACvB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,oCAAoC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,mBAAmB;AACnB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,sBAAsB;AACtB,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,iCAAiC;AACjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpE,6BAA6B;AAC7B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,6BAA6B;AAC7B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEpG,iCAAiC;AACjC,OAAO;AACL,qFAAqF;AACrF,iBAAiB,EACjB,wBAAwB;AACxB,oCAAoC;AACpC,YAAY,EACZ,mBAAmB;AACnB,YAAY;AACZ,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,GAItB,MAAM,eAAe,CAAC;AAEvB,sFAAsF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEjE,4BAA4B;AAC5B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEjF,2CAA2C;AAC3C,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,SAAS,EACT,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE/F,sBAAsB;AACtB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,uBAAuB;AACvB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,oCAAoC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,mBAAmB;AACnB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,sBAAsB;AACtB,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,iCAAiC;AACjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpE,6BAA6B;AAC7B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,6BAA6B;AAC7B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEpG,iCAAiC;AACjC,OAAO;AACL,qFAAqF;AACrF,iBAAiB,EACjB,wBAAwB;AACxB,oCAAoC;AACpC,YAAY,EACZ,mBAAmB;AACnB,YAAY;AACZ,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,GAItB,MAAM,eAAe,CAAC;AAEvB,sFAAsF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet validation utilities
|
|
3
|
+
*/
|
|
4
|
+
export declare const isValidEthereumAddress: (address: string) => boolean;
|
|
5
|
+
export declare const isValidBitcoinAddress: (address: string) => boolean;
|
|
6
|
+
export declare const validateWalletAddress: (address: string, networkType: string) => boolean;
|
|
7
|
+
export declare const formatWalletAddress: (address: string, maxLength?: number) => string;
|
|
8
|
+
export declare const formatWalletAddressShort: (address: string) => string;
|
|
9
|
+
export declare const formatWalletAddressMedium: (address: string) => string;
|
|
10
|
+
export declare const formatWalletAddressLong: (address: string) => string;
|
|
11
|
+
export declare const getBlockchainExplorerUrl: (address: string, networkType: string) => string;
|
|
12
|
+
export declare const getTransactionExplorerUrl: (txHash: string, networkType: string) => string;
|
|
13
|
+
export declare const isEVMCompatible: (networkType: string) => boolean;
|
|
14
|
+
export declare const isBitcoinBased: (networkType: string) => boolean;
|
|
15
|
+
//# sourceMappingURL=wallets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/validation/wallets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,eAAO,MAAM,sBAAsB,GAAI,SAAS,MAAM,KAAG,OAExD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,OAEvD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,EAAE,aAAa,MAAM,KAAG,OAc5E,CAAC;AAMF,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,YAAW,MAAW,KAAG,MAO7E,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,SAAS,MAAM,KAAG,MAE1D,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,KAAG,MAE3D,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,KAAG,MAEzD,CAAC;AAMF,eAAO,MAAM,wBAAwB,GAAI,SAAS,MAAM,EAAE,aAAa,MAAM,KAAG,MAW/E,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,QAAQ,MAAM,EAAE,aAAa,MAAM,KAAG,MAW/E,CAAC;AAMF,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,KAAG,OAGrD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,aAAa,MAAM,KAAG,OAGpD,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet validation utilities
|
|
3
|
+
*/
|
|
4
|
+
import { WALLET_ADDRESS_PATTERNS } from '@cranberry-money/shared-constants';
|
|
5
|
+
// ============================================
|
|
6
|
+
// Address Validation
|
|
7
|
+
// ============================================
|
|
8
|
+
export const isValidEthereumAddress = (address) => {
|
|
9
|
+
return WALLET_ADDRESS_PATTERNS.ETHEREUM.test(address);
|
|
10
|
+
};
|
|
11
|
+
export const isValidBitcoinAddress = (address) => {
|
|
12
|
+
return WALLET_ADDRESS_PATTERNS.BITCOIN.test(address);
|
|
13
|
+
};
|
|
14
|
+
export const validateWalletAddress = (address, networkType) => {
|
|
15
|
+
const normalizedNetwork = networkType.toLowerCase();
|
|
16
|
+
// EVM-compatible chains use Ethereum address format
|
|
17
|
+
if (['ethereum', 'eth', 'polygon', 'matic', 'arbitrum', 'optimism', 'base'].includes(normalizedNetwork)) {
|
|
18
|
+
return isValidEthereumAddress(address);
|
|
19
|
+
}
|
|
20
|
+
// Bitcoin-based chains
|
|
21
|
+
if (['bitcoin', 'btc'].includes(normalizedNetwork)) {
|
|
22
|
+
return isValidBitcoinAddress(address);
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
};
|
|
26
|
+
// ============================================
|
|
27
|
+
// Address Formatting
|
|
28
|
+
// ============================================
|
|
29
|
+
export const formatWalletAddress = (address, maxLength = 16) => {
|
|
30
|
+
if (address.length <= maxLength)
|
|
31
|
+
return address;
|
|
32
|
+
const prefixLength = Math.floor(maxLength / 2) - 2;
|
|
33
|
+
const suffixLength = maxLength - prefixLength - 3;
|
|
34
|
+
return `${address.slice(0, prefixLength)}...${address.slice(-suffixLength)}`;
|
|
35
|
+
};
|
|
36
|
+
export const formatWalletAddressShort = (address) => {
|
|
37
|
+
return formatWalletAddress(address, 12);
|
|
38
|
+
};
|
|
39
|
+
export const formatWalletAddressMedium = (address) => {
|
|
40
|
+
return formatWalletAddress(address, 16);
|
|
41
|
+
};
|
|
42
|
+
export const formatWalletAddressLong = (address) => {
|
|
43
|
+
return formatWalletAddress(address, 24);
|
|
44
|
+
};
|
|
45
|
+
// ============================================
|
|
46
|
+
// Blockchain Explorer URLs
|
|
47
|
+
// ============================================
|
|
48
|
+
export const getBlockchainExplorerUrl = (address, networkType) => {
|
|
49
|
+
const explorers = {
|
|
50
|
+
ethereum: `https://etherscan.io/address/${address}`,
|
|
51
|
+
polygon: `https://polygonscan.com/address/${address}`,
|
|
52
|
+
bitcoin: `https://blockchain.com/btc/address/${address}`,
|
|
53
|
+
arbitrum: `https://arbiscan.io/address/${address}`,
|
|
54
|
+
optimism: `https://optimistic.etherscan.io/address/${address}`,
|
|
55
|
+
base: `https://basescan.org/address/${address}`,
|
|
56
|
+
};
|
|
57
|
+
return explorers[networkType.toLowerCase()] || '';
|
|
58
|
+
};
|
|
59
|
+
export const getTransactionExplorerUrl = (txHash, networkType) => {
|
|
60
|
+
const explorers = {
|
|
61
|
+
ethereum: `https://etherscan.io/tx/${txHash}`,
|
|
62
|
+
polygon: `https://polygonscan.com/tx/${txHash}`,
|
|
63
|
+
bitcoin: `https://blockchain.com/btc/tx/${txHash}`,
|
|
64
|
+
arbitrum: `https://arbiscan.io/tx/${txHash}`,
|
|
65
|
+
optimism: `https://optimistic.etherscan.io/tx/${txHash}`,
|
|
66
|
+
base: `https://basescan.org/tx/${txHash}`,
|
|
67
|
+
};
|
|
68
|
+
return explorers[networkType.toLowerCase()] || '';
|
|
69
|
+
};
|
|
70
|
+
// ============================================
|
|
71
|
+
// Network Helpers
|
|
72
|
+
// ============================================
|
|
73
|
+
export const isEVMCompatible = (networkType) => {
|
|
74
|
+
const normalizedNetwork = networkType.toLowerCase();
|
|
75
|
+
return ['ethereum', 'eth', 'polygon', 'matic', 'arbitrum', 'optimism', 'base'].includes(normalizedNetwork);
|
|
76
|
+
};
|
|
77
|
+
export const isBitcoinBased = (networkType) => {
|
|
78
|
+
const normalizedNetwork = networkType.toLowerCase();
|
|
79
|
+
return ['bitcoin', 'btc'].includes(normalizedNetwork);
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=wallets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../src/validation/wallets.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cranberry-money/shared-utils",
|
|
3
|
-
"version": "8.23.
|
|
3
|
+
"version": "8.23.218",
|
|
4
4
|
"description": "Shared utility functions for Blueberry platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"prepublishOnly": "npm run clean && npm run typecheck && npm test && npm run build"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@cranberry-money/shared-constants": "^8.15.
|
|
33
|
-
"@cranberry-money/shared-types": "^8.22.
|
|
32
|
+
"@cranberry-money/shared-constants": "^8.15.243",
|
|
33
|
+
"@cranberry-money/shared-types": "^8.22.218"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/jest": "^30.0.0",
|