@sudobility/types 1.9.38 → 1.9.39
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.js +7 -45
- package/dist/index.js.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.js +2 -16
- package/dist/types/blockchain/index.js.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/index.js +2 -31
- package/dist/types/business/index.js.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.js +1 -2
- package/dist/types/common.js.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.js +2 -5
- package/dist/types/config/environment.js.map +1 -1
- package/dist/types/config/index.js +1 -5
- package/dist/types/config/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/index.js +4 -20
- package/dist/types/entity/index.js.map +1 -1
- package/dist/types/entity/permissions.js +9 -14
- package/dist/types/entity/permissions.js.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.js +1 -2
- package/dist/types/entity/responses.js.map +1 -1
- package/dist/types/index.js +7 -23
- package/dist/types/index.js.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.js +5 -9
- package/dist/types/infrastructure/api.js.map +1 -1
- package/dist/types/infrastructure/index.js +4 -14
- package/dist/types/infrastructure/index.js.map +1 -1
- package/dist/types/infrastructure/navigation.js +1 -2
- 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/index.js +1 -17
- package/dist/types/subscription/index.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.js +7 -16
- package/dist/utils/async-helpers.js.map +1 -1
- package/dist/utils/auth/auth.js +14 -24
- package/dist/utils/auth/auth.js.map +1 -1
- package/dist/utils/auth/index.js +1 -12
- package/dist/utils/auth/index.js.map +1 -1
- package/dist/utils/blockchain/address.js +20 -31
- 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/blockchain/index.js +3 -26
- package/dist/utils/blockchain/index.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/index.js +2 -23
- package/dist/utils/constants/index.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.js +7 -16
- package/dist/utils/formatting/date.js.map +1 -1
- package/dist/utils/formatting/index.js +3 -33
- package/dist/utils/formatting/index.js.map +1 -1
- package/dist/utils/formatting/string.js +16 -34
- package/dist/utils/formatting/string.js.map +1 -1
- package/dist/utils/index.js +8 -24
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logging/index.js +1 -11
- package/dist/utils/logging/index.js.map +1 -1
- package/dist/utils/logging/logger.js +2 -10
- package/dist/utils/logging/logger.js.map +1 -1
- package/dist/utils/url/index.js +1 -8
- package/dist/utils/url/index.js.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/index.js +2 -24
- package/dist/utils/validation/index.js.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.js +6 -10
- package/dist/utils/validation/web3-username-validator.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,11 +1,8 @@
|
|
|
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
|
-
|
|
7
|
-
exports.debounceAsync = exports.clearExpiredCache = exports.withCache = exports.withTimeout = exports.safeParallel = exports.withLoadingState = exports.safeAsync = void 0;
|
|
8
|
-
const logging_1 = require("./logging");
|
|
5
|
+
import { logger } from './logging';
|
|
9
6
|
/**
|
|
10
7
|
* Safely execute an async operation with error handling
|
|
11
8
|
* Returns a result object instead of throwing
|
|
@@ -17,11 +14,10 @@ const safeAsync = async (operation, context) => {
|
|
|
17
14
|
}
|
|
18
15
|
catch (error) {
|
|
19
16
|
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
20
|
-
|
|
17
|
+
logger.error(`Async operation failed: ${errorObj.message}`, context, error);
|
|
21
18
|
return { error: errorObj, success: false };
|
|
22
19
|
}
|
|
23
20
|
};
|
|
24
|
-
exports.safeAsync = safeAsync;
|
|
25
21
|
/**
|
|
26
22
|
* Execute async operation with loading state tracking
|
|
27
23
|
*/
|
|
@@ -35,14 +31,13 @@ const withLoadingState = async (operation, setLoading, setError, context) => {
|
|
|
35
31
|
catch (error) {
|
|
36
32
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
37
33
|
setError(errorMessage);
|
|
38
|
-
|
|
34
|
+
logger.error(`Operation failed: ${errorMessage}`, context, error);
|
|
39
35
|
return undefined;
|
|
40
36
|
}
|
|
41
37
|
finally {
|
|
42
38
|
setLoading(false);
|
|
43
39
|
}
|
|
44
40
|
};
|
|
45
|
-
exports.withLoadingState = withLoadingState;
|
|
46
41
|
/**
|
|
47
42
|
* Execute multiple async operations in parallel with error handling
|
|
48
43
|
*/
|
|
@@ -53,11 +48,10 @@ const safeParallel = async (operations, context) => {
|
|
|
53
48
|
}
|
|
54
49
|
catch (error) {
|
|
55
50
|
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
56
|
-
|
|
51
|
+
logger.error(`Parallel operations failed: ${errorObj.message}`, context, error);
|
|
57
52
|
return { error: errorObj, success: false };
|
|
58
53
|
}
|
|
59
54
|
};
|
|
60
|
-
exports.safeParallel = safeParallel;
|
|
61
55
|
/**
|
|
62
56
|
* Execute async operation with timeout
|
|
63
57
|
*/
|
|
@@ -67,11 +61,10 @@ const withTimeout = async (operation, timeoutMs, context) => {
|
|
|
67
61
|
return await Promise.race([operation(), timeoutPromise]);
|
|
68
62
|
}
|
|
69
63
|
catch (error) {
|
|
70
|
-
|
|
64
|
+
logger.error(`Timeout operation failed`, context, error);
|
|
71
65
|
throw error;
|
|
72
66
|
}
|
|
73
67
|
};
|
|
74
|
-
exports.withTimeout = withTimeout;
|
|
75
68
|
/**
|
|
76
69
|
* Cache async operation results with TTL
|
|
77
70
|
*/
|
|
@@ -87,7 +80,6 @@ const withCache = async (key, operation, ttlMs = 5 * 60 * 1000 // 5 minutes defa
|
|
|
87
80
|
cache.set(key, { data: result, timestamp: now, ttl: ttlMs });
|
|
88
81
|
return result;
|
|
89
82
|
};
|
|
90
|
-
exports.withCache = withCache;
|
|
91
83
|
/**
|
|
92
84
|
* Clear expired cache entries
|
|
93
85
|
*/
|
|
@@ -99,7 +91,6 @@ const clearExpiredCache = () => {
|
|
|
99
91
|
}
|
|
100
92
|
}
|
|
101
93
|
};
|
|
102
|
-
exports.clearExpiredCache = clearExpiredCache;
|
|
103
94
|
/**
|
|
104
95
|
* Debounce async operations
|
|
105
96
|
*/
|
|
@@ -118,7 +109,7 @@ const debounceAsync = (fn, delay, key) => {
|
|
|
118
109
|
resolve(result);
|
|
119
110
|
}
|
|
120
111
|
catch (error) {
|
|
121
|
-
|
|
112
|
+
logger.error(`Debounced operation failed`, key, error);
|
|
122
113
|
resolve(undefined);
|
|
123
114
|
}
|
|
124
115
|
}, delay);
|
|
@@ -126,5 +117,5 @@ const debounceAsync = (fn, delay, key) => {
|
|
|
126
117
|
});
|
|
127
118
|
};
|
|
128
119
|
};
|
|
129
|
-
|
|
120
|
+
export { safeAsync, withLoadingState, safeParallel, withTimeout, withCache, clearExpiredCache, debounceAsync, };
|
|
130
121
|
//# 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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AASnC;;;GAGG;AACH,MAAM,SAAS,GAAG,KAAK,EACrB,SAA2B,EAC3B,OAAgB,EACS,EAAE;IAC3B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,KAAK,CAAC,2BAA2B,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5E,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7C,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAG,KAAK,EAC5B,SAA2B,EAC3B,UAAsC,EACtC,QAA2C,EAC3C,OAAgB,EACM,EAAE;IACxB,UAAU,CAAC,IAAI,CAAC,CAAC;IACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEf,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvB,MAAM,CAAC,KAAK,CAAC,qBAAqB,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG,KAAK,EACxB,UAAiE,EACjE,OAAgB,EACS,EAAE;IAC3B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9D,OAAO,EAAE,IAAI,EAAE,OAAuB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,KAAK,CACV,+BAA+B,QAAQ,CAAC,OAAO,EAAE,EACjD,OAAO,EACP,KAAK,CACN,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7C,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,GAAG,KAAK,EACvB,SAA2B,EAC3B,SAAiB,EACjB,OAAgB,EACJ,EAAE;IACd,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CACtD,UAAU,CACR,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,SAAS,IAAI,CAAC,CAAC,EACnE,SAAS,CACV,CACF,CAAC;IAEF,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6D,CAAC;AAEnF,MAAM,SAAS,GAAG,KAAK,EACrB,GAAW,EACX,SAA2B,EAC3B,QAAgB,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB;EACtC,EAAE;IACd,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,IAAS,CAAC;IAC1B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG,GAAS,EAAE;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACvC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,EAAyC,CAAC;AAErE,MAAM,aAAa,GAAG,CACpB,EAA8B,EAC9B,KAAa,EACb,GAAW,EAC6B,EAAE;IAC1C,OAAO,CAAC,GAAG,IAAO,EAAwB,EAAE;QAC1C,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,eAAe,EAAE,CAAC;gBACpB,YAAY,CAAC,eAAe,CAAC,CAAC;YAChC,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;gBACpC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;oBACjC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBACvD,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC,EAAE,KAAK,CAAC,CAAC;YAEV,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,aAAa,GAEd,CAAC"}
|
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';
|
|
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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"}
|
package/dist/utils/auth/index.js
CHANGED
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isValidNonce = exports.isAuthStatusConnected = exports.isAuthExpired = exports.getAuthStatusText = exports.generateNonce = exports.generateAuthMessage = exports.extractNonceFromMessage = exports.canAccessProtectedFeatures = void 0;
|
|
4
1
|
// Authentication utilities
|
|
5
|
-
|
|
6
|
-
Object.defineProperty(exports, "canAccessProtectedFeatures", { enumerable: true, get: function () { return auth_1.canAccessProtectedFeatures; } });
|
|
7
|
-
Object.defineProperty(exports, "extractNonceFromMessage", { enumerable: true, get: function () { return auth_1.extractNonceFromMessage; } });
|
|
8
|
-
Object.defineProperty(exports, "generateAuthMessage", { enumerable: true, get: function () { return auth_1.generateAuthMessage; } });
|
|
9
|
-
Object.defineProperty(exports, "generateNonce", { enumerable: true, get: function () { return auth_1.generateNonce; } });
|
|
10
|
-
Object.defineProperty(exports, "getAuthStatusText", { enumerable: true, get: function () { return auth_1.getAuthStatusText; } });
|
|
11
|
-
Object.defineProperty(exports, "isAuthExpired", { enumerable: true, get: function () { return auth_1.isAuthExpired; } });
|
|
12
|
-
Object.defineProperty(exports, "isAuthStatusConnected", { enumerable: true, get: function () { return auth_1.isAuthStatusConnected; } });
|
|
13
|
-
Object.defineProperty(exports, "isValidNonce", { enumerable: true, get: function () { return auth_1.isValidNonce; } });
|
|
2
|
+
export { canAccessProtectedFeatures, extractNonceFromMessage, generateAuthMessage, generateNonce, getAuthStatusText, isAuthExpired, isAuthStatusConnected, isValidNonce, } from './auth';
|
|
14
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/auth/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/auth/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,YAAY,GACb,MAAM,QAAQ,CAAC"}
|
|
@@ -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';
|
|
19
8
|
// Import base validation functions from common types
|
|
20
|
-
|
|
9
|
+
import { isEvmAddress, isSolanaAddress } from '../../types/blockchain/common';
|
|
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
21
|
// Use isEvmAddress and isSolanaAddress from '../../types/blockchain/common'
|
|
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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"}
|
|
@@ -1,28 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateEventArgs = exports.normalizeAddress = exports.isZeroAddress = exports.isTestNet = exports.formatBigInt = exports.createUserMultiChainId = exports.createMultiChainId = exports.createDelegationId = exports.createChainStatsId = exports.isSolanaAddress = exports.isEvmAddress = exports.parseEmailAddress = exports.isValidWalletAddress = exports.isValidSignature = exports.isSNSName = exports.isENSName = exports.getChainDisplayName = exports.getAddressType = exports.formatWalletAddress = exports.AddressType = void 0;
|
|
4
|
-
var address_1 = require("./address");
|
|
5
|
-
Object.defineProperty(exports, "AddressType", { enumerable: true, get: function () { return address_1.AddressType; } });
|
|
6
|
-
Object.defineProperty(exports, "formatWalletAddress", { enumerable: true, get: function () { return address_1.formatWalletAddress; } });
|
|
7
|
-
Object.defineProperty(exports, "getAddressType", { enumerable: true, get: function () { return address_1.getAddressType; } });
|
|
8
|
-
Object.defineProperty(exports, "getChainDisplayName", { enumerable: true, get: function () { return address_1.getChainDisplayName; } });
|
|
9
|
-
Object.defineProperty(exports, "isENSName", { enumerable: true, get: function () { return address_1.isENSName; } });
|
|
10
|
-
Object.defineProperty(exports, "isSNSName", { enumerable: true, get: function () { return address_1.isSNSName; } });
|
|
11
|
-
Object.defineProperty(exports, "isValidSignature", { enumerable: true, get: function () { return address_1.isValidSignature; } });
|
|
12
|
-
Object.defineProperty(exports, "isValidWalletAddress", { enumerable: true, get: function () { return address_1.isValidWalletAddress; } });
|
|
13
|
-
Object.defineProperty(exports, "parseEmailAddress", { enumerable: true, get: function () { return address_1.parseEmailAddress; } });
|
|
1
|
+
export { AddressType, formatWalletAddress, getAddressType, getChainDisplayName, isENSName, isSNSName, isValidSignature, isValidWalletAddress, parseEmailAddress, } from './address';
|
|
14
2
|
// Export address validation functions from common.ts
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Object.defineProperty(exports, "isSolanaAddress", { enumerable: true, get: function () { return common_1.isSolanaAddress; } });
|
|
18
|
-
var event_helpers_1 = require("./event-helpers");
|
|
19
|
-
Object.defineProperty(exports, "createChainStatsId", { enumerable: true, get: function () { return event_helpers_1.createChainStatsId; } });
|
|
20
|
-
Object.defineProperty(exports, "createDelegationId", { enumerable: true, get: function () { return event_helpers_1.createDelegationId; } });
|
|
21
|
-
Object.defineProperty(exports, "createMultiChainId", { enumerable: true, get: function () { return event_helpers_1.createMultiChainId; } });
|
|
22
|
-
Object.defineProperty(exports, "createUserMultiChainId", { enumerable: true, get: function () { return event_helpers_1.createUserMultiChainId; } });
|
|
23
|
-
Object.defineProperty(exports, "formatBigInt", { enumerable: true, get: function () { return event_helpers_1.formatBigInt; } });
|
|
24
|
-
Object.defineProperty(exports, "isTestNet", { enumerable: true, get: function () { return event_helpers_1.isTestNet; } });
|
|
25
|
-
Object.defineProperty(exports, "isZeroAddress", { enumerable: true, get: function () { return event_helpers_1.isZeroAddress; } });
|
|
26
|
-
Object.defineProperty(exports, "normalizeAddress", { enumerable: true, get: function () { return event_helpers_1.normalizeAddress; } });
|
|
27
|
-
Object.defineProperty(exports, "validateEventArgs", { enumerable: true, get: function () { return event_helpers_1.validateEventArgs; } });
|
|
3
|
+
export { isEvmAddress, isSolanaAddress } from '../../types/blockchain/common';
|
|
4
|
+
export { createChainStatsId, createDelegationId, createMultiChainId, createUserMultiChainId, formatBigInt, isTestNet, isZeroAddress, normalizeAddress, validateEventArgs, } from './event-helpers';
|
|
28
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/blockchain/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/blockchain/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB,qDAAqD;AACrD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAQ9E,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC"}
|