@sudobility/types 1.9.55 → 1.9.57
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/README.md +44 -280
- package/dist/index.d.ts +50 -50
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -201
- package/dist/index.js.map +1 -1
- package/dist/types/blockchain/common.d.ts +3 -3
- package/dist/types/blockchain/common.d.ts.map +1 -1
- package/dist/types/blockchain/common.js +9 -16
- package/dist/types/blockchain/common.js.map +1 -1
- package/dist/types/blockchain/index.d.ts +4 -4
- package/dist/types/blockchain/index.d.ts.map +1 -1
- package/dist/types/blockchain/index.js +3 -17
- package/dist/types/blockchain/index.js.map +1 -1
- package/dist/types/blockchain/validation.d.ts +1 -1
- package/dist/types/blockchain/validation.d.ts.map +1 -1
- package/dist/types/blockchain/validation.js +6 -12
- package/dist/types/blockchain/validation.js.map +1 -1
- package/dist/types/business/enums.js +46 -49
- package/dist/types/business/enums.js.map +1 -1
- package/dist/types/business/wallet-status.d.ts +2 -2
- package/dist/types/business/wallet-status.d.ts.map +1 -1
- package/dist/types/business/wallet-status.js +10 -16
- package/dist/types/business/wallet-status.js.map +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/common.js +1 -2
- package/dist/types/common.js.map +1 -1
- package/dist/types/config/app-config.d.ts +1 -1
- package/dist/types/config/app-config.d.ts.map +1 -1
- package/dist/types/config/app-config.js +1 -2
- package/dist/types/config/app-config.js.map +1 -1
- package/dist/types/config/environment.d.ts +1 -1
- package/dist/types/config/environment.d.ts.map +1 -1
- package/dist/types/config/environment.js +2 -5
- package/dist/types/config/environment.js.map +1 -1
- package/dist/types/consumables/index.js +1 -2
- package/dist/types/consumables/index.js.map +1 -1
- package/dist/types/entity/entity.js +6 -9
- package/dist/types/entity/entity.js.map +1 -1
- package/dist/types/entity/permissions.d.ts +1 -1
- package/dist/types/entity/permissions.d.ts.map +1 -1
- package/dist/types/entity/permissions.js +12 -17
- package/dist/types/entity/permissions.js.map +1 -1
- package/dist/types/entity/requests.d.ts +1 -1
- package/dist/types/entity/requests.d.ts.map +1 -1
- package/dist/types/entity/requests.js +1 -2
- package/dist/types/entity/requests.js.map +1 -1
- package/dist/types/entity/responses.d.ts +2 -2
- package/dist/types/entity/responses.d.ts.map +1 -1
- package/dist/types/entity/responses.js +1 -2
- package/dist/types/entity/responses.js.map +1 -1
- package/dist/types/infrastructure/analytics.d.ts +1 -1
- package/dist/types/infrastructure/analytics.d.ts.map +1 -1
- package/dist/types/infrastructure/analytics.js +3 -7
- package/dist/types/infrastructure/analytics.js.map +1 -1
- package/dist/types/infrastructure/api.d.ts +2 -2
- package/dist/types/infrastructure/api.d.ts.map +1 -1
- package/dist/types/infrastructure/api.js +5 -9
- package/dist/types/infrastructure/api.js.map +1 -1
- package/dist/types/infrastructure/firebase-user.js +1 -2
- package/dist/types/infrastructure/firebase-user.js.map +1 -1
- package/dist/types/infrastructure/navigation.d.ts +1 -1
- package/dist/types/infrastructure/navigation.d.ts.map +1 -1
- package/dist/types/infrastructure/navigation.js +1 -2
- package/dist/types/infrastructure/network.d.ts +1 -1
- package/dist/types/infrastructure/network.d.ts.map +1 -1
- package/dist/types/infrastructure/network.js +1 -4
- package/dist/types/infrastructure/network.js.map +1 -1
- package/dist/types/infrastructure/wallet.js +2 -5
- package/dist/types/infrastructure/wallet.js.map +1 -1
- package/dist/types/subscription/entitlements.js +1 -4
- package/dist/types/subscription/entitlements.js.map +1 -1
- package/dist/types/subscription/period.js +2 -5
- package/dist/types/subscription/period.js.map +1 -1
- package/dist/types/subscription/rate-limits.js +2 -5
- package/dist/types/subscription/rate-limits.js.map +1 -1
- package/dist/utils/async-helpers.d.ts +1 -1
- package/dist/utils/async-helpers.d.ts.map +1 -1
- package/dist/utils/async-helpers.js +7 -16
- package/dist/utils/async-helpers.js.map +1 -1
- package/dist/utils/auth/admin-emails.js +3 -8
- package/dist/utils/auth/admin-emails.js.map +1 -1
- package/dist/utils/auth/auth.d.ts +2 -2
- package/dist/utils/auth/auth.d.ts.map +1 -1
- package/dist/utils/auth/auth.js +14 -24
- package/dist/utils/auth/auth.js.map +1 -1
- package/dist/utils/blockchain/address.d.ts +2 -2
- package/dist/utils/blockchain/address.d.ts.map +1 -1
- package/dist/utils/blockchain/address.js +21 -32
- package/dist/utils/blockchain/address.js.map +1 -1
- package/dist/utils/blockchain/event-helpers.js +9 -20
- package/dist/utils/blockchain/event-helpers.js.map +1 -1
- package/dist/utils/constants/application.js +2 -20
- package/dist/utils/constants/application.js.map +1 -1
- package/dist/utils/constants/status-values.js +1 -4
- package/dist/utils/constants/status-values.js.map +1 -1
- package/dist/utils/formatting/currency.js +6 -11
- package/dist/utils/formatting/currency.js.map +1 -1
- package/dist/utils/formatting/date.d.ts +1 -1
- package/dist/utils/formatting/date.d.ts.map +1 -1
- package/dist/utils/formatting/date.js +7 -16
- package/dist/utils/formatting/date.js.map +1 -1
- package/dist/utils/formatting/string.d.ts +1 -1
- package/dist/utils/formatting/string.d.ts.map +1 -1
- package/dist/utils/formatting/string.js +16 -34
- package/dist/utils/formatting/string.js.map +1 -1
- package/dist/utils/logging/logger.d.ts +1 -1
- package/dist/utils/logging/logger.d.ts.map +1 -1
- package/dist/utils/logging/logger.js +2 -10
- package/dist/utils/logging/logger.js.map +1 -1
- package/dist/utils/url/url-params.d.ts +1 -1
- package/dist/utils/url/url-params.d.ts.map +1 -1
- package/dist/utils/url/url-params.js +1 -6
- package/dist/utils/url/url-params.js.map +1 -1
- package/dist/utils/validation/type-validation.d.ts +1 -1
- package/dist/utils/validation/type-validation.d.ts.map +1 -1
- package/dist/utils/validation/type-validation.js +27 -48
- package/dist/utils/validation/type-validation.js.map +1 -1
- package/dist/utils/validation/web3-username-validator.d.ts +2 -2
- package/dist/utils/validation/web3-username-validator.d.ts.map +1 -1
- package/dist/utils/validation/web3-username-validator.js +6 -10
- package/dist/utils/validation/web3-username-validator.js.map +1 -1
- package/package.json +4 -11
- package/dist/index.cjs +0 -243
- package/dist/types/blockchain/common.cjs +0 -127
- package/dist/types/blockchain/index.cjs +0 -30
- package/dist/types/blockchain/validation.cjs +0 -144
- package/dist/types/business/enums.cjs +0 -367
- package/dist/types/business/wallet-status.cjs +0 -38
- package/dist/types/common.cjs +0 -12
- package/dist/types/config/app-config.cjs +0 -6
- package/dist/types/config/environment.cjs +0 -24
- package/dist/types/consumables/index.cjs +0 -8
- package/dist/types/entity/entity.cjs +0 -51
- package/dist/types/entity/permissions.cjs +0 -93
- package/dist/types/entity/requests.cjs +0 -7
- package/dist/types/entity/responses.cjs +0 -7
- package/dist/types/infrastructure/analytics.cjs +0 -212
- package/dist/types/infrastructure/api.cjs +0 -43
- package/dist/types/infrastructure/firebase-user.cjs +0 -10
- package/dist/types/infrastructure/navigation.cjs +0 -3
- package/dist/types/infrastructure/network.cjs +0 -18
- package/dist/types/infrastructure/wallet.cjs +0 -37
- package/dist/types/subscription/entitlements.cjs +0 -14
- package/dist/types/subscription/period.cjs +0 -29
- package/dist/types/subscription/rate-limits.cjs +0 -20
- package/dist/utils/async-helpers.cjs +0 -244
- package/dist/utils/auth/admin-emails.cjs +0 -79
- package/dist/utils/auth/auth.cjs +0 -99
- package/dist/utils/blockchain/address.cjs +0 -225
- package/dist/utils/blockchain/event-helpers.cjs +0 -143
- package/dist/utils/constants/application.cjs +0 -152
- package/dist/utils/constants/status-values.cjs +0 -14
- package/dist/utils/formatting/currency.cjs +0 -39
- package/dist/utils/formatting/date.cjs +0 -197
- package/dist/utils/formatting/string.cjs +0 -326
- package/dist/utils/logging/logger.cjs +0 -92
- package/dist/utils/url/url-params.cjs +0 -128
- package/dist/utils/validation/type-validation.cjs +0 -250
- package/dist/utils/validation/web3-username-validator.cjs +0 -132
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/async-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"async-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/async-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;;GAMG;AACH,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,SAAS,GAAU,CAAC,EACxB,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,UAAU,MAAM,KACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CASxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,MAAM,gBAAgB,GAAU,CAAC,EAC/B,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,YAAY,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,EACtC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAC3C,UAAU,MAAM,KACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAerB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,YAAY,GAAU,CAAC,SAAS,SAAS,OAAO,EAAE,EACtD,YAAY,SAAS,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EACjE,UAAU,MAAM,KACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAaxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,QAAA,MAAM,WAAW,GAAU,CAAC,EAC1B,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,MAAM,EACjB,UAAU,MAAM,KACf,OAAO,CAAC,CAAC,CAcX,CAAC;AAOF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,QAAA,MAAM,SAAS,GAAU,CAAC,EACxB,KAAK,MAAM,EACX,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,QAAO,MAAsB,KAC5B,OAAO,CAAC,CAAC,CAWX,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,iBAAiB,QAAO,IAO7B,CAAC;AAOF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,MAAM,aAAa,GAAI,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC3C,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9B,OAAO,MAAM,EACb,KAAK,MAAM,KACV,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAsBvC,CAAC;AAEF,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,KAAK,WAAW,GACjB,CAAC"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Common async operation patterns and helpers.
|
|
4
3
|
* Reduces boilerplate code for common async operations.
|
|
5
4
|
*
|
|
6
5
|
* @since 1.0.0
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
exports.debounceAsync = exports.clearExpiredCache = exports.withCache = exports.withTimeout = exports.safeParallel = exports.withLoadingState = exports.safeAsync = void 0;
|
|
10
|
-
const logger_1 = require("./logging/logger");
|
|
7
|
+
import { logger } from './logging/logger.js';
|
|
11
8
|
/**
|
|
12
9
|
* Safely execute an async operation with error handling.
|
|
13
10
|
* Returns a result object instead of throwing.
|
|
@@ -35,11 +32,10 @@ const safeAsync = async (operation, context) => {
|
|
|
35
32
|
}
|
|
36
33
|
catch (error) {
|
|
37
34
|
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
38
|
-
|
|
35
|
+
logger.error(`Async operation failed: ${errorObj.message}`, context, error);
|
|
39
36
|
return { error: errorObj, success: false };
|
|
40
37
|
}
|
|
41
38
|
};
|
|
42
|
-
exports.safeAsync = safeAsync;
|
|
43
39
|
/**
|
|
44
40
|
* Execute async operation with loading state tracking.
|
|
45
41
|
* Manages `setLoading` and `setError` callbacks automatically.
|
|
@@ -72,14 +68,13 @@ const withLoadingState = async (operation, setLoading, setError, context) => {
|
|
|
72
68
|
catch (error) {
|
|
73
69
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
74
70
|
setError(errorMessage);
|
|
75
|
-
|
|
71
|
+
logger.error(`Operation failed: ${errorMessage}`, context, error);
|
|
76
72
|
return undefined;
|
|
77
73
|
}
|
|
78
74
|
finally {
|
|
79
75
|
setLoading(false);
|
|
80
76
|
}
|
|
81
77
|
};
|
|
82
|
-
exports.withLoadingState = withLoadingState;
|
|
83
78
|
/**
|
|
84
79
|
* Execute multiple async operations in parallel with error handling.
|
|
85
80
|
* All operations run concurrently via `Promise.all`.
|
|
@@ -105,11 +100,10 @@ const safeParallel = async (operations, context) => {
|
|
|
105
100
|
}
|
|
106
101
|
catch (error) {
|
|
107
102
|
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
108
|
-
|
|
103
|
+
logger.error(`Parallel operations failed: ${errorObj.message}`, context, error);
|
|
109
104
|
return { error: errorObj, success: false };
|
|
110
105
|
}
|
|
111
106
|
};
|
|
112
|
-
exports.safeParallel = safeParallel;
|
|
113
107
|
/**
|
|
114
108
|
* Execute async operation with a timeout.
|
|
115
109
|
* Rejects if the operation does not complete within `timeoutMs`.
|
|
@@ -137,11 +131,10 @@ const withTimeout = async (operation, timeoutMs, context) => {
|
|
|
137
131
|
return await Promise.race([operation(), timeoutPromise]);
|
|
138
132
|
}
|
|
139
133
|
catch (error) {
|
|
140
|
-
|
|
134
|
+
logger.error(`Timeout operation failed`, context, error);
|
|
141
135
|
throw error;
|
|
142
136
|
}
|
|
143
137
|
};
|
|
144
|
-
exports.withTimeout = withTimeout;
|
|
145
138
|
/**
|
|
146
139
|
* In-memory cache for {@link withCache}.
|
|
147
140
|
*/
|
|
@@ -178,7 +171,6 @@ const withCache = async (key, operation, ttlMs = 5 * 60 * 1000 // 5 minutes defa
|
|
|
178
171
|
cache.set(key, { data: result, timestamp: now, ttl: ttlMs });
|
|
179
172
|
return result;
|
|
180
173
|
};
|
|
181
|
-
exports.withCache = withCache;
|
|
182
174
|
/**
|
|
183
175
|
* Clear expired cache entries from the in-memory cache.
|
|
184
176
|
* @since 1.0.0
|
|
@@ -191,7 +183,6 @@ const clearExpiredCache = () => {
|
|
|
191
183
|
}
|
|
192
184
|
}
|
|
193
185
|
};
|
|
194
|
-
exports.clearExpiredCache = clearExpiredCache;
|
|
195
186
|
/**
|
|
196
187
|
* Active debounce timers keyed by operation key.
|
|
197
188
|
*/
|
|
@@ -232,7 +223,7 @@ const debounceAsync = (fn, delay, key) => {
|
|
|
232
223
|
resolve(result);
|
|
233
224
|
}
|
|
234
225
|
catch (error) {
|
|
235
|
-
|
|
226
|
+
logger.error(`Debounced operation failed`, key, error);
|
|
236
227
|
resolve(undefined);
|
|
237
228
|
}
|
|
238
229
|
}, delay);
|
|
@@ -240,5 +231,5 @@ const debounceAsync = (fn, delay, key) => {
|
|
|
240
231
|
});
|
|
241
232
|
};
|
|
242
233
|
};
|
|
243
|
-
|
|
234
|
+
export { safeAsync, withLoadingState, safeParallel, withTimeout, withCache, clearExpiredCache, debounceAsync, };
|
|
244
235
|
//# sourceMappingURL=async-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-helpers.js","sourceRoot":"","sources":["../../src/utils/async-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"async-helpers.js","sourceRoot":"","sources":["../../src/utils/async-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @fileoverview Admin email whitelist utilities
|
|
4
3
|
*
|
|
5
4
|
* Pure utility functions for parsing and checking admin email whitelists.
|
|
6
5
|
* Used by both frontend (auth_lib) and backend (auth_service) packages.
|
|
7
6
|
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.parseAdminEmails = parseAdminEmails;
|
|
10
|
-
exports.isAdminEmail = isAdminEmail;
|
|
11
|
-
exports.createAdminChecker = createAdminChecker;
|
|
12
7
|
/**
|
|
13
8
|
* Parse admin emails from environment variable or string
|
|
14
9
|
*
|
|
@@ -21,7 +16,7 @@ exports.createAdminChecker = createAdminChecker;
|
|
|
21
16
|
* // Returns: ["admin@example.com", "other@example.com"]
|
|
22
17
|
* ```
|
|
23
18
|
*/
|
|
24
|
-
function parseAdminEmails(input) {
|
|
19
|
+
export function parseAdminEmails(input) {
|
|
25
20
|
if (!input) {
|
|
26
21
|
return [];
|
|
27
22
|
}
|
|
@@ -45,7 +40,7 @@ function parseAdminEmails(input) {
|
|
|
45
40
|
* }
|
|
46
41
|
* ```
|
|
47
42
|
*/
|
|
48
|
-
function isAdminEmail(email, adminEmails) {
|
|
43
|
+
export function isAdminEmail(email, adminEmails) {
|
|
49
44
|
if (!email) {
|
|
50
45
|
return false;
|
|
51
46
|
}
|
|
@@ -70,7 +65,7 @@ function isAdminEmail(email, adminEmails) {
|
|
|
70
65
|
* }
|
|
71
66
|
* ```
|
|
72
67
|
*/
|
|
73
|
-
function createAdminChecker(input) {
|
|
68
|
+
export function createAdminChecker(input) {
|
|
74
69
|
const adminEmails = parseAdminEmails(input);
|
|
75
70
|
return (email) => {
|
|
76
71
|
return isAdminEmail(email, adminEmails);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-emails.js","sourceRoot":"","sources":["../../../src/utils/auth/admin-emails.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin-emails.js","sourceRoot":"","sources":["../../../src/utils/auth/admin-emails.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgC;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC1C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAgC,EAChC,WAAqB;IAErB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAgC;IAEhC,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CAAC,KAAgC,EAAW,EAAE;QACnD,OAAO,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Authentication utilities for wallet-based authentication
|
|
3
3
|
*/
|
|
4
|
-
import { AuthStatus } from '../../types/business/enums';
|
|
5
|
-
import { Optional } from '../../types/common';
|
|
4
|
+
import { AuthStatus } from '../../types/business/enums.js';
|
|
5
|
+
import { Optional } from '../../types/common.js';
|
|
6
6
|
/**
|
|
7
7
|
* Generate an authentication message with a nonce
|
|
8
8
|
* @param emailDomain - The email domain/service name to display in the auth message
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/utils/auth/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/utils/auth/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GACvB,MAAM,CAIR;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,eAAe,SAAK,GAAG,OAAO,CAK5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAW5D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEjE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAGzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAwBnD"}
|
package/dist/utils/auth/auth.js
CHANGED
|
@@ -1,24 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Authentication utilities for wallet-based authentication
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
exports.generateAuthMessage = generateAuthMessage;
|
|
7
|
-
exports.isAuthExpired = isAuthExpired;
|
|
8
|
-
exports.getAuthStatusText = getAuthStatusText;
|
|
9
|
-
exports.canAccessProtectedFeatures = canAccessProtectedFeatures;
|
|
10
|
-
exports.isAuthStatusConnected = isAuthStatusConnected;
|
|
11
|
-
exports.generateNonce = generateNonce;
|
|
12
|
-
exports.extractNonceFromMessage = extractNonceFromMessage;
|
|
13
|
-
exports.isValidNonce = isValidNonce;
|
|
14
|
-
const enums_1 = require("../../types/business/enums");
|
|
4
|
+
import { AuthStatus } from '../../types/business/enums.js';
|
|
15
5
|
/**
|
|
16
6
|
* Generate an authentication message with a nonce
|
|
17
7
|
* @param emailDomain - The email domain/service name to display in the auth message
|
|
18
8
|
* @param nonce - Optional nonce value. If not provided, a random one will be generated
|
|
19
9
|
* @returns Authentication message string
|
|
20
10
|
*/
|
|
21
|
-
function generateAuthMessage(emailDomain, nonce) {
|
|
11
|
+
export function generateAuthMessage(emailDomain, nonce) {
|
|
22
12
|
const actualNonce = nonce || `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
23
13
|
return `Authenticate with ${emailDomain}\nNonce: ${actualNonce}`;
|
|
24
14
|
}
|
|
@@ -27,20 +17,20 @@ function generateAuthMessage(emailDomain, nonce) {
|
|
|
27
17
|
* @param createdAt - The date when authentication was created
|
|
28
18
|
* @param expirationHours - Number of hours until expiration (default: 24)
|
|
29
19
|
*/
|
|
30
|
-
function isAuthExpired(createdAt, expirationHours = 24) {
|
|
20
|
+
export function isAuthExpired(createdAt, expirationHours = 24) {
|
|
31
21
|
const expirationTime = new Date(createdAt.getTime() + expirationHours * 60 * 60 * 1000);
|
|
32
22
|
return new Date() > expirationTime;
|
|
33
23
|
}
|
|
34
24
|
/**
|
|
35
25
|
* Get human-readable text for authentication status
|
|
36
26
|
*/
|
|
37
|
-
function getAuthStatusText(status) {
|
|
27
|
+
export function getAuthStatusText(status) {
|
|
38
28
|
switch (status) {
|
|
39
|
-
case
|
|
29
|
+
case AuthStatus.DISCONNECTED:
|
|
40
30
|
return 'Not connected';
|
|
41
|
-
case
|
|
31
|
+
case AuthStatus.CONNECTED:
|
|
42
32
|
return 'Connected - Please verify';
|
|
43
|
-
case
|
|
33
|
+
case AuthStatus.VERIFIED:
|
|
44
34
|
return 'Authenticated';
|
|
45
35
|
default:
|
|
46
36
|
return 'Unknown status';
|
|
@@ -49,32 +39,32 @@ function getAuthStatusText(status) {
|
|
|
49
39
|
/**
|
|
50
40
|
* Check if user can access protected features
|
|
51
41
|
*/
|
|
52
|
-
function canAccessProtectedFeatures(status) {
|
|
53
|
-
return status ===
|
|
42
|
+
export function canAccessProtectedFeatures(status) {
|
|
43
|
+
return status === AuthStatus.VERIFIED;
|
|
54
44
|
}
|
|
55
45
|
/**
|
|
56
46
|
* Check if auth status indicates wallet is connected (either connected or verified)
|
|
57
47
|
*/
|
|
58
|
-
function isAuthStatusConnected(status) {
|
|
59
|
-
return status ===
|
|
48
|
+
export function isAuthStatusConnected(status) {
|
|
49
|
+
return status === AuthStatus.CONNECTED || status === AuthStatus.VERIFIED;
|
|
60
50
|
}
|
|
61
51
|
/**
|
|
62
52
|
* Generate a random nonce for authentication
|
|
63
53
|
*/
|
|
64
|
-
function generateNonce() {
|
|
54
|
+
export function generateNonce() {
|
|
65
55
|
return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
66
56
|
}
|
|
67
57
|
/**
|
|
68
58
|
* Extract nonce from an authentication message
|
|
69
59
|
*/
|
|
70
|
-
function extractNonceFromMessage(message) {
|
|
60
|
+
export function extractNonceFromMessage(message) {
|
|
71
61
|
const match = message.match(/Nonce:\s*(.+)$/m);
|
|
72
62
|
return match ? match[1].trim() : undefined;
|
|
73
63
|
}
|
|
74
64
|
/**
|
|
75
65
|
* Validate that a nonce meets basic requirements
|
|
76
66
|
*/
|
|
77
|
-
function isValidNonce(nonce) {
|
|
67
|
+
export function isValidNonce(nonce) {
|
|
78
68
|
if (!nonce || typeof nonce !== 'string') {
|
|
79
69
|
return false;
|
|
80
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/utils/auth/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/utils/auth/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Provides validation and detection for various blockchain address formats
|
|
5
5
|
* including EVM addresses, Solana addresses, ENS names, and SNS names.
|
|
6
6
|
*/
|
|
7
|
-
import { ChainType } from '../../types/business/enums';
|
|
8
|
-
import { Optional } from '../../types/common';
|
|
7
|
+
import { ChainType } from '../../types/business/enums.js';
|
|
8
|
+
import { Optional } from '../../types/common.js';
|
|
9
9
|
/**
|
|
10
10
|
* Address type enumeration
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/utils/blockchain/address.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/utils/blockchain/address.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD;;GAEG;AACH,oBAAY,WAAW;IACrB,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;CAC7B,CAAC;AAKF;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAiClD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CA8ClD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,iBAAiB,GAAE,QAAQ,CAAC,WAAW,CAAa,GACnD,QAAQ,CAAC,WAAW,CAAC,CAsBvB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,GACnB,OAAO,CAwBT;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,GACnB,OAAO,CAkBT;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAsB7E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM,CAa3E"}
|
|
@@ -1,39 +1,28 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Blockchain address utilities for multi-chain support
|
|
4
3
|
*
|
|
5
4
|
* Provides validation and detection for various blockchain address formats
|
|
6
5
|
* including EVM addresses, Solana addresses, ENS names, and SNS names.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
exports.AddressType = void 0;
|
|
10
|
-
exports.isENSName = isENSName;
|
|
11
|
-
exports.isSNSName = isSNSName;
|
|
12
|
-
exports.getAddressType = getAddressType;
|
|
13
|
-
exports.isValidWalletAddress = isValidWalletAddress;
|
|
14
|
-
exports.isValidSignature = isValidSignature;
|
|
15
|
-
exports.parseEmailAddress = parseEmailAddress;
|
|
16
|
-
exports.formatWalletAddress = formatWalletAddress;
|
|
17
|
-
exports.getChainDisplayName = getChainDisplayName;
|
|
18
|
-
const enums_1 = require("../../types/business/enums");
|
|
7
|
+
import { ChainType } from '../../types/business/enums.js';
|
|
19
8
|
// Import base validation functions from common types
|
|
20
|
-
|
|
9
|
+
import { isEvmAddress, isSolanaAddress } from '../../types/blockchain/common.js';
|
|
21
10
|
/**
|
|
22
11
|
* Address type enumeration
|
|
23
12
|
*/
|
|
24
|
-
var AddressType;
|
|
13
|
+
export var AddressType;
|
|
25
14
|
(function (AddressType) {
|
|
26
15
|
AddressType["EVMAddress"] = "EVMAddress";
|
|
27
16
|
AddressType["SolanaAddress"] = "SolanaAddress";
|
|
28
17
|
AddressType["ENSName"] = "ENSName";
|
|
29
18
|
AddressType["SNSName"] = "SNSName";
|
|
30
|
-
})(AddressType || (
|
|
19
|
+
})(AddressType || (AddressType = {}));
|
|
31
20
|
// Address validation functions are now imported directly from common.ts
|
|
32
|
-
// Use isEvmAddress and isSolanaAddress from '../../types/blockchain/common'
|
|
21
|
+
// Use isEvmAddress and isSolanaAddress from '../../types/blockchain/common.js'
|
|
33
22
|
/**
|
|
34
23
|
* Check if address is an ENS name (.eth or .box)
|
|
35
24
|
*/
|
|
36
|
-
function isENSName(address) {
|
|
25
|
+
export function isENSName(address) {
|
|
37
26
|
const lowerAddress = address.toLowerCase();
|
|
38
27
|
// ENS names end with .eth or .box
|
|
39
28
|
if (!lowerAddress.endsWith('.eth') && !lowerAddress.endsWith('.box')) {
|
|
@@ -65,7 +54,7 @@ function isENSName(address) {
|
|
|
65
54
|
* Check if address is an SNS name (Solana name service)
|
|
66
55
|
* Supports: .sol, .abc, .bonk, .poor, .gm, .dao, .defi, .web3
|
|
67
56
|
*/
|
|
68
|
-
function isSNSName(address) {
|
|
57
|
+
export function isSNSName(address) {
|
|
69
58
|
const lowerAddress = address.toLowerCase();
|
|
70
59
|
// List of supported Solana name extensions
|
|
71
60
|
const snsExtensions = [
|
|
@@ -107,13 +96,13 @@ function isSNSName(address) {
|
|
|
107
96
|
* Determine the address type from a string
|
|
108
97
|
* Case insensitive as addresses/names are often case insensitive
|
|
109
98
|
*/
|
|
110
|
-
function getAddressType(address, parentAddressType = undefined) {
|
|
99
|
+
export function getAddressType(address, parentAddressType = undefined) {
|
|
111
100
|
// Check for EVM address (0x followed by 40 hex characters)
|
|
112
|
-
if (
|
|
101
|
+
if (isEvmAddress(address)) {
|
|
113
102
|
return AddressType.EVMAddress;
|
|
114
103
|
}
|
|
115
104
|
// Check for Solana address (base58 encoded, 32-44 characters)
|
|
116
|
-
if (
|
|
105
|
+
if (isSolanaAddress(address)) {
|
|
117
106
|
return AddressType.SolanaAddress;
|
|
118
107
|
}
|
|
119
108
|
// If parent address type is provided and address contains ".", it's a domain name
|
|
@@ -130,16 +119,16 @@ function getAddressType(address, parentAddressType = undefined) {
|
|
|
130
119
|
/**
|
|
131
120
|
* Validate a wallet address for a specific chain type
|
|
132
121
|
*/
|
|
133
|
-
function isValidWalletAddress(address, chainType) {
|
|
122
|
+
export function isValidWalletAddress(address, chainType) {
|
|
134
123
|
if (!address || typeof address !== 'string') {
|
|
135
124
|
return false;
|
|
136
125
|
}
|
|
137
126
|
const addressType = getAddressType(address);
|
|
138
127
|
switch (chainType) {
|
|
139
|
-
case
|
|
128
|
+
case ChainType.EVM:
|
|
140
129
|
return (addressType === AddressType.EVMAddress ||
|
|
141
130
|
addressType === AddressType.ENSName);
|
|
142
|
-
case
|
|
131
|
+
case ChainType.SOLANA:
|
|
143
132
|
return (addressType === AddressType.SolanaAddress ||
|
|
144
133
|
addressType === AddressType.SNSName);
|
|
145
134
|
default:
|
|
@@ -150,15 +139,15 @@ function isValidWalletAddress(address, chainType) {
|
|
|
150
139
|
/**
|
|
151
140
|
* Check if a signature is valid for a specific chain type
|
|
152
141
|
*/
|
|
153
|
-
function isValidSignature(signature, chainType) {
|
|
142
|
+
export function isValidSignature(signature, chainType) {
|
|
154
143
|
if (!signature || typeof signature !== 'string') {
|
|
155
144
|
return false;
|
|
156
145
|
}
|
|
157
146
|
switch (chainType) {
|
|
158
|
-
case
|
|
147
|
+
case ChainType.EVM:
|
|
159
148
|
// EVM signature validation (0x followed by 130 hex characters)
|
|
160
149
|
return /^0x[a-fA-F0-9]{130}$/.test(signature);
|
|
161
|
-
case
|
|
150
|
+
case ChainType.SOLANA:
|
|
162
151
|
// Solana signature validation (base58 encoded, typically 87-88 characters)
|
|
163
152
|
return /^[1-9A-HJ-NP-Za-km-z]{87,88}$/.test(signature);
|
|
164
153
|
default:
|
|
@@ -169,7 +158,7 @@ function isValidSignature(signature, chainType) {
|
|
|
169
158
|
/**
|
|
170
159
|
* Parse an email address into its components
|
|
171
160
|
*/
|
|
172
|
-
function parseEmailAddress(email) {
|
|
161
|
+
export function parseEmailAddress(email) {
|
|
173
162
|
if (!email || typeof email !== 'string') {
|
|
174
163
|
return undefined;
|
|
175
164
|
}
|
|
@@ -192,7 +181,7 @@ function parseEmailAddress(email) {
|
|
|
192
181
|
* Format a wallet address for display
|
|
193
182
|
* Shows first 6 and last 4 characters with ellipsis
|
|
194
183
|
*/
|
|
195
|
-
function formatWalletAddress(address) {
|
|
184
|
+
export function formatWalletAddress(address) {
|
|
196
185
|
if (!address || address.length < 10) {
|
|
197
186
|
return address;
|
|
198
187
|
}
|
|
@@ -209,14 +198,14 @@ function formatWalletAddress(address) {
|
|
|
209
198
|
/**
|
|
210
199
|
* Get display name for a chain type
|
|
211
200
|
*/
|
|
212
|
-
function getChainDisplayName(chainType) {
|
|
201
|
+
export function getChainDisplayName(chainType) {
|
|
213
202
|
if (!chainType) {
|
|
214
203
|
return 'Unknown Chain';
|
|
215
204
|
}
|
|
216
205
|
switch (chainType) {
|
|
217
|
-
case
|
|
206
|
+
case ChainType.EVM:
|
|
218
207
|
return 'EVM Chain';
|
|
219
|
-
case
|
|
208
|
+
case ChainType.SOLANA:
|
|
220
209
|
return 'Solana';
|
|
221
210
|
default:
|
|
222
211
|
return 'Blockchain';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/utils/blockchain/address.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/utils/blockchain/address.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @fileoverview Pure Event Helper Functions
|
|
4
3
|
* @description Pure utility functions for multi-chain event processing
|
|
@@ -11,16 +10,6 @@
|
|
|
11
10
|
* - Address validation
|
|
12
11
|
* - Testnet detection
|
|
13
12
|
*/
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.createMultiChainId = createMultiChainId;
|
|
16
|
-
exports.createUserMultiChainId = createUserMultiChainId;
|
|
17
|
-
exports.createChainStatsId = createChainStatsId;
|
|
18
|
-
exports.createDelegationId = createDelegationId;
|
|
19
|
-
exports.normalizeAddress = normalizeAddress;
|
|
20
|
-
exports.formatBigInt = formatBigInt;
|
|
21
|
-
exports.isZeroAddress = isZeroAddress;
|
|
22
|
-
exports.isTestNet = isTestNet;
|
|
23
|
-
exports.validateEventArgs = validateEventArgs;
|
|
24
13
|
// ========================================
|
|
25
14
|
// ID GENERATION UTILITIES
|
|
26
15
|
// ========================================
|
|
@@ -38,7 +27,7 @@ exports.validateEventArgs = validateEventArgs;
|
|
|
38
27
|
* // Result: "1-0x123...-0"
|
|
39
28
|
* ```
|
|
40
29
|
*/
|
|
41
|
-
function createMultiChainId(chainId, txHash, logIndex) {
|
|
30
|
+
export function createMultiChainId(chainId, txHash, logIndex) {
|
|
42
31
|
return `${chainId}-${txHash}-${logIndex}`;
|
|
43
32
|
}
|
|
44
33
|
/**
|
|
@@ -54,7 +43,7 @@ function createMultiChainId(chainId, txHash, logIndex) {
|
|
|
54
43
|
* // Result: "137-0xabc..."
|
|
55
44
|
* ```
|
|
56
45
|
*/
|
|
57
|
-
function createUserMultiChainId(chainId, address) {
|
|
46
|
+
export function createUserMultiChainId(chainId, address) {
|
|
58
47
|
return `${chainId}-${address.toLowerCase()}`;
|
|
59
48
|
}
|
|
60
49
|
/**
|
|
@@ -63,7 +52,7 @@ function createUserMultiChainId(chainId, address) {
|
|
|
63
52
|
* @param chainId - Network chain ID
|
|
64
53
|
* @returns Formatted ID: "chainId-global"
|
|
65
54
|
*/
|
|
66
|
-
function createChainStatsId(chainId) {
|
|
55
|
+
export function createChainStatsId(chainId) {
|
|
67
56
|
return `${chainId}-global`;
|
|
68
57
|
}
|
|
69
58
|
/**
|
|
@@ -73,7 +62,7 @@ function createChainStatsId(chainId) {
|
|
|
73
62
|
* @param isTestNet - Whether the chain is a testnet
|
|
74
63
|
* @returns Formatted ID: "delegatorAddress-testNet"
|
|
75
64
|
*/
|
|
76
|
-
function createDelegationId(delegatorAddress, isTestNet) {
|
|
65
|
+
export function createDelegationId(delegatorAddress, isTestNet) {
|
|
77
66
|
return `${delegatorAddress.toLowerCase()}-${isTestNet}`;
|
|
78
67
|
}
|
|
79
68
|
// ========================================
|
|
@@ -82,13 +71,13 @@ function createDelegationId(delegatorAddress, isTestNet) {
|
|
|
82
71
|
/**
|
|
83
72
|
* Normalize address to lowercase
|
|
84
73
|
*/
|
|
85
|
-
function normalizeAddress(address) {
|
|
74
|
+
export function normalizeAddress(address) {
|
|
86
75
|
return address.toLowerCase();
|
|
87
76
|
}
|
|
88
77
|
/**
|
|
89
78
|
* Format bigint for display
|
|
90
79
|
*/
|
|
91
|
-
function formatBigInt(value, decimals = 18) {
|
|
80
|
+
export function formatBigInt(value, decimals = 18) {
|
|
92
81
|
const divisor = BigInt(10 ** decimals);
|
|
93
82
|
const whole = value / divisor;
|
|
94
83
|
const fraction = value % divisor;
|
|
@@ -100,7 +89,7 @@ function formatBigInt(value, decimals = 18) {
|
|
|
100
89
|
/**
|
|
101
90
|
* Check if address is zero address (delegation clearing)
|
|
102
91
|
*/
|
|
103
|
-
function isZeroAddress(address) {
|
|
92
|
+
export function isZeroAddress(address) {
|
|
104
93
|
return address.toLowerCase() === '0x0000000000000000000000000000000000000000';
|
|
105
94
|
}
|
|
106
95
|
/**
|
|
@@ -108,7 +97,7 @@ function isZeroAddress(address) {
|
|
|
108
97
|
* @param chainId The blockchain chain ID
|
|
109
98
|
* @returns true if the chain is a testnet, false if mainnet
|
|
110
99
|
*/
|
|
111
|
-
function isTestNet(chainId) {
|
|
100
|
+
export function isTestNet(chainId) {
|
|
112
101
|
// EVM Testnets (positive chain IDs)
|
|
113
102
|
const evmTestnets = new Set([
|
|
114
103
|
31337, // Hardhat (local development)
|
|
@@ -131,7 +120,7 @@ function isTestNet(chainId) {
|
|
|
131
120
|
/**
|
|
132
121
|
* Validate event arguments
|
|
133
122
|
*/
|
|
134
|
-
function validateEventArgs(args, requiredFields) {
|
|
123
|
+
export function validateEventArgs(args, requiredFields) {
|
|
135
124
|
for (const field of requiredFields) {
|
|
136
125
|
if (args[field] === undefined || args[field] === null) {
|
|
137
126
|
console.error(`❌ Missing required field: ${String(field)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-helpers.js","sourceRoot":"","sources":["../../../src/utils/blockchain/event-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-helpers.js","sourceRoot":"","sources":["../../../src/utils/blockchain/event-helpers.ts"],"names":[],"mappings":"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"}
|