@cranberry-money/shared-constants 8.15.429 → 8.15.431

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.
@@ -27,6 +27,29 @@ export declare const SNAPSHOT_REASON_OPTIONS: readonly [{
27
27
  readonly value: "AUDIT";
28
28
  readonly label: "Audit Record";
29
29
  }];
30
+ /**
31
+ * Asset types used for grouping wallet holdings
32
+ * These match the assetType values returned from the API
33
+ */
34
+ export declare const HOLDING_ASSET_TYPE: {
35
+ readonly STABLECOIN: "stablecoin";
36
+ readonly CRYPTO: "crypto";
37
+ readonly NATIVE_CRYPTO: "native_crypto";
38
+ readonly STOCK: "stock";
39
+ readonly ETF: "etf";
40
+ readonly TOKENIZED_SECURITY: "tokenized_security";
41
+ readonly TOKENIZED_RWA: "tokenized_rwa";
42
+ };
43
+ export type HoldingAssetType = (typeof HOLDING_ASSET_TYPE)[keyof typeof HOLDING_ASSET_TYPE];
44
+ /**
45
+ * Human-readable labels for holding asset types
46
+ * Used for section headers in holdings lists
47
+ */
48
+ export declare const HOLDING_ASSET_TYPE_LABELS: Record<string, string>;
49
+ /**
50
+ * Get label for an asset type with fallback
51
+ */
52
+ export declare function getHoldingAssetTypeLabel(assetType: string): string;
30
53
  export declare const ASSET_CLASS: {
31
54
  readonly EQUITY: "EQUITY";
32
55
  readonly FIXED_INCOME: "FIXED_INCOME";
@@ -1 +1 @@
1
- {"version":3,"file":"holdings.d.ts","sourceRoot":"","sources":["../../src/business/holdings.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,yBAAyB,cAAc,CAAC;AACrD,eAAO,MAAM,yBAAyB,cAAc,CAAC;AACrD,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAE7C,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEpF,eAAO,MAAM,2BAA2B,oBAAoB,CAAC;AAC7D,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AACrE,eAAO,MAAM,+BAA+B,qBAAqB,CAAC;AAClE,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAE1D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKxD,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAK1B,CAAC;AAMX,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAExE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAOhD,CAAC"}
1
+ {"version":3,"file":"holdings.d.ts","sourceRoot":"","sources":["../../src/business/holdings.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,yBAAyB,cAAc,CAAC;AACrD,eAAO,MAAM,yBAAyB,cAAc,CAAC;AACrD,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAE7C,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEpF,eAAO,MAAM,2BAA2B,oBAAoB,CAAC;AAC7D,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AACrE,eAAO,MAAM,+BAA+B,qBAAqB,CAAC;AAClE,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAE1D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKxD,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAK1B,CAAC;AAMX;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;CAQrB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE5F;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQ5D,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAElE;AAMD,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAExE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAOhD,CAAC"}
@@ -25,6 +25,41 @@ export const SNAPSHOT_REASON_OPTIONS = [
25
25
  { value: SNAPSHOT_REASON_AUDIT, label: SNAPSHOT_REASON_LABEL_AUDIT },
26
26
  ];
27
27
  // ============================================
28
+ // Holding Asset Types (for wallet holdings display)
29
+ // ============================================
30
+ /**
31
+ * Asset types used for grouping wallet holdings
32
+ * These match the assetType values returned from the API
33
+ */
34
+ export const HOLDING_ASSET_TYPE = {
35
+ STABLECOIN: 'stablecoin',
36
+ CRYPTO: 'crypto',
37
+ NATIVE_CRYPTO: 'native_crypto',
38
+ STOCK: 'stock',
39
+ ETF: 'etf',
40
+ TOKENIZED_SECURITY: 'tokenized_security',
41
+ TOKENIZED_RWA: 'tokenized_rwa',
42
+ };
43
+ /**
44
+ * Human-readable labels for holding asset types
45
+ * Used for section headers in holdings lists
46
+ */
47
+ export const HOLDING_ASSET_TYPE_LABELS = {
48
+ [HOLDING_ASSET_TYPE.STABLECOIN]: 'Stablecoins',
49
+ [HOLDING_ASSET_TYPE.CRYPTO]: 'Cryptocurrencies',
50
+ [HOLDING_ASSET_TYPE.NATIVE_CRYPTO]: 'Native Cryptocurrencies',
51
+ [HOLDING_ASSET_TYPE.STOCK]: 'Stocks',
52
+ [HOLDING_ASSET_TYPE.ETF]: 'ETFs',
53
+ [HOLDING_ASSET_TYPE.TOKENIZED_SECURITY]: 'Tokenized Securities',
54
+ [HOLDING_ASSET_TYPE.TOKENIZED_RWA]: 'Real World Assets',
55
+ };
56
+ /**
57
+ * Get label for an asset type with fallback
58
+ */
59
+ export function getHoldingAssetTypeLabel(assetType) {
60
+ return HOLDING_ASSET_TYPE_LABELS[assetType] || 'Other Assets';
61
+ }
62
+ // ============================================
28
63
  // Asset Classes
29
64
  // ============================================
30
65
  export const ASSET_CLASS = {
@@ -1 +1 @@
1
- {"version":3,"file":"holdings.js","sourceRoot":"","sources":["../../src/business/holdings.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,WAAW,CAAC;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,WAAW,CAAC;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,yBAAyB;IACpC,SAAS,EAAE,yBAAyB;IACpC,KAAK,EAAE,qBAAqB;CACpB,CAAC;AAIX,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AAC7D,MAAM,CAAC,MAAM,+BAA+B,GAAG,qBAAqB,CAAC;AACrE,MAAM,CAAC,MAAM,+BAA+B,GAAG,kBAAkB,CAAC;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAAG,cAAc,CAAC;AAE1D,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACpE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,2BAA2B;IACpD,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,+BAA+B;IAC5D,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,+BAA+B;IAC5D,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,2BAA2B;CAC5C,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,2BAA2B,EAAE;IACpE,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,+BAA+B,EAAE;IAC5E,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,+BAA+B,EAAE;IAC5E,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,2BAA2B,EAAE;CAC5D,CAAC;AAEX,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,cAAc;IAC5B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;CAClB,CAAC;AAIX,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC5D,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC9B,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,cAAc;IAC1C,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM;IAC1B,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,WAAW;IACpC,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,aAAa;IACxC,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,aAAa;CAChC,CAAC"}
1
+ {"version":3,"file":"holdings.js","sourceRoot":"","sources":["../../src/business/holdings.ts"],"names":[],"mappings":"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"}
@@ -18,40 +18,18 @@ export declare const BLOCKCHAIN: {
18
18
  readonly BASE: "base";
19
19
  };
20
20
  export type BlockchainType = (typeof BLOCKCHAIN)[keyof typeof BLOCKCHAIN];
21
- export declare const BLOCKCHAIN_LABELS: Record<string, string>;
22
- /**
23
- * Maps blockchain chain codes (as stored in database) to their native asset symbols
24
- * Used for transaction labeling and blockchain operations
25
- *
26
- * IMPORTANT: These are NATIVE tokens, not chain identifiers
27
- * Example: Arbitrum's native token is ETH (not ARB)
28
- */
29
- export declare const CHAIN_TO_NATIVE_ASSET: Record<string, string>;
30
- /**
31
- * Maps native asset short codes (ETH, BTC) to full blockchain names
32
- * Used when APIs expect full chain names but input is short code
33
- */
34
- export declare const NATIVE_ASSET_TO_CHAIN: Record<string, BlockchainType>;
35
21
  /**
36
- * Get full blockchain name from any chain identifier (short code or full name)
37
- * @param chain - Chain identifier (e.g., 'ETH', 'ethereum', 'BTC', 'bitcoin')
38
- * @returns Full blockchain name (e.g., 'ethereum', 'bitcoin') or original if not found
39
- */
40
- export declare function getChainName(chain: string): string;
41
- /**
42
- * Get native asset short code from any chain identifier
43
- * @param chain - Chain identifier (e.g., 'ETH', 'ethereum', 'BTC', 'bitcoin')
44
- * @returns Native asset symbol (e.g., 'ETH', 'BTC') or uppercase input if not found
45
- */
46
- export declare function getChainShortCode(chain: string): string;
47
- /**
48
- * Chain configuration matching ChainInfo from shared-types
22
+ * Chain configuration - THE SINGLE SOURCE OF TRUTH for all chain data
23
+ * All other chain-related lookups should derive from this array
49
24
  */
50
25
  export interface ChainConfig {
51
26
  code: BlockchainType;
52
27
  name: string;
53
28
  shortName: string;
54
29
  isActive: boolean;
30
+ explorerTxUrl: string;
31
+ addressPlaceholder: string;
32
+ confirmationTime: string;
55
33
  }
56
34
  /**
57
35
  * Centralized chain configuration for the app
@@ -59,14 +37,33 @@ export interface ChainConfig {
59
37
  * - name: human-readable name (e.g., 'Ethereum')
60
38
  * - shortName: native token symbol (e.g., 'ETH')
61
39
  * - isActive: whether the chain is currently supported in the app
40
+ * - explorerTxUrl: base URL for transaction explorer
41
+ * - addressPlaceholder: placeholder text for address inputs
42
+ * - confirmationTime: estimated confirmation time string
62
43
  */
63
44
  export declare const SUPPORTED_CHAINS: ChainConfig[];
45
+ /**
46
+ * Maps blockchain chain codes to their native asset symbols
47
+ * @deprecated Use getChainShortCode() instead for consistent behavior
48
+ */
49
+ export declare const CHAIN_TO_NATIVE_ASSET: Record<string, string>;
50
+ /**
51
+ * Maps native asset short codes to full blockchain names
52
+ * @deprecated Use getChainName() instead for consistent behavior
53
+ */
54
+ export declare const NATIVE_ASSET_TO_CHAIN: Record<string, BlockchainType>;
55
+ /**
56
+ * Human-readable labels for blockchain names
57
+ * @deprecated Use getChainConfig(code)?.name instead
58
+ */
59
+ export declare const BLOCKCHAIN_LABELS: Record<string, string>;
64
60
  /**
65
61
  * Get chain config by code
66
62
  */
67
63
  export declare function getChainConfig(code: string): ChainConfig | undefined;
68
64
  /**
69
65
  * Get chain config by short name (native asset symbol)
66
+ * Note: Returns first match (e.g., 'ETH' returns Ethereum, not Arbitrum)
70
67
  */
71
68
  export declare function getChainByShortName(shortName: string): ChainConfig | undefined;
72
69
  /**
@@ -74,10 +71,41 @@ export declare function getChainByShortName(shortName: string): ChainConfig | un
74
71
  */
75
72
  export declare function getActiveChains(): ChainConfig[];
76
73
  /**
77
- * Block explorer base URLs for transaction lookups
78
- * Maps chain identifiers to their explorer transaction URL prefix
74
+ * Get full blockchain name from any chain identifier (short code or full name)
75
+ * @param chain - Chain identifier (e.g., 'ETH', 'ethereum', 'BTC', 'bitcoin')
76
+ * @returns Full blockchain name (e.g., 'ethereum', 'bitcoin') or original if not found
79
77
  */
80
- export declare const BLOCK_EXPLORER_TX_URLS: Record<string, string>;
78
+ export declare function getChainName(chain: string): string;
79
+ /**
80
+ * Get native asset short code from any chain identifier
81
+ * @param chain - Chain identifier (e.g., 'ETH', 'ethereum', 'BTC', 'bitcoin')
82
+ * @returns Native asset symbol (e.g., 'ETH', 'BTC') or uppercase input if not found
83
+ */
84
+ export declare function getChainShortCode(chain: string): string;
85
+ /**
86
+ * Check if a chain short code represents Ethereum
87
+ */
88
+ export declare function isEthereumChain(chainShortCode: string): boolean;
89
+ /**
90
+ * Check if a chain short code represents Bitcoin
91
+ */
92
+ export declare function isBitcoinChain(chainShortCode: string): boolean;
93
+ /**
94
+ * Get the full blockchain display name from a chain short code
95
+ * @param chainShortCode - Chain short code (e.g., 'ETH', 'BTC')
96
+ * @returns Full blockchain name (e.g., 'Ethereum', 'Bitcoin')
97
+ */
98
+ export declare function getBlockchainDisplayName(chainShortCode: string): string;
99
+ /**
100
+ * Get address placeholder for input fields based on chain
101
+ * @param chainShortCode - Chain short code (e.g., 'ETH', 'BTC')
102
+ */
103
+ export declare function getAddressPlaceholder(chainShortCode: string): string;
104
+ /**
105
+ * Get estimated confirmation time for a chain
106
+ * @param chainShortCode - Chain short code (e.g., 'ETH', 'BTC')
107
+ */
108
+ export declare function getEstimatedConfirmationTime(chainShortCode: string): string;
81
109
  /**
82
110
  * Get block explorer URL for a transaction
83
111
  * @param chain - Chain identifier (e.g., 'ethereum', 'bitcoin', 'eth', 'btc')
@@ -85,6 +113,11 @@ export declare const BLOCK_EXPLORER_TX_URLS: Record<string, string>;
85
113
  * @returns Full URL to view the transaction on a block explorer
86
114
  */
87
115
  export declare function getBlockExplorerTxUrl(chain: string, txHash: string): string;
116
+ /**
117
+ * Block explorer base URLs for transaction lookups
118
+ * @deprecated Use getBlockExplorerTxUrl() instead
119
+ */
120
+ export declare const BLOCK_EXPLORER_TX_URLS: Record<string, string>;
88
121
  /**
89
122
  * Estimated transaction fees for "max amount" calculations
90
123
  * These are conservative estimates to ensure transfers go through
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/business/wallets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,eAAO,MAAM,0BAA0B;;;CAG7B,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,OAAO,0BAA0B,CAAC,CAAC;AAEpH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAGtF,CAAC;AAMF,eAAO,MAAM,UAAU;;;;;;;;;CASb,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAE1E,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASpD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAYxD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAMhE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWlD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWvD;AAMD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,EAOzC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE9E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,WAAW,EAAE,CAE/C;AAMD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWzD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAI3E;AAMD;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAEX;;GAEG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE9D;AAMD,eAAO,MAAM,uBAAuB;;;CAG1B,CAAC;AAMX,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAMX,eAAO,MAAM,uBAAuB;;;;;;CAM1B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAE3G,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAMhF,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAC;AAEjH,eAAO,MAAM,gCAAgC,EAAE,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAGpF,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAEjF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAK/D,CAAC"}
1
+ {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/business/wallets.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export const WALLET_VERIFICATION_STATUS_LABELS = {
13
13
  [WALLET_VERIFICATION_STATUS.VERIFIED]: 'Verified',
14
14
  };
15
15
  // ============================================
16
- // Blockchain Chains
16
+ // Blockchain Chains - Single Source of Truth
17
17
  // ============================================
18
18
  export const BLOCKCHAIN = {
19
19
  ETHEREUM: 'ethereum',
@@ -25,47 +25,143 @@ export const BLOCKCHAIN = {
25
25
  OPTIMISM: 'optimism',
26
26
  BASE: 'base',
27
27
  };
28
- export const BLOCKCHAIN_LABELS = {
29
- ethereum: 'Ethereum',
30
- bitcoin: 'Bitcoin',
31
- polygon: 'Polygon',
32
- solana: 'Solana',
33
- avalanche: 'Avalanche',
34
- arbitrum: 'Arbitrum',
35
- optimism: 'Optimism',
36
- base: 'Base',
37
- };
38
28
  /**
39
- * Maps blockchain chain codes (as stored in database) to their native asset symbols
40
- * Used for transaction labeling and blockchain operations
41
- *
42
- * IMPORTANT: These are NATIVE tokens, not chain identifiers
43
- * Example: Arbitrum's native token is ETH (not ARB)
44
- */
45
- export const CHAIN_TO_NATIVE_ASSET = {
46
- ethereum: 'ETH',
47
- bitcoin: 'BTC',
48
- btc: 'BTC',
49
- polygon: 'MATIC',
50
- solana: 'SOL',
51
- sol: 'SOL',
52
- avalanche: 'AVAX',
53
- avax: 'AVAX',
54
- arbitrum: 'ETH', // Arbitrum's native token is ETH
55
- optimism: 'ETH', // Optimism's native token is ETH
56
- base: 'ETH', // Base's native token is ETH
57
- };
29
+ * Centralized chain configuration for the app
30
+ * - code: blockchain identifier used in API calls (e.g., 'ethereum')
31
+ * - name: human-readable name (e.g., 'Ethereum')
32
+ * - shortName: native token symbol (e.g., 'ETH')
33
+ * - isActive: whether the chain is currently supported in the app
34
+ * - explorerTxUrl: base URL for transaction explorer
35
+ * - addressPlaceholder: placeholder text for address inputs
36
+ * - confirmationTime: estimated confirmation time string
37
+ */
38
+ export const SUPPORTED_CHAINS = [
39
+ {
40
+ code: BLOCKCHAIN.ETHEREUM,
41
+ name: 'Ethereum',
42
+ shortName: 'ETH',
43
+ isActive: true,
44
+ explorerTxUrl: 'https://etherscan.io/tx/',
45
+ addressPlaceholder: '0x...',
46
+ confirmationTime: '~2-3 minutes',
47
+ },
48
+ {
49
+ code: BLOCKCHAIN.BITCOIN,
50
+ name: 'Bitcoin',
51
+ shortName: 'BTC',
52
+ isActive: true,
53
+ explorerTxUrl: 'https://blockchain.com/btc/tx/',
54
+ addressPlaceholder: '1... or 3... or bc1...',
55
+ confirmationTime: '~10 minutes',
56
+ },
57
+ {
58
+ code: BLOCKCHAIN.POLYGON,
59
+ name: 'Polygon',
60
+ shortName: 'MATIC',
61
+ isActive: false,
62
+ explorerTxUrl: 'https://polygonscan.com/tx/',
63
+ addressPlaceholder: '0x...',
64
+ confirmationTime: '~2 minutes',
65
+ },
66
+ {
67
+ code: BLOCKCHAIN.SOLANA,
68
+ name: 'Solana',
69
+ shortName: 'SOL',
70
+ isActive: false,
71
+ explorerTxUrl: 'https://solscan.io/tx/',
72
+ addressPlaceholder: 'Enter address',
73
+ confirmationTime: '~1 minute',
74
+ },
75
+ {
76
+ code: BLOCKCHAIN.AVALANCHE,
77
+ name: 'Avalanche',
78
+ shortName: 'AVAX',
79
+ isActive: false,
80
+ explorerTxUrl: 'https://snowtrace.io/tx/',
81
+ addressPlaceholder: '0x...',
82
+ confirmationTime: '~2 minutes',
83
+ },
84
+ {
85
+ code: BLOCKCHAIN.ARBITRUM,
86
+ name: 'Arbitrum',
87
+ shortName: 'ETH',
88
+ isActive: false,
89
+ explorerTxUrl: 'https://arbiscan.io/tx/',
90
+ addressPlaceholder: '0x...',
91
+ confirmationTime: '~2 minutes',
92
+ },
93
+ {
94
+ code: BLOCKCHAIN.OPTIMISM,
95
+ name: 'Optimism',
96
+ shortName: 'ETH',
97
+ isActive: false,
98
+ explorerTxUrl: 'https://optimistic.etherscan.io/tx/',
99
+ addressPlaceholder: '0x...',
100
+ confirmationTime: '~2 minutes',
101
+ },
102
+ {
103
+ code: BLOCKCHAIN.BASE,
104
+ name: 'Base',
105
+ shortName: 'ETH',
106
+ isActive: false,
107
+ explorerTxUrl: 'https://basescan.org/tx/',
108
+ addressPlaceholder: '0x...',
109
+ confirmationTime: '~2 minutes',
110
+ },
111
+ ];
112
+ // ============================================
113
+ // Derived Lookups (built from SUPPORTED_CHAINS)
114
+ // ============================================
115
+ // Build lookup maps once for O(1) access
116
+ const chainByCode = new Map(SUPPORTED_CHAINS.map((c) => [c.code, c]));
117
+ const chainByShortName = new Map(SUPPORTED_CHAINS.map((c) => [c.shortName, c]));
58
118
  /**
59
- * Maps native asset short codes (ETH, BTC) to full blockchain names
60
- * Used when APIs expect full chain names but input is short code
119
+ * Maps blockchain chain codes to their native asset symbols
120
+ * @deprecated Use getChainShortCode() instead for consistent behavior
61
121
  */
62
- export const NATIVE_ASSET_TO_CHAIN = {
63
- ETH: BLOCKCHAIN.ETHEREUM,
64
- BTC: BLOCKCHAIN.BITCOIN,
65
- MATIC: BLOCKCHAIN.POLYGON,
66
- SOL: BLOCKCHAIN.SOLANA,
67
- AVAX: BLOCKCHAIN.AVALANCHE,
68
- };
122
+ export const CHAIN_TO_NATIVE_ASSET = Object.fromEntries([
123
+ ...SUPPORTED_CHAINS.map((c) => [c.code, c.shortName]),
124
+ // Aliases for common short codes used as input
125
+ ['btc', 'BTC'],
126
+ ['eth', 'ETH'],
127
+ ['sol', 'SOL'],
128
+ ['avax', 'AVAX'],
129
+ ]);
130
+ /**
131
+ * Maps native asset short codes to full blockchain names
132
+ * @deprecated Use getChainName() instead for consistent behavior
133
+ */
134
+ export const NATIVE_ASSET_TO_CHAIN = Object.fromEntries(SUPPORTED_CHAINS.filter((c) => c.shortName !== 'ETH' || c.code === BLOCKCHAIN.ETHEREUM).map((c) => [
135
+ c.shortName,
136
+ c.code,
137
+ ]));
138
+ /**
139
+ * Human-readable labels for blockchain names
140
+ * @deprecated Use getChainConfig(code)?.name instead
141
+ */
142
+ export const BLOCKCHAIN_LABELS = Object.fromEntries(SUPPORTED_CHAINS.map((c) => [c.code, c.name]));
143
+ // ============================================
144
+ // Chain Lookup Functions
145
+ // ============================================
146
+ /**
147
+ * Get chain config by code
148
+ */
149
+ export function getChainConfig(code) {
150
+ return chainByCode.get(code);
151
+ }
152
+ /**
153
+ * Get chain config by short name (native asset symbol)
154
+ * Note: Returns first match (e.g., 'ETH' returns Ethereum, not Arbitrum)
155
+ */
156
+ export function getChainByShortName(shortName) {
157
+ return chainByShortName.get(shortName);
158
+ }
159
+ /**
160
+ * Get only active chains
161
+ */
162
+ export function getActiveChains() {
163
+ return SUPPORTED_CHAINS.filter((c) => c.isActive);
164
+ }
69
165
  /**
70
166
  * Get full blockchain name from any chain identifier (short code or full name)
71
167
  * @param chain - Chain identifier (e.g., 'ETH', 'ethereum', 'BTC', 'bitcoin')
@@ -73,13 +169,15 @@ export const NATIVE_ASSET_TO_CHAIN = {
73
169
  */
74
170
  export function getChainName(chain) {
75
171
  const normalized = chain?.toLowerCase() || '';
76
- if (Object.values(BLOCKCHAIN).includes(normalized)) {
172
+ // Check if it's already a valid chain code
173
+ if (chainByCode.has(normalized)) {
77
174
  return normalized;
78
175
  }
176
+ // Check if it's a short name
79
177
  const upper = chain?.toUpperCase() || '';
80
- const mapped = NATIVE_ASSET_TO_CHAIN[upper];
81
- if (mapped) {
82
- return mapped;
178
+ const config = chainByShortName.get(upper);
179
+ if (config) {
180
+ return config.code;
83
181
  }
84
182
  return normalized;
85
183
  }
@@ -90,68 +188,66 @@ export function getChainName(chain) {
90
188
  */
91
189
  export function getChainShortCode(chain) {
92
190
  const normalized = chain?.toLowerCase() || '';
93
- const mapped = CHAIN_TO_NATIVE_ASSET[normalized];
94
- if (mapped) {
95
- return mapped;
191
+ // Check if it's a chain code
192
+ const config = chainByCode.get(normalized);
193
+ if (config) {
194
+ return config.shortName;
195
+ }
196
+ // Check common aliases
197
+ const aliases = { btc: 'BTC', eth: 'ETH', sol: 'SOL', avax: 'AVAX' };
198
+ if (aliases[normalized]) {
199
+ return aliases[normalized];
96
200
  }
201
+ // Check if it's already a valid short name
97
202
  const upper = chain?.toUpperCase() || '';
98
- if (upper in NATIVE_ASSET_TO_CHAIN) {
203
+ if (chainByShortName.has(upper)) {
99
204
  return upper;
100
205
  }
101
206
  return upper;
102
207
  }
208
+ // ============================================
209
+ // Chain Type Helpers
210
+ // ============================================
103
211
  /**
104
- * Centralized chain configuration for the app
105
- * - code: blockchain identifier used in API calls (e.g., 'ethereum')
106
- * - name: human-readable name (e.g., 'Ethereum')
107
- * - shortName: native token symbol (e.g., 'ETH')
108
- * - isActive: whether the chain is currently supported in the app
212
+ * Check if a chain short code represents Ethereum
109
213
  */
110
- export const SUPPORTED_CHAINS = [
111
- { code: BLOCKCHAIN.ETHEREUM, name: 'Ethereum', shortName: 'ETH', isActive: true },
112
- { code: BLOCKCHAIN.BITCOIN, name: 'Bitcoin', shortName: 'BTC', isActive: true },
113
- { code: BLOCKCHAIN.POLYGON, name: 'Polygon', shortName: 'MATIC', isActive: false },
114
- { code: BLOCKCHAIN.ARBITRUM, name: 'Arbitrum', shortName: 'ETH', isActive: false },
115
- { code: BLOCKCHAIN.OPTIMISM, name: 'Optimism', shortName: 'ETH', isActive: false },
116
- { code: BLOCKCHAIN.BASE, name: 'Base', shortName: 'ETH', isActive: false },
117
- ];
214
+ export function isEthereumChain(chainShortCode) {
215
+ return chainShortCode === 'ETH';
216
+ }
118
217
  /**
119
- * Get chain config by code
218
+ * Check if a chain short code represents Bitcoin
120
219
  */
121
- export function getChainConfig(code) {
122
- return SUPPORTED_CHAINS.find((c) => c.code === code);
220
+ export function isBitcoinChain(chainShortCode) {
221
+ return chainShortCode === 'BTC';
123
222
  }
124
223
  /**
125
- * Get chain config by short name (native asset symbol)
224
+ * Get the full blockchain display name from a chain short code
225
+ * @param chainShortCode - Chain short code (e.g., 'ETH', 'BTC')
226
+ * @returns Full blockchain name (e.g., 'Ethereum', 'Bitcoin')
126
227
  */
127
- export function getChainByShortName(shortName) {
128
- return SUPPORTED_CHAINS.find((c) => c.shortName === shortName);
228
+ export function getBlockchainDisplayName(chainShortCode) {
229
+ const config = chainByShortName.get(chainShortCode);
230
+ return config?.name || chainShortCode;
129
231
  }
130
232
  /**
131
- * Get only active chains
233
+ * Get address placeholder for input fields based on chain
234
+ * @param chainShortCode - Chain short code (e.g., 'ETH', 'BTC')
132
235
  */
133
- export function getActiveChains() {
134
- return SUPPORTED_CHAINS.filter((c) => c.isActive);
236
+ export function getAddressPlaceholder(chainShortCode) {
237
+ const config = chainByShortName.get(chainShortCode);
238
+ return config?.addressPlaceholder || 'Enter address';
239
+ }
240
+ /**
241
+ * Get estimated confirmation time for a chain
242
+ * @param chainShortCode - Chain short code (e.g., 'ETH', 'BTC')
243
+ */
244
+ export function getEstimatedConfirmationTime(chainShortCode) {
245
+ const config = chainByShortName.get(chainShortCode);
246
+ return config?.confirmationTime || '~5 minutes';
135
247
  }
136
248
  // ============================================
137
249
  // Block Explorer URLs
138
250
  // ============================================
139
- /**
140
- * Block explorer base URLs for transaction lookups
141
- * Maps chain identifiers to their explorer transaction URL prefix
142
- */
143
- export const BLOCK_EXPLORER_TX_URLS = {
144
- [BLOCKCHAIN.ETHEREUM]: 'https://etherscan.io/tx/',
145
- eth: 'https://etherscan.io/tx/',
146
- [BLOCKCHAIN.BITCOIN]: 'https://blockchain.com/btc/tx/',
147
- btc: 'https://blockchain.com/btc/tx/',
148
- [BLOCKCHAIN.POLYGON]: 'https://polygonscan.com/tx/',
149
- [BLOCKCHAIN.ARBITRUM]: 'https://arbiscan.io/tx/',
150
- [BLOCKCHAIN.OPTIMISM]: 'https://optimistic.etherscan.io/tx/',
151
- [BLOCKCHAIN.BASE]: 'https://basescan.org/tx/',
152
- [BLOCKCHAIN.AVALANCHE]: 'https://snowtrace.io/tx/',
153
- [BLOCKCHAIN.SOLANA]: 'https://solscan.io/tx/',
154
- };
155
251
  /**
156
252
  * Get block explorer URL for a transaction
157
253
  * @param chain - Chain identifier (e.g., 'ethereum', 'bitcoin', 'eth', 'btc')
@@ -160,9 +256,30 @@ export const BLOCK_EXPLORER_TX_URLS = {
160
256
  */
161
257
  export function getBlockExplorerTxUrl(chain, txHash) {
162
258
  const normalized = chain?.toLowerCase() || '';
163
- const baseUrl = BLOCK_EXPLORER_TX_URLS[normalized] || BLOCK_EXPLORER_TX_URLS[BLOCKCHAIN.ETHEREUM];
259
+ // Try to find by chain code
260
+ let config = chainByCode.get(normalized);
261
+ // Try common aliases
262
+ if (!config) {
263
+ const aliases = {
264
+ btc: BLOCKCHAIN.BITCOIN,
265
+ eth: BLOCKCHAIN.ETHEREUM,
266
+ };
267
+ if (aliases[normalized]) {
268
+ config = chainByCode.get(aliases[normalized]);
269
+ }
270
+ }
271
+ const baseUrl = config?.explorerTxUrl || 'https://etherscan.io/tx/';
164
272
  return `${baseUrl}${txHash}`;
165
273
  }
274
+ /**
275
+ * Block explorer base URLs for transaction lookups
276
+ * @deprecated Use getBlockExplorerTxUrl() instead
277
+ */
278
+ export const BLOCK_EXPLORER_TX_URLS = Object.fromEntries([
279
+ ...SUPPORTED_CHAINS.map((c) => [c.code, c.explorerTxUrl]),
280
+ ['eth', 'https://etherscan.io/tx/'],
281
+ ['btc', 'https://blockchain.com/btc/tx/'],
282
+ ]);
166
283
  // ============================================
167
284
  // Transfer Fee Estimates
168
285
  // ============================================
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../src/business/wallets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../src/business/wallets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cranberry-money/shared-constants",
3
- "version": "8.15.429",
3
+ "version": "8.15.431",
4
4
  "description": "Shared constants for Blueberry platform",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",