@formo/analytics-react-native 0.1.0
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 +302 -0
- package/lib/commonjs/FormoAnalytics.js +526 -0
- package/lib/commonjs/FormoAnalytics.js.map +1 -0
- package/lib/commonjs/FormoAnalyticsProvider.js +265 -0
- package/lib/commonjs/FormoAnalyticsProvider.js.map +1 -0
- package/lib/commonjs/constants/config.js +69 -0
- package/lib/commonjs/constants/config.js.map +1 -0
- package/lib/commonjs/constants/events.js +30 -0
- package/lib/commonjs/constants/events.js.map +1 -0
- package/lib/commonjs/constants/index.js +39 -0
- package/lib/commonjs/constants/index.js.map +1 -0
- package/lib/commonjs/constants/storage.js +23 -0
- package/lib/commonjs/constants/storage.js.map +1 -0
- package/lib/commonjs/index.js +65 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/lib/consent/index.js +56 -0
- package/lib/commonjs/lib/consent/index.js.map +1 -0
- package/lib/commonjs/lib/event/EventFactory.js +493 -0
- package/lib/commonjs/lib/event/EventFactory.js.map +1 -0
- package/lib/commonjs/lib/event/EventManager.js +46 -0
- package/lib/commonjs/lib/event/EventManager.js.map +1 -0
- package/lib/commonjs/lib/event/EventQueue.js +290 -0
- package/lib/commonjs/lib/event/EventQueue.js.map +1 -0
- package/lib/commonjs/lib/event/index.js +50 -0
- package/lib/commonjs/lib/event/index.js.map +1 -0
- package/lib/commonjs/lib/event/types.js +6 -0
- package/lib/commonjs/lib/event/types.js.map +1 -0
- package/lib/commonjs/lib/lifecycle/index.js +196 -0
- package/lib/commonjs/lib/lifecycle/index.js.map +1 -0
- package/lib/commonjs/lib/logger/index.js +48 -0
- package/lib/commonjs/lib/logger/index.js.map +1 -0
- package/lib/commonjs/lib/session/index.js +109 -0
- package/lib/commonjs/lib/session/index.js.map +1 -0
- package/lib/commonjs/lib/storage/AsyncStorageAdapter.js +164 -0
- package/lib/commonjs/lib/storage/AsyncStorageAdapter.js.map +1 -0
- package/lib/commonjs/lib/storage/MemoryStorage.js +41 -0
- package/lib/commonjs/lib/storage/MemoryStorage.js.map +1 -0
- package/lib/commonjs/lib/storage/StorageBlueprint.js +24 -0
- package/lib/commonjs/lib/storage/StorageBlueprint.js.map +1 -0
- package/lib/commonjs/lib/storage/StorageManager.js +126 -0
- package/lib/commonjs/lib/storage/StorageManager.js.map +1 -0
- package/lib/commonjs/lib/storage/index.js +49 -0
- package/lib/commonjs/lib/storage/index.js.map +1 -0
- package/lib/commonjs/lib/storage/types.js +2 -0
- package/lib/commonjs/lib/storage/types.js.map +1 -0
- package/lib/commonjs/lib/wagmi/WagmiEventHandler.js +445 -0
- package/lib/commonjs/lib/wagmi/WagmiEventHandler.js.map +1 -0
- package/lib/commonjs/lib/wagmi/index.js +28 -0
- package/lib/commonjs/lib/wagmi/index.js.map +1 -0
- package/lib/commonjs/lib/wagmi/types.js +2 -0
- package/lib/commonjs/lib/wagmi/types.js.map +1 -0
- package/lib/commonjs/types/base.js +6 -0
- package/lib/commonjs/types/base.js.map +1 -0
- package/lib/commonjs/types/events.js +22 -0
- package/lib/commonjs/types/events.js.map +1 -0
- package/lib/commonjs/types/index.js +28 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/utils/address.js +82 -0
- package/lib/commonjs/utils/address.js.map +1 -0
- package/lib/commonjs/utils/hash.js +30 -0
- package/lib/commonjs/utils/hash.js.map +1 -0
- package/lib/commonjs/utils/helpers.js +116 -0
- package/lib/commonjs/utils/helpers.js.map +1 -0
- package/lib/commonjs/utils/index.js +61 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/commonjs/utils/timestamp.js +34 -0
- package/lib/commonjs/utils/timestamp.js.map +1 -0
- package/lib/commonjs/utils/trafficSource.js +147 -0
- package/lib/commonjs/utils/trafficSource.js.map +1 -0
- package/lib/commonjs/version.js +10 -0
- package/lib/commonjs/version.js.map +1 -0
- package/lib/module/FormoAnalytics.js +519 -0
- package/lib/module/FormoAnalytics.js.map +1 -0
- package/lib/module/FormoAnalyticsProvider.js +256 -0
- package/lib/module/FormoAnalyticsProvider.js.map +1 -0
- package/lib/module/constants/config.js +62 -0
- package/lib/module/constants/config.js.map +1 -0
- package/lib/module/constants/events.js +24 -0
- package/lib/module/constants/events.js.map +1 -0
- package/lib/module/constants/index.js +4 -0
- package/lib/module/constants/index.js.map +1 -0
- package/lib/module/constants/storage.js +17 -0
- package/lib/module/constants/storage.js.map +1 -0
- package/lib/module/index.js +51 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/lib/consent/index.js +49 -0
- package/lib/module/lib/consent/index.js.map +1 -0
- package/lib/module/lib/event/EventFactory.js +488 -0
- package/lib/module/lib/event/EventFactory.js.map +1 -0
- package/lib/module/lib/event/EventManager.js +41 -0
- package/lib/module/lib/event/EventManager.js.map +1 -0
- package/lib/module/lib/event/EventQueue.js +283 -0
- package/lib/module/lib/event/EventQueue.js.map +1 -0
- package/lib/module/lib/event/index.js +5 -0
- package/lib/module/lib/event/index.js.map +1 -0
- package/lib/module/lib/event/types.js +2 -0
- package/lib/module/lib/event/types.js.map +1 -0
- package/lib/module/lib/lifecycle/index.js +190 -0
- package/lib/module/lib/lifecycle/index.js.map +1 -0
- package/lib/module/lib/logger/index.js +42 -0
- package/lib/module/lib/logger/index.js.map +1 -0
- package/lib/module/lib/session/index.js +92 -0
- package/lib/module/lib/session/index.js.map +1 -0
- package/lib/module/lib/storage/AsyncStorageAdapter.js +158 -0
- package/lib/module/lib/storage/AsyncStorageAdapter.js.map +1 -0
- package/lib/module/lib/storage/MemoryStorage.js +35 -0
- package/lib/module/lib/storage/MemoryStorage.js.map +1 -0
- package/lib/module/lib/storage/StorageBlueprint.js +18 -0
- package/lib/module/lib/storage/StorageBlueprint.js.map +1 -0
- package/lib/module/lib/storage/StorageManager.js +115 -0
- package/lib/module/lib/storage/StorageManager.js.map +1 -0
- package/lib/module/lib/storage/index.js +5 -0
- package/lib/module/lib/storage/index.js.map +1 -0
- package/lib/module/lib/storage/types.js +2 -0
- package/lib/module/lib/storage/types.js.map +1 -0
- package/lib/module/lib/wagmi/WagmiEventHandler.js +439 -0
- package/lib/module/lib/wagmi/WagmiEventHandler.js.map +1 -0
- package/lib/module/lib/wagmi/index.js +3 -0
- package/lib/module/lib/wagmi/index.js.map +1 -0
- package/lib/module/lib/wagmi/types.js +2 -0
- package/lib/module/lib/wagmi/types.js.map +1 -0
- package/lib/module/types/base.js +2 -0
- package/lib/module/types/base.js.map +1 -0
- package/lib/module/types/events.js +17 -0
- package/lib/module/types/events.js.map +1 -0
- package/lib/module/types/index.js +3 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/utils/address.js +74 -0
- package/lib/module/utils/address.js.map +1 -0
- package/lib/module/utils/hash.js +24 -0
- package/lib/module/utils/hash.js.map +1 -0
- package/lib/module/utils/helpers.js +105 -0
- package/lib/module/utils/helpers.js.map +1 -0
- package/lib/module/utils/index.js +6 -0
- package/lib/module/utils/index.js.map +1 -0
- package/lib/module/utils/timestamp.js +26 -0
- package/lib/module/utils/timestamp.js.map +1 -0
- package/lib/module/utils/trafficSource.js +137 -0
- package/lib/module/utils/trafficSource.js.map +1 -0
- package/lib/module/version.js +4 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/FormoAnalytics.d.ts +163 -0
- package/lib/typescript/FormoAnalytics.d.ts.map +1 -0
- package/lib/typescript/FormoAnalyticsProvider.d.ts +29 -0
- package/lib/typescript/FormoAnalyticsProvider.d.ts.map +1 -0
- package/lib/typescript/constants/config.d.ts +8 -0
- package/lib/typescript/constants/config.d.ts.map +1 -0
- package/lib/typescript/constants/events.d.ts +23 -0
- package/lib/typescript/constants/events.d.ts.map +1 -0
- package/lib/typescript/constants/index.d.ts +4 -0
- package/lib/typescript/constants/index.d.ts.map +1 -0
- package/lib/typescript/constants/storage.d.ts +10 -0
- package/lib/typescript/constants/storage.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +44 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/lib/consent/index.d.ts +13 -0
- package/lib/typescript/lib/consent/index.d.ts.map +1 -0
- package/lib/typescript/lib/event/EventFactory.d.ts +61 -0
- package/lib/typescript/lib/event/EventFactory.d.ts.map +1 -0
- package/lib/typescript/lib/event/EventManager.d.ts +17 -0
- package/lib/typescript/lib/event/EventManager.d.ts.map +1 -0
- package/lib/typescript/lib/event/EventQueue.d.ts +74 -0
- package/lib/typescript/lib/event/EventQueue.d.ts.map +1 -0
- package/lib/typescript/lib/event/index.d.ts +5 -0
- package/lib/typescript/lib/event/index.d.ts.map +1 -0
- package/lib/typescript/lib/event/types.d.ts +23 -0
- package/lib/typescript/lib/event/types.d.ts.map +1 -0
- package/lib/typescript/lib/lifecycle/index.d.ts +46 -0
- package/lib/typescript/lib/lifecycle/index.d.ts.map +1 -0
- package/lib/typescript/lib/logger/index.d.ts +19 -0
- package/lib/typescript/lib/logger/index.d.ts.map +1 -0
- package/lib/typescript/lib/session/index.d.ts +41 -0
- package/lib/typescript/lib/session/index.d.ts.map +1 -0
- package/lib/typescript/lib/storage/AsyncStorageAdapter.d.ts +48 -0
- package/lib/typescript/lib/storage/AsyncStorageAdapter.d.ts.map +1 -0
- package/lib/typescript/lib/storage/MemoryStorage.d.ts +18 -0
- package/lib/typescript/lib/storage/MemoryStorage.d.ts.map +1 -0
- package/lib/typescript/lib/storage/StorageBlueprint.d.ts +21 -0
- package/lib/typescript/lib/storage/StorageBlueprint.d.ts.map +1 -0
- package/lib/typescript/lib/storage/StorageManager.d.ts +45 -0
- package/lib/typescript/lib/storage/StorageManager.d.ts.map +1 -0
- package/lib/typescript/lib/storage/index.d.ts +5 -0
- package/lib/typescript/lib/storage/index.d.ts.map +1 -0
- package/lib/typescript/lib/storage/types.d.ts +22 -0
- package/lib/typescript/lib/storage/types.d.ts.map +1 -0
- package/lib/typescript/lib/wagmi/WagmiEventHandler.d.ts +104 -0
- package/lib/typescript/lib/wagmi/WagmiEventHandler.d.ts.map +1 -0
- package/lib/typescript/lib/wagmi/index.d.ts +3 -0
- package/lib/typescript/lib/wagmi/index.d.ts.map +1 -0
- package/lib/typescript/lib/wagmi/types.d.ts +54 -0
- package/lib/typescript/lib/wagmi/types.d.ts.map +1 -0
- package/lib/typescript/types/base.d.ts +219 -0
- package/lib/typescript/types/base.d.ts.map +1 -0
- package/lib/typescript/types/events.d.ts +111 -0
- package/lib/typescript/types/events.d.ts.map +1 -0
- package/lib/typescript/types/index.d.ts +3 -0
- package/lib/typescript/types/index.d.ts.map +1 -0
- package/lib/typescript/utils/address.d.ts +25 -0
- package/lib/typescript/utils/address.d.ts.map +1 -0
- package/lib/typescript/utils/hash.d.ts +10 -0
- package/lib/typescript/utils/hash.d.ts.map +1 -0
- package/lib/typescript/utils/helpers.d.ts +26 -0
- package/lib/typescript/utils/helpers.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +6 -0
- package/lib/typescript/utils/index.d.ts.map +1 -0
- package/lib/typescript/utils/timestamp.d.ts +13 -0
- package/lib/typescript/utils/timestamp.d.ts.map +1 -0
- package/lib/typescript/utils/trafficSource.d.ts +30 -0
- package/lib/typescript/utils/trafficSource.d.ts.map +1 -0
- package/lib/typescript/version.d.ts +2 -0
- package/lib/typescript/version.d.ts.map +1 -0
- package/package.json +143 -0
- package/src/FormoAnalytics.ts +685 -0
- package/src/FormoAnalyticsProvider.tsx +296 -0
- package/src/constants/config.ts +62 -0
- package/src/constants/events.ts +26 -0
- package/src/constants/index.ts +3 -0
- package/src/constants/storage.ts +16 -0
- package/src/index.ts +55 -0
- package/src/lib/consent/index.ts +52 -0
- package/src/lib/event/EventFactory.ts +682 -0
- package/src/lib/event/EventManager.ts +50 -0
- package/src/lib/event/EventQueue.ts +371 -0
- package/src/lib/event/index.ts +4 -0
- package/src/lib/event/types.ts +107 -0
- package/src/lib/lifecycle/index.ts +215 -0
- package/src/lib/logger/index.ts +56 -0
- package/src/lib/session/index.ts +103 -0
- package/src/lib/storage/AsyncStorageAdapter.ts +173 -0
- package/src/lib/storage/MemoryStorage.ts +43 -0
- package/src/lib/storage/StorageBlueprint.ts +30 -0
- package/src/lib/storage/StorageManager.ts +121 -0
- package/src/lib/storage/index.ts +4 -0
- package/src/lib/storage/types.ts +23 -0
- package/src/lib/wagmi/WagmiEventHandler.ts +574 -0
- package/src/lib/wagmi/index.ts +2 -0
- package/src/lib/wagmi/types.ts +71 -0
- package/src/types/base.ts +287 -0
- package/src/types/events.ts +140 -0
- package/src/types/index.ts +2 -0
- package/src/utils/address.ts +84 -0
- package/src/utils/hash.ts +23 -0
- package/src/utils/helpers.ts +139 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/timestamp.ts +25 -0
- package/src/utils/trafficSource.ts +153 -0
- package/src/version.ts +3 -0
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.WagmiEventHandler = void 0;
|
|
7
|
+
var _events = require("../../types/events");
|
|
8
|
+
var _logger = require("../logger");
|
|
9
|
+
/**
|
|
10
|
+
* WagmiEventHandler for React Native
|
|
11
|
+
*
|
|
12
|
+
* Handles wallet event tracking by hooking into Wagmi v2's config.subscribe()
|
|
13
|
+
* and TanStack Query's MutationCache.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
// Interface for FormoAnalytics to avoid circular dependency
|
|
17
|
+
|
|
18
|
+
class WagmiEventHandler {
|
|
19
|
+
unsubscribers = [];
|
|
20
|
+
trackingState = {
|
|
21
|
+
isProcessing: false
|
|
22
|
+
};
|
|
23
|
+
processedMutations = new Set();
|
|
24
|
+
pendingStatusChanges = [];
|
|
25
|
+
constructor(formoAnalytics, wagmiConfig, queryClient) {
|
|
26
|
+
this.formo = formoAnalytics;
|
|
27
|
+
this.wagmiConfig = wagmiConfig;
|
|
28
|
+
this.queryClient = queryClient;
|
|
29
|
+
_logger.logger.info("WagmiEventHandler: Initializing Wagmi integration");
|
|
30
|
+
this.setupConnectionListeners();
|
|
31
|
+
if (this.queryClient) {
|
|
32
|
+
this.setupMutationTracking();
|
|
33
|
+
} else {
|
|
34
|
+
_logger.logger.warn("WagmiEventHandler: QueryClient not provided, signature and transaction events will not be tracked");
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Set up listeners for wallet connection, disconnection, and chain changes
|
|
40
|
+
*/
|
|
41
|
+
setupConnectionListeners() {
|
|
42
|
+
_logger.logger.info("WagmiEventHandler: Setting up connection listeners");
|
|
43
|
+
|
|
44
|
+
// Subscribe to status changes
|
|
45
|
+
const statusUnsubscribe = this.wagmiConfig.subscribe(state => state.status, (status, prevStatus) => {
|
|
46
|
+
this.handleStatusChange(status, prevStatus);
|
|
47
|
+
});
|
|
48
|
+
this.unsubscribers.push(statusUnsubscribe);
|
|
49
|
+
|
|
50
|
+
// Subscribe to chain ID changes
|
|
51
|
+
const chainIdUnsubscribe = this.wagmiConfig.subscribe(state => state.chainId, (chainId, prevChainId) => {
|
|
52
|
+
this.handleChainChange(chainId, prevChainId);
|
|
53
|
+
});
|
|
54
|
+
this.unsubscribers.push(chainIdUnsubscribe);
|
|
55
|
+
_logger.logger.info("WagmiEventHandler: Connection listeners set up successfully");
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Maximum pending status changes to prevent unbounded queue growth
|
|
59
|
+
static MAX_PENDING_STATUS_CHANGES = 10;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Handle status changes (connect/disconnect)
|
|
63
|
+
*/
|
|
64
|
+
async handleStatusChange(status, prevStatus) {
|
|
65
|
+
if (this.trackingState.isProcessing) {
|
|
66
|
+
// Limit queue size to prevent unbounded growth during rapid status changes
|
|
67
|
+
if (this.pendingStatusChanges.length >= WagmiEventHandler.MAX_PENDING_STATUS_CHANGES) {
|
|
68
|
+
_logger.logger.warn("WagmiEventHandler: Pending status change queue full, dropping oldest");
|
|
69
|
+
this.pendingStatusChanges.shift();
|
|
70
|
+
}
|
|
71
|
+
// Queue status change to process after current one completes
|
|
72
|
+
this.pendingStatusChanges.push({
|
|
73
|
+
status,
|
|
74
|
+
prevStatus
|
|
75
|
+
});
|
|
76
|
+
_logger.logger.debug("WagmiEventHandler: Queuing status change for later processing");
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
this.trackingState.isProcessing = true;
|
|
80
|
+
try {
|
|
81
|
+
// Process current status change
|
|
82
|
+
await this.processStatusChange(status, prevStatus);
|
|
83
|
+
|
|
84
|
+
// Process pending status changes iteratively (inline, no recursion)
|
|
85
|
+
while (this.pendingStatusChanges.length > 0) {
|
|
86
|
+
const pending = this.pendingStatusChanges.shift();
|
|
87
|
+
await this.processStatusChange(pending.status, pending.prevStatus);
|
|
88
|
+
}
|
|
89
|
+
} finally {
|
|
90
|
+
this.trackingState.isProcessing = false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Process a single status change (extracted for iterative processing)
|
|
96
|
+
*/
|
|
97
|
+
async processStatusChange(status, prevStatus) {
|
|
98
|
+
try {
|
|
99
|
+
const state = this.getState();
|
|
100
|
+
const address = this.getConnectedAddress(state);
|
|
101
|
+
const chainId = state.chainId;
|
|
102
|
+
_logger.logger.info("WagmiEventHandler: Status changed", {
|
|
103
|
+
status,
|
|
104
|
+
prevStatus,
|
|
105
|
+
address,
|
|
106
|
+
chainId
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// Handle disconnect
|
|
110
|
+
if (status === "disconnected" && prevStatus === "connected") {
|
|
111
|
+
if (this.formo.isAutocaptureEnabled("disconnect")) {
|
|
112
|
+
await this.formo.disconnect({
|
|
113
|
+
chainId: this.trackingState.lastChainId,
|
|
114
|
+
address: this.trackingState.lastAddress
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
this.trackingState.lastAddress = undefined;
|
|
118
|
+
this.trackingState.lastChainId = undefined;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// Handle connect
|
|
122
|
+
if (status === "connected" && prevStatus !== "connected") {
|
|
123
|
+
if (address && chainId !== undefined) {
|
|
124
|
+
this.trackingState.lastAddress = address;
|
|
125
|
+
this.trackingState.lastChainId = chainId;
|
|
126
|
+
if (this.formo.isAutocaptureEnabled("connect")) {
|
|
127
|
+
const connectorName = this.getConnectorName(state);
|
|
128
|
+
const connectorId = this.getConnectorId(state);
|
|
129
|
+
await this.formo.connect({
|
|
130
|
+
chainId,
|
|
131
|
+
address
|
|
132
|
+
}, {
|
|
133
|
+
...(connectorName && {
|
|
134
|
+
providerName: connectorName
|
|
135
|
+
}),
|
|
136
|
+
// Connector ID is typically the rdns for EIP-6963 wallets
|
|
137
|
+
...(connectorId && {
|
|
138
|
+
rdns: connectorId
|
|
139
|
+
})
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
this.trackingState.lastStatus = status;
|
|
145
|
+
} catch (error) {
|
|
146
|
+
_logger.logger.error("WagmiEventHandler: Error handling status change:", error);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Handle chain ID changes
|
|
152
|
+
*/
|
|
153
|
+
async handleChainChange(chainId, prevChainId) {
|
|
154
|
+
// Skip if no change, chainId is undefined, or this is initial connection (prevChainId undefined)
|
|
155
|
+
if (chainId === prevChainId || chainId === undefined || prevChainId === undefined) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const state = this.getState();
|
|
159
|
+
if (state.status !== "connected") {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const address = this.getConnectedAddress(state);
|
|
163
|
+
if (!address) {
|
|
164
|
+
_logger.logger.warn("WagmiEventHandler: Chain changed but no address found");
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
_logger.logger.info("WagmiEventHandler: Chain changed", {
|
|
168
|
+
chainId,
|
|
169
|
+
prevChainId,
|
|
170
|
+
address
|
|
171
|
+
});
|
|
172
|
+
this.trackingState.lastChainId = chainId;
|
|
173
|
+
if (this.formo.isAutocaptureEnabled("chain")) {
|
|
174
|
+
try {
|
|
175
|
+
await this.formo.chain({
|
|
176
|
+
chainId,
|
|
177
|
+
address
|
|
178
|
+
});
|
|
179
|
+
} catch (error) {
|
|
180
|
+
_logger.logger.error("WagmiEventHandler: Error tracking chain change:", error);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Set up mutation tracking for signatures and transactions
|
|
187
|
+
*/
|
|
188
|
+
setupMutationTracking() {
|
|
189
|
+
if (!this.queryClient) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
_logger.logger.info("WagmiEventHandler: Setting up mutation tracking");
|
|
193
|
+
const mutationCache = this.queryClient.getMutationCache();
|
|
194
|
+
const unsubscribe = mutationCache.subscribe(event => {
|
|
195
|
+
this.handleMutationEvent(event);
|
|
196
|
+
});
|
|
197
|
+
this.unsubscribers.push(unsubscribe);
|
|
198
|
+
_logger.logger.info("WagmiEventHandler: Mutation tracking set up successfully");
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Handle mutation cache events
|
|
203
|
+
*/
|
|
204
|
+
handleMutationEvent(event) {
|
|
205
|
+
if (event.type !== "updated") {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const mutation = event.mutation;
|
|
209
|
+
const mutationKey = mutation.options.mutationKey;
|
|
210
|
+
if (!mutationKey || mutationKey.length === 0) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
const mutationType = mutationKey[0];
|
|
214
|
+
const state = mutation.state;
|
|
215
|
+
const mutationStateKey = `${mutation.mutationId}:${state.status}`;
|
|
216
|
+
if (this.processedMutations.has(mutationStateKey)) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
this.processedMutations.add(mutationStateKey);
|
|
220
|
+
_logger.logger.debug("WagmiEventHandler: Mutation event", {
|
|
221
|
+
mutationType,
|
|
222
|
+
mutationId: mutation.mutationId,
|
|
223
|
+
status: state.status
|
|
224
|
+
});
|
|
225
|
+
if (mutationType === "signMessage" || mutationType === "signTypedData") {
|
|
226
|
+
this.handleSignatureMutation(mutationType, mutation);
|
|
227
|
+
}
|
|
228
|
+
if (mutationType === "sendTransaction" || mutationType === "writeContract") {
|
|
229
|
+
this.handleTransactionMutation(mutationType, mutation);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// Cleanup old mutations
|
|
233
|
+
if (this.processedMutations.size > 1000) {
|
|
234
|
+
const entries = Array.from(this.processedMutations);
|
|
235
|
+
for (let i = 0; i < 500; i++) {
|
|
236
|
+
const entry = entries[i];
|
|
237
|
+
if (entry) {
|
|
238
|
+
this.processedMutations.delete(entry);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Handle signature mutations
|
|
246
|
+
*/
|
|
247
|
+
handleSignatureMutation(mutationType, mutation) {
|
|
248
|
+
if (!this.formo.isAutocaptureEnabled("signature")) {
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const state = mutation.state;
|
|
252
|
+
const variables = state.variables || {};
|
|
253
|
+
const chainId = this.trackingState.lastChainId;
|
|
254
|
+
const address = this.trackingState.lastAddress;
|
|
255
|
+
if (!address) {
|
|
256
|
+
_logger.logger.warn("WagmiEventHandler: Signature event but no address available");
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
if (!chainId || chainId === 0) {
|
|
260
|
+
_logger.logger.warn("WagmiEventHandler: Signature event but no valid chainId available");
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
try {
|
|
264
|
+
let status;
|
|
265
|
+
let signatureHash;
|
|
266
|
+
if (state.status === "pending") {
|
|
267
|
+
status = _events.SignatureStatus.REQUESTED;
|
|
268
|
+
} else if (state.status === "success") {
|
|
269
|
+
status = _events.SignatureStatus.CONFIRMED;
|
|
270
|
+
signatureHash = state.data;
|
|
271
|
+
} else if (state.status === "error") {
|
|
272
|
+
status = _events.SignatureStatus.REJECTED;
|
|
273
|
+
} else {
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
let message;
|
|
277
|
+
if (mutationType === "signMessage") {
|
|
278
|
+
message = variables.message || "";
|
|
279
|
+
} else {
|
|
280
|
+
message = JSON.stringify(variables.message || variables.types || {});
|
|
281
|
+
}
|
|
282
|
+
_logger.logger.info("WagmiEventHandler: Tracking signature event", {
|
|
283
|
+
status,
|
|
284
|
+
mutationType,
|
|
285
|
+
address,
|
|
286
|
+
chainId
|
|
287
|
+
});
|
|
288
|
+
this.formo.signature({
|
|
289
|
+
status,
|
|
290
|
+
chainId,
|
|
291
|
+
address,
|
|
292
|
+
message,
|
|
293
|
+
...(signatureHash && {
|
|
294
|
+
signatureHash
|
|
295
|
+
})
|
|
296
|
+
}).catch(error => {
|
|
297
|
+
_logger.logger.error("WagmiEventHandler: Error tracking signature:", error);
|
|
298
|
+
});
|
|
299
|
+
} catch (error) {
|
|
300
|
+
_logger.logger.error("WagmiEventHandler: Error handling signature mutation:", error);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Handle transaction mutations
|
|
306
|
+
*/
|
|
307
|
+
handleTransactionMutation(mutationType, mutation) {
|
|
308
|
+
if (!this.formo.isAutocaptureEnabled("transaction")) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
const state = mutation.state;
|
|
312
|
+
const variables = state.variables || {};
|
|
313
|
+
const chainId = this.trackingState.lastChainId || variables.chainId;
|
|
314
|
+
// Only use variables.account as fallback, not variables.address which is the contract address
|
|
315
|
+
const address = this.trackingState.lastAddress || variables.account;
|
|
316
|
+
if (!address) {
|
|
317
|
+
_logger.logger.warn("WagmiEventHandler: Transaction event but no address available");
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
if (!chainId || chainId === 0) {
|
|
321
|
+
_logger.logger.warn("WagmiEventHandler: Transaction event but no valid chainId available");
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
try {
|
|
325
|
+
let status;
|
|
326
|
+
let transactionHash;
|
|
327
|
+
if (state.status === "pending") {
|
|
328
|
+
status = _events.TransactionStatus.STARTED;
|
|
329
|
+
} else if (state.status === "success") {
|
|
330
|
+
status = _events.TransactionStatus.BROADCASTED;
|
|
331
|
+
transactionHash = state.data;
|
|
332
|
+
} else if (state.status === "error") {
|
|
333
|
+
status = _events.TransactionStatus.REJECTED;
|
|
334
|
+
} else {
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
const data = variables.data;
|
|
338
|
+
const to = variables.to || variables.address;
|
|
339
|
+
const value = variables.value?.toString();
|
|
340
|
+
_logger.logger.info("WagmiEventHandler: Tracking transaction event", {
|
|
341
|
+
status,
|
|
342
|
+
mutationType,
|
|
343
|
+
address,
|
|
344
|
+
chainId,
|
|
345
|
+
transactionHash
|
|
346
|
+
});
|
|
347
|
+
this.formo.transaction({
|
|
348
|
+
status,
|
|
349
|
+
chainId,
|
|
350
|
+
address,
|
|
351
|
+
...(data && {
|
|
352
|
+
data
|
|
353
|
+
}),
|
|
354
|
+
...(to && {
|
|
355
|
+
to
|
|
356
|
+
}),
|
|
357
|
+
...(value && {
|
|
358
|
+
value
|
|
359
|
+
}),
|
|
360
|
+
...(transactionHash && {
|
|
361
|
+
transactionHash
|
|
362
|
+
})
|
|
363
|
+
}).catch(error => {
|
|
364
|
+
_logger.logger.error("WagmiEventHandler: Error tracking transaction:", error);
|
|
365
|
+
});
|
|
366
|
+
} catch (error) {
|
|
367
|
+
_logger.logger.error("WagmiEventHandler: Error handling transaction mutation:", error);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Get current Wagmi state
|
|
373
|
+
*/
|
|
374
|
+
getState() {
|
|
375
|
+
if (typeof this.wagmiConfig.getState === "function") {
|
|
376
|
+
return this.wagmiConfig.getState();
|
|
377
|
+
}
|
|
378
|
+
if (this.wagmiConfig.state) {
|
|
379
|
+
return this.wagmiConfig.state;
|
|
380
|
+
}
|
|
381
|
+
_logger.logger.warn("WagmiEventHandler: Unable to get state from config, returning default state");
|
|
382
|
+
return {
|
|
383
|
+
status: "disconnected",
|
|
384
|
+
connections: new Map(),
|
|
385
|
+
current: undefined,
|
|
386
|
+
chainId: undefined
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* Get connected address from state
|
|
392
|
+
*/
|
|
393
|
+
getConnectedAddress(state) {
|
|
394
|
+
if (!state.current) {
|
|
395
|
+
return undefined;
|
|
396
|
+
}
|
|
397
|
+
const connection = state.connections.get(state.current);
|
|
398
|
+
if (!connection || connection.accounts.length === 0) {
|
|
399
|
+
return undefined;
|
|
400
|
+
}
|
|
401
|
+
return connection.accounts[0];
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Get connector name from state
|
|
406
|
+
*/
|
|
407
|
+
getConnectorName(state) {
|
|
408
|
+
if (!state.current) {
|
|
409
|
+
return undefined;
|
|
410
|
+
}
|
|
411
|
+
const connection = state.connections.get(state.current);
|
|
412
|
+
return connection?.connector.name;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* Get connector ID from state (typically the rdns for EIP-6963 wallets)
|
|
417
|
+
*/
|
|
418
|
+
getConnectorId(state) {
|
|
419
|
+
if (!state.current) {
|
|
420
|
+
return undefined;
|
|
421
|
+
}
|
|
422
|
+
const connection = state.connections.get(state.current);
|
|
423
|
+
return connection?.connector.id;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Clean up subscriptions
|
|
428
|
+
*/
|
|
429
|
+
cleanup() {
|
|
430
|
+
_logger.logger.info("WagmiEventHandler: Cleaning up subscriptions");
|
|
431
|
+
for (const unsubscribe of this.unsubscribers) {
|
|
432
|
+
try {
|
|
433
|
+
unsubscribe();
|
|
434
|
+
} catch (error) {
|
|
435
|
+
_logger.logger.error("WagmiEventHandler: Error during cleanup:", error);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
this.unsubscribers = [];
|
|
439
|
+
this.processedMutations.clear();
|
|
440
|
+
this.pendingStatusChanges = [];
|
|
441
|
+
_logger.logger.info("WagmiEventHandler: Cleanup complete");
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
exports.WagmiEventHandler = WagmiEventHandler;
|
|
445
|
+
//# sourceMappingURL=WagmiEventHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_events","require","_logger","WagmiEventHandler","unsubscribers","trackingState","isProcessing","processedMutations","Set","pendingStatusChanges","constructor","formoAnalytics","wagmiConfig","queryClient","formo","logger","info","setupConnectionListeners","setupMutationTracking","warn","statusUnsubscribe","subscribe","state","status","prevStatus","handleStatusChange","push","chainIdUnsubscribe","chainId","prevChainId","handleChainChange","MAX_PENDING_STATUS_CHANGES","length","shift","debug","processStatusChange","pending","getState","address","getConnectedAddress","isAutocaptureEnabled","disconnect","lastChainId","lastAddress","undefined","connectorName","getConnectorName","connectorId","getConnectorId","connect","providerName","rdns","lastStatus","error","chain","mutationCache","getMutationCache","unsubscribe","event","handleMutationEvent","type","mutation","mutationKey","options","mutationType","mutationStateKey","mutationId","has","add","handleSignatureMutation","handleTransactionMutation","size","entries","Array","from","i","entry","delete","variables","signatureHash","SignatureStatus","REQUESTED","CONFIRMED","data","REJECTED","message","JSON","stringify","types","signature","catch","account","transactionHash","TransactionStatus","STARTED","BROADCASTED","to","value","toString","transaction","connections","Map","current","connection","get","accounts","connector","name","id","cleanup","clear","exports"],"sourceRoot":"../../../../src","sources":["lib/wagmi/WagmiEventHandler.ts"],"mappings":";;;;;;AAOA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AARA;AACA;AACA;AACA;AACA;AACA;;AAcA;;AAgCO,MAAME,iBAAiB,CAAC;EAIrBC,aAAa,GAAoB,EAAE;EACnCC,aAAa,GAAuB;IAC1CC,YAAY,EAAE;EAChB,CAAC;EACOC,kBAAkB,GAAG,IAAIC,GAAG,CAAS,CAAC;EACtCC,oBAAoB,GAGvB,EAAE;EAEPC,WAAWA,CACTC,cAAuC,EACvCC,WAAwB,EACxBC,WAAyB,EACzB;IACA,IAAI,CAACC,KAAK,GAAGH,cAAc;IAC3B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAE9BE,cAAM,CAACC,IAAI,CAAC,mDAAmD,CAAC;IAEhE,IAAI,CAACC,wBAAwB,CAAC,CAAC;IAE/B,IAAI,IAAI,CAACJ,WAAW,EAAE;MACpB,IAAI,CAACK,qBAAqB,CAAC,CAAC;IAC9B,CAAC,MAAM;MACLH,cAAM,CAACI,IAAI,CACT,mGACF,CAAC;IACH;EACF;;EAEA;AACF;AACA;EACUF,wBAAwBA,CAAA,EAAS;IACvCF,cAAM,CAACC,IAAI,CAAC,oDAAoD,CAAC;;IAEjE;IACA,MAAMI,iBAAiB,GAAG,IAAI,CAACR,WAAW,CAACS,SAAS,CACjDC,KAAiB,IAAKA,KAAK,CAACC,MAAM,EACnC,CAACA,MAAM,EAAEC,UAAU,KAAK;MACtB,IAAI,CAACC,kBAAkB,CAACF,MAAM,EAAEC,UAAU,CAAC;IAC7C,CACF,CAAC;IACD,IAAI,CAACpB,aAAa,CAACsB,IAAI,CAACN,iBAAiB,CAAC;;IAE1C;IACA,MAAMO,kBAAkB,GAAG,IAAI,CAACf,WAAW,CAACS,SAAS,CAClDC,KAAiB,IAAKA,KAAK,CAACM,OAAO,EACpC,CAACA,OAAO,EAAEC,WAAW,KAAK;MACxB,IAAI,CAACC,iBAAiB,CAACF,OAAO,EAAEC,WAAW,CAAC;IAC9C,CACF,CAAC;IACD,IAAI,CAACzB,aAAa,CAACsB,IAAI,CAACC,kBAAkB,CAAC;IAE3CZ,cAAM,CAACC,IAAI,CAAC,6DAA6D,CAAC;EAC5E;;EAEA;EACA,OAAwBe,0BAA0B,GAAG,EAAE;;EAEvD;AACF;AACA;EACE,MAAcN,kBAAkBA,CAC9BF,MAA4B,EAC5BC,UAAgC,EACjB;IACf,IAAI,IAAI,CAACnB,aAAa,CAACC,YAAY,EAAE;MACnC;MACA,IAAI,IAAI,CAACG,oBAAoB,CAACuB,MAAM,IAAI7B,iBAAiB,CAAC4B,0BAA0B,EAAE;QACpFhB,cAAM,CAACI,IAAI,CAAC,sEAAsE,CAAC;QACnF,IAAI,CAACV,oBAAoB,CAACwB,KAAK,CAAC,CAAC;MACnC;MACA;MACA,IAAI,CAACxB,oBAAoB,CAACiB,IAAI,CAAC;QAAEH,MAAM;QAAEC;MAAW,CAAC,CAAC;MACtDT,cAAM,CAACmB,KAAK,CACV,+DACF,CAAC;MACD;IACF;IAEA,IAAI,CAAC7B,aAAa,CAACC,YAAY,GAAG,IAAI;IAEtC,IAAI;MACF;MACA,MAAM,IAAI,CAAC6B,mBAAmB,CAACZ,MAAM,EAAEC,UAAU,CAAC;;MAElD;MACA,OAAO,IAAI,CAACf,oBAAoB,CAACuB,MAAM,GAAG,CAAC,EAAE;QAC3C,MAAMI,OAAO,GAAG,IAAI,CAAC3B,oBAAoB,CAACwB,KAAK,CAAC,CAAE;QAClD,MAAM,IAAI,CAACE,mBAAmB,CAACC,OAAO,CAACb,MAAM,EAAEa,OAAO,CAACZ,UAAU,CAAC;MACpE;IACF,CAAC,SAAS;MACR,IAAI,CAACnB,aAAa,CAACC,YAAY,GAAG,KAAK;IACzC;EACF;;EAEA;AACF;AACA;EACE,MAAc6B,mBAAmBA,CAC/BZ,MAA4B,EAC5BC,UAAgC,EACjB;IACf,IAAI;MACF,MAAMF,KAAK,GAAG,IAAI,CAACe,QAAQ,CAAC,CAAC;MAC7B,MAAMC,OAAO,GAAG,IAAI,CAACC,mBAAmB,CAACjB,KAAK,CAAC;MAC/C,MAAMM,OAAO,GAAGN,KAAK,CAACM,OAAO;MAE7Bb,cAAM,CAACC,IAAI,CAAC,mCAAmC,EAAE;QAC/CO,MAAM;QACNC,UAAU;QACVc,OAAO;QACPV;MACF,CAAC,CAAC;;MAEF;MACA,IAAIL,MAAM,KAAK,cAAc,IAAIC,UAAU,KAAK,WAAW,EAAE;QAC3D,IAAI,IAAI,CAACV,KAAK,CAAC0B,oBAAoB,CAAC,YAAY,CAAC,EAAE;UACjD,MAAM,IAAI,CAAC1B,KAAK,CAAC2B,UAAU,CAAC;YAC1Bb,OAAO,EAAE,IAAI,CAACvB,aAAa,CAACqC,WAAW;YACvCJ,OAAO,EAAE,IAAI,CAACjC,aAAa,CAACsC;UAC9B,CAAC,CAAC;QACJ;QACA,IAAI,CAACtC,aAAa,CAACsC,WAAW,GAAGC,SAAS;QAC1C,IAAI,CAACvC,aAAa,CAACqC,WAAW,GAAGE,SAAS;MAC5C;;MAEA;MACA,IAAIrB,MAAM,KAAK,WAAW,IAAIC,UAAU,KAAK,WAAW,EAAE;QACxD,IAAIc,OAAO,IAAIV,OAAO,KAAKgB,SAAS,EAAE;UACpC,IAAI,CAACvC,aAAa,CAACsC,WAAW,GAAGL,OAAO;UACxC,IAAI,CAACjC,aAAa,CAACqC,WAAW,GAAGd,OAAO;UAExC,IAAI,IAAI,CAACd,KAAK,CAAC0B,oBAAoB,CAAC,SAAS,CAAC,EAAE;YAC9C,MAAMK,aAAa,GAAG,IAAI,CAACC,gBAAgB,CAACxB,KAAK,CAAC;YAClD,MAAMyB,WAAW,GAAG,IAAI,CAACC,cAAc,CAAC1B,KAAK,CAAC;YAC9C,MAAM,IAAI,CAACR,KAAK,CAACmC,OAAO,CACtB;cAAErB,OAAO;cAAEU;YAAQ,CAAC,EACpB;cACE,IAAIO,aAAa,IAAI;gBAAEK,YAAY,EAAEL;cAAc,CAAC,CAAC;cACrD;cACA,IAAIE,WAAW,IAAI;gBAAEI,IAAI,EAAEJ;cAAY,CAAC;YAC1C,CACF,CAAC;UACH;QACF;MACF;MAEA,IAAI,CAAC1C,aAAa,CAAC+C,UAAU,GAAG7B,MAAM;IACxC,CAAC,CAAC,OAAO8B,KAAK,EAAE;MACdtC,cAAM,CAACsC,KAAK,CAAC,kDAAkD,EAAEA,KAAK,CAAC;IACzE;EACF;;EAEA;AACF;AACA;EACE,MAAcvB,iBAAiBA,CAC7BF,OAA2B,EAC3BC,WAA+B,EAChB;IACf;IACA,IAAID,OAAO,KAAKC,WAAW,IAAID,OAAO,KAAKgB,SAAS,IAAIf,WAAW,KAAKe,SAAS,EAAE;MACjF;IACF;IAEA,MAAMtB,KAAK,GAAG,IAAI,CAACe,QAAQ,CAAC,CAAC;IAC7B,IAAIf,KAAK,CAACC,MAAM,KAAK,WAAW,EAAE;MAChC;IACF;IAEA,MAAMe,OAAO,GAAG,IAAI,CAACC,mBAAmB,CAACjB,KAAK,CAAC;IAC/C,IAAI,CAACgB,OAAO,EAAE;MACZvB,cAAM,CAACI,IAAI,CAAC,uDAAuD,CAAC;MACpE;IACF;IAEAJ,cAAM,CAACC,IAAI,CAAC,kCAAkC,EAAE;MAC9CY,OAAO;MACPC,WAAW;MACXS;IACF,CAAC,CAAC;IAEF,IAAI,CAACjC,aAAa,CAACqC,WAAW,GAAGd,OAAO;IAExC,IAAI,IAAI,CAACd,KAAK,CAAC0B,oBAAoB,CAAC,OAAO,CAAC,EAAE;MAC5C,IAAI;QACF,MAAM,IAAI,CAAC1B,KAAK,CAACwC,KAAK,CAAC;UAAE1B,OAAO;UAAEU;QAAQ,CAAC,CAAC;MAC9C,CAAC,CAAC,OAAOe,KAAK,EAAE;QACdtC,cAAM,CAACsC,KAAK,CAAC,iDAAiD,EAAEA,KAAK,CAAC;MACxE;IACF;EACF;;EAEA;AACF;AACA;EACUnC,qBAAqBA,CAAA,EAAS;IACpC,IAAI,CAAC,IAAI,CAACL,WAAW,EAAE;MACrB;IACF;IAEAE,cAAM,CAACC,IAAI,CAAC,iDAAiD,CAAC;IAE9D,MAAMuC,aAAa,GAAG,IAAI,CAAC1C,WAAW,CAAC2C,gBAAgB,CAAC,CAAC;IACzD,MAAMC,WAAW,GAAGF,aAAa,CAAClC,SAAS,CAAEqC,KAAyB,IAAK;MACzE,IAAI,CAACC,mBAAmB,CAACD,KAAK,CAAC;IACjC,CAAC,CAAC;IAEF,IAAI,CAACtD,aAAa,CAACsB,IAAI,CAAC+B,WAAW,CAAC;IACpC1C,cAAM,CAACC,IAAI,CAAC,0DAA0D,CAAC;EACzE;;EAEA;AACF;AACA;EACU2C,mBAAmBA,CAACD,KAAyB,EAAQ;IAC3D,IAAIA,KAAK,CAACE,IAAI,KAAK,SAAS,EAAE;MAC5B;IACF;IAEA,MAAMC,QAAQ,GAAGH,KAAK,CAACG,QAAQ;IAC/B,MAAMC,WAAW,GAAGD,QAAQ,CAACE,OAAO,CAACD,WAAW;IAEhD,IAAI,CAACA,WAAW,IAAIA,WAAW,CAAC9B,MAAM,KAAK,CAAC,EAAE;MAC5C;IACF;IAEA,MAAMgC,YAAY,GAAGF,WAAW,CAAC,CAAC,CAAW;IAC7C,MAAMxC,KAAK,GAAGuC,QAAQ,CAACvC,KAAK;IAE5B,MAAM2C,gBAAgB,GAAG,GAAGJ,QAAQ,CAACK,UAAU,IAAI5C,KAAK,CAACC,MAAM,EAAE;IAEjE,IAAI,IAAI,CAAChB,kBAAkB,CAAC4D,GAAG,CAACF,gBAAgB,CAAC,EAAE;MACjD;IACF;IAEA,IAAI,CAAC1D,kBAAkB,CAAC6D,GAAG,CAACH,gBAAgB,CAAC;IAE7ClD,cAAM,CAACmB,KAAK,CAAC,mCAAmC,EAAE;MAChD8B,YAAY;MACZE,UAAU,EAAEL,QAAQ,CAACK,UAAU;MAC/B3C,MAAM,EAAED,KAAK,CAACC;IAChB,CAAC,CAAC;IAEF,IAAIyC,YAAY,KAAK,aAAa,IAAIA,YAAY,KAAK,eAAe,EAAE;MACtE,IAAI,CAACK,uBAAuB,CAC1BL,YAAY,EACZH,QACF,CAAC;IACH;IAEA,IACEG,YAAY,KAAK,iBAAiB,IAClCA,YAAY,KAAK,eAAe,EAChC;MACA,IAAI,CAACM,yBAAyB,CAC5BN,YAAY,EACZH,QACF,CAAC;IACH;;IAEA;IACA,IAAI,IAAI,CAACtD,kBAAkB,CAACgE,IAAI,GAAG,IAAI,EAAE;MACvC,MAAMC,OAAO,GAAGC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACnE,kBAAkB,CAAC;MACnD,KAAK,IAAIoE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,GAAG,EAAEA,CAAC,EAAE,EAAE;QAC5B,MAAMC,KAAK,GAAGJ,OAAO,CAACG,CAAC,CAAC;QACxB,IAAIC,KAAK,EAAE;UACT,IAAI,CAACrE,kBAAkB,CAACsE,MAAM,CAACD,KAAK,CAAC;QACvC;MACF;IACF;EACF;;EAEA;AACF;AACA;EACUP,uBAAuBA,CAC7BL,YAA8B,EAC9BH,QAAwC,EAClC;IACN,IAAI,CAAC,IAAI,CAAC/C,KAAK,CAAC0B,oBAAoB,CAAC,WAAW,CAAC,EAAE;MACjD;IACF;IAEA,MAAMlB,KAAK,GAAGuC,QAAQ,CAACvC,KAAK;IAC5B,MAAMwD,SAAS,GAAGxD,KAAK,CAACwD,SAAS,IAAI,CAAC,CAAC;IACvC,MAAMlD,OAAO,GAAG,IAAI,CAACvB,aAAa,CAACqC,WAAW;IAC9C,MAAMJ,OAAO,GAAG,IAAI,CAACjC,aAAa,CAACsC,WAAW;IAE9C,IAAI,CAACL,OAAO,EAAE;MACZvB,cAAM,CAACI,IAAI,CACT,6DACF,CAAC;MACD;IACF;IAEA,IAAI,CAACS,OAAO,IAAIA,OAAO,KAAK,CAAC,EAAE;MAC7Bb,cAAM,CAACI,IAAI,CACT,mEACF,CAAC;MACD;IACF;IAEA,IAAI;MACF,IAAII,MAAuB;MAC3B,IAAIwD,aAAiC;MAErC,IAAIzD,KAAK,CAACC,MAAM,KAAK,SAAS,EAAE;QAC9BA,MAAM,GAAGyD,uBAAe,CAACC,SAAS;MACpC,CAAC,MAAM,IAAI3D,KAAK,CAACC,MAAM,KAAK,SAAS,EAAE;QACrCA,MAAM,GAAGyD,uBAAe,CAACE,SAAS;QAClCH,aAAa,GAAGzD,KAAK,CAAC6D,IAAc;MACtC,CAAC,MAAM,IAAI7D,KAAK,CAACC,MAAM,KAAK,OAAO,EAAE;QACnCA,MAAM,GAAGyD,uBAAe,CAACI,QAAQ;MACnC,CAAC,MAAM;QACL;MACF;MAEA,IAAIC,OAAe;MACnB,IAAIrB,YAAY,KAAK,aAAa,EAAE;QAClCqB,OAAO,GAAIP,SAAS,CAACO,OAAO,IAAe,EAAE;MAC/C,CAAC,MAAM;QACLA,OAAO,GAAGC,IAAI,CAACC,SAAS,CAACT,SAAS,CAACO,OAAO,IAAIP,SAAS,CAACU,KAAK,IAAI,CAAC,CAAC,CAAC;MACtE;MAEAzE,cAAM,CAACC,IAAI,CAAC,6CAA6C,EAAE;QACzDO,MAAM;QACNyC,YAAY;QACZ1B,OAAO;QACPV;MACF,CAAC,CAAC;MAEF,IAAI,CAACd,KAAK,CAAC2E,SAAS,CAAC;QACnBlE,MAAM;QACNK,OAAO;QACPU,OAAO;QACP+C,OAAO;QACP,IAAIN,aAAa,IAAI;UAAEA;QAAc,CAAC;MACxC,CAAC,CAAC,CAACW,KAAK,CAAErC,KAAK,IAAK;QAClBtC,cAAM,CAACsC,KAAK,CAAC,8CAA8C,EAAEA,KAAK,CAAC;MACrE,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOA,KAAK,EAAE;MACdtC,cAAM,CAACsC,KAAK,CACV,uDAAuD,EACvDA,KACF,CAAC;IACH;EACF;;EAEA;AACF;AACA;EACUiB,yBAAyBA,CAC/BN,YAA8B,EAC9BH,QAAwC,EAClC;IACN,IAAI,CAAC,IAAI,CAAC/C,KAAK,CAAC0B,oBAAoB,CAAC,aAAa,CAAC,EAAE;MACnD;IACF;IAEA,MAAMlB,KAAK,GAAGuC,QAAQ,CAACvC,KAAK;IAC5B,MAAMwD,SAAS,GAAGxD,KAAK,CAACwD,SAAS,IAAI,CAAC,CAAC;IACvC,MAAMlD,OAAO,GACX,IAAI,CAACvB,aAAa,CAACqC,WAAW,IAC7BoC,SAAS,CAAClD,OAA8B;IAC3C;IACA,MAAMU,OAAO,GACX,IAAI,CAACjC,aAAa,CAACsC,WAAW,IAC7BmC,SAAS,CAACa,OAA8B;IAE3C,IAAI,CAACrD,OAAO,EAAE;MACZvB,cAAM,CAACI,IAAI,CACT,+DACF,CAAC;MACD;IACF;IAEA,IAAI,CAACS,OAAO,IAAIA,OAAO,KAAK,CAAC,EAAE;MAC7Bb,cAAM,CAACI,IAAI,CACT,qEACF,CAAC;MACD;IACF;IAEA,IAAI;MACF,IAAII,MAAyB;MAC7B,IAAIqE,eAAmC;MAEvC,IAAItE,KAAK,CAACC,MAAM,KAAK,SAAS,EAAE;QAC9BA,MAAM,GAAGsE,yBAAiB,CAACC,OAAO;MACpC,CAAC,MAAM,IAAIxE,KAAK,CAACC,MAAM,KAAK,SAAS,EAAE;QACrCA,MAAM,GAAGsE,yBAAiB,CAACE,WAAW;QACtCH,eAAe,GAAGtE,KAAK,CAAC6D,IAAc;MACxC,CAAC,MAAM,IAAI7D,KAAK,CAACC,MAAM,KAAK,OAAO,EAAE;QACnCA,MAAM,GAAGsE,yBAAiB,CAACT,QAAQ;MACrC,CAAC,MAAM;QACL;MACF;MAEA,MAAMD,IAAI,GAAGL,SAAS,CAACK,IAA0B;MACjD,MAAMa,EAAE,GACLlB,SAAS,CAACkB,EAAE,IACZlB,SAAS,CAACxC,OAA8B;MAC3C,MAAM2D,KAAK,GAAGnB,SAAS,CAACmB,KAAK,EAAEC,QAAQ,CAAC,CAAC;MAEzCnF,cAAM,CAACC,IAAI,CAAC,+CAA+C,EAAE;QAC3DO,MAAM;QACNyC,YAAY;QACZ1B,OAAO;QACPV,OAAO;QACPgE;MACF,CAAC,CAAC;MAEF,IAAI,CAAC9E,KAAK,CAACqF,WAAW,CAAC;QACrB5E,MAAM;QACNK,OAAO;QACPU,OAAO;QACP,IAAI6C,IAAI,IAAI;UAAEA;QAAK,CAAC,CAAC;QACrB,IAAIa,EAAE,IAAI;UAAEA;QAAG,CAAC,CAAC;QACjB,IAAIC,KAAK,IAAI;UAAEA;QAAM,CAAC,CAAC;QACvB,IAAIL,eAAe,IAAI;UAAEA;QAAgB,CAAC;MAC5C,CAAC,CAAC,CAACF,KAAK,CAAErC,KAAK,IAAK;QAClBtC,cAAM,CAACsC,KAAK,CAAC,gDAAgD,EAAEA,KAAK,CAAC;MACvE,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOA,KAAK,EAAE;MACdtC,cAAM,CAACsC,KAAK,CACV,yDAAyD,EACzDA,KACF,CAAC;IACH;EACF;;EAEA;AACF;AACA;EACUhB,QAAQA,CAAA,EAAe;IAC7B,IAAI,OAAO,IAAI,CAACzB,WAAW,CAACyB,QAAQ,KAAK,UAAU,EAAE;MACnD,OAAO,IAAI,CAACzB,WAAW,CAACyB,QAAQ,CAAC,CAAC;IACpC;IAEA,IAAI,IAAI,CAACzB,WAAW,CAACU,KAAK,EAAE;MAC1B,OAAO,IAAI,CAACV,WAAW,CAACU,KAAK;IAC/B;IAEAP,cAAM,CAACI,IAAI,CACT,6EACF,CAAC;IACD,OAAO;MACLI,MAAM,EAAE,cAAc;MACtB6E,WAAW,EAAE,IAAIC,GAAG,CAAC,CAAC;MACtBC,OAAO,EAAE1D,SAAS;MAClBhB,OAAO,EAAEgB;IACX,CAAC;EACH;;EAEA;AACF;AACA;EACUL,mBAAmBA,CAACjB,KAAiB,EAAsB;IACjE,IAAI,CAACA,KAAK,CAACgF,OAAO,EAAE;MAClB,OAAO1D,SAAS;IAClB;IAEA,MAAM2D,UAAU,GAAGjF,KAAK,CAAC8E,WAAW,CAACI,GAAG,CAAClF,KAAK,CAACgF,OAAO,CAAC;IACvD,IAAI,CAACC,UAAU,IAAIA,UAAU,CAACE,QAAQ,CAACzE,MAAM,KAAK,CAAC,EAAE;MACnD,OAAOY,SAAS;IAClB;IAEA,OAAO2D,UAAU,CAACE,QAAQ,CAAC,CAAC,CAAC;EAC/B;;EAEA;AACF;AACA;EACU3D,gBAAgBA,CAACxB,KAAiB,EAAsB;IAC9D,IAAI,CAACA,KAAK,CAACgF,OAAO,EAAE;MAClB,OAAO1D,SAAS;IAClB;IAEA,MAAM2D,UAAU,GAAGjF,KAAK,CAAC8E,WAAW,CAACI,GAAG,CAAClF,KAAK,CAACgF,OAAO,CAAC;IACvD,OAAOC,UAAU,EAAEG,SAAS,CAACC,IAAI;EACnC;;EAEA;AACF;AACA;EACU3D,cAAcA,CAAC1B,KAAiB,EAAsB;IAC5D,IAAI,CAACA,KAAK,CAACgF,OAAO,EAAE;MAClB,OAAO1D,SAAS;IAClB;IAEA,MAAM2D,UAAU,GAAGjF,KAAK,CAAC8E,WAAW,CAACI,GAAG,CAAClF,KAAK,CAACgF,OAAO,CAAC;IACvD,OAAOC,UAAU,EAAEG,SAAS,CAACE,EAAE;EACjC;;EAEA;AACF;AACA;EACSC,OAAOA,CAAA,EAAS;IACrB9F,cAAM,CAACC,IAAI,CAAC,8CAA8C,CAAC;IAE3D,KAAK,MAAMyC,WAAW,IAAI,IAAI,CAACrD,aAAa,EAAE;MAC5C,IAAI;QACFqD,WAAW,CAAC,CAAC;MACf,CAAC,CAAC,OAAOJ,KAAK,EAAE;QACdtC,cAAM,CAACsC,KAAK,CAAC,0CAA0C,EAAEA,KAAK,CAAC;MACjE;IACF;IAEA,IAAI,CAACjD,aAAa,GAAG,EAAE;IACvB,IAAI,CAACG,kBAAkB,CAACuG,KAAK,CAAC,CAAC;IAC/B,IAAI,CAACrG,oBAAoB,GAAG,EAAE;IAC9BM,cAAM,CAACC,IAAI,CAAC,qCAAqC,CAAC;EACpD;AACF;AAAC+F,OAAA,CAAA5G,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _WagmiEventHandler = require("./WagmiEventHandler");
|
|
7
|
+
Object.keys(_WagmiEventHandler).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _WagmiEventHandler[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _WagmiEventHandler[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _types = require("./types");
|
|
18
|
+
Object.keys(_types).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _types[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_WagmiEventHandler","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_types"],"sourceRoot":"../../../../src","sources":["lib/wagmi/index.ts"],"mappings":";;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["lib/wagmi/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/base.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TransactionStatus = exports.SignatureStatus = void 0;
|
|
7
|
+
//#region Specific Event Types
|
|
8
|
+
let SignatureStatus = exports.SignatureStatus = /*#__PURE__*/function (SignatureStatus) {
|
|
9
|
+
SignatureStatus["REQUESTED"] = "requested";
|
|
10
|
+
SignatureStatus["REJECTED"] = "rejected";
|
|
11
|
+
SignatureStatus["CONFIRMED"] = "confirmed";
|
|
12
|
+
return SignatureStatus;
|
|
13
|
+
}({});
|
|
14
|
+
let TransactionStatus = exports.TransactionStatus = /*#__PURE__*/function (TransactionStatus) {
|
|
15
|
+
TransactionStatus["STARTED"] = "started";
|
|
16
|
+
TransactionStatus["REJECTED"] = "rejected";
|
|
17
|
+
TransactionStatus["BROADCASTED"] = "broadcasted";
|
|
18
|
+
TransactionStatus["CONFIRMED"] = "confirmed";
|
|
19
|
+
TransactionStatus["REVERTED"] = "reverted";
|
|
20
|
+
return TransactionStatus;
|
|
21
|
+
}({});
|
|
22
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SignatureStatus","exports","TransactionStatus"],"sourceRoot":"../../../src","sources":["types/events.ts"],"mappings":";;;;;;AAyCA;AAAA,IAsFYA,eAAe,GAAAC,OAAA,CAAAD,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAMfE,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _base = require("./base");
|
|
7
|
+
Object.keys(_base).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _base[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _base[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _events = require("./events");
|
|
18
|
+
Object.keys(_events).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _events[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _events[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_base","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_events"],"sourceRoot":"../../../src","sources":["types/index.ts"],"mappings":";;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,KAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,KAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,KAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,OAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,OAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,OAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getValidAddress = getValidAddress;
|
|
7
|
+
exports.isBlockedAddress = isBlockedAddress;
|
|
8
|
+
exports.isValidAddress = isValidAddress;
|
|
9
|
+
exports.toChecksumAddress = toChecksumAddress;
|
|
10
|
+
var _keccak = require("ethereum-cryptography/keccak.js");
|
|
11
|
+
var _utils = require("ethereum-cryptography/utils.js");
|
|
12
|
+
/**
|
|
13
|
+
* Address validation and checksum utilities
|
|
14
|
+
*
|
|
15
|
+
* Uses ethereum-cryptography for proper EIP-55 checksum computation
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Convert Uint8Array to hex string
|
|
20
|
+
*/
|
|
21
|
+
function toHex(bytes) {
|
|
22
|
+
return Array.from(bytes).map(b => b.toString(16).padStart(2, "0")).join("");
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Check if a string is a valid Ethereum address
|
|
27
|
+
*/
|
|
28
|
+
function isValidAddress(address) {
|
|
29
|
+
if (!address) return false;
|
|
30
|
+
if (typeof address !== "string") return false;
|
|
31
|
+
|
|
32
|
+
// Check if it matches basic hex address format
|
|
33
|
+
return /^0x[a-fA-F0-9]{40}$/.test(address);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Convert address to EIP-55 checksum format
|
|
38
|
+
*
|
|
39
|
+
* Uses keccak256 from ethereum-cryptography for correct checksumming
|
|
40
|
+
* See: https://eips.ethereum.org/EIPS/eip-55
|
|
41
|
+
*/
|
|
42
|
+
function toChecksumAddress(address) {
|
|
43
|
+
if (!isValidAddress(address)) {
|
|
44
|
+
return address;
|
|
45
|
+
}
|
|
46
|
+
const lowercaseAddress = address.toLowerCase().replace("0x", "");
|
|
47
|
+
const hash = toHex((0, _keccak.keccak256)((0, _utils.utf8ToBytes)(lowercaseAddress)));
|
|
48
|
+
let checksumAddress = "0x";
|
|
49
|
+
for (let i = 0; i < lowercaseAddress.length; i++) {
|
|
50
|
+
const char = lowercaseAddress[i];
|
|
51
|
+
if (char && parseInt(hash[i] || "0", 16) >= 8) {
|
|
52
|
+
checksumAddress += char.toUpperCase();
|
|
53
|
+
} else {
|
|
54
|
+
checksumAddress += char;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return checksumAddress;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Get valid address or null
|
|
62
|
+
*/
|
|
63
|
+
function getValidAddress(address) {
|
|
64
|
+
if (!address) return null;
|
|
65
|
+
const trimmed = typeof address === "string" ? address.trim() : address;
|
|
66
|
+
if (!isValidAddress(trimmed)) return null;
|
|
67
|
+
return trimmed;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Blocked addresses that should not emit events
|
|
72
|
+
* (zero address, dead address)
|
|
73
|
+
*/
|
|
74
|
+
const BLOCKED_ADDRESSES = new Set(["0x0000000000000000000000000000000000000000", "0x000000000000000000000000000000000000dead"]);
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Check if address is in blocked list
|
|
78
|
+
*/
|
|
79
|
+
function isBlockedAddress(address) {
|
|
80
|
+
return BLOCKED_ADDRESSES.has(address.toLowerCase());
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_keccak","require","_utils","toHex","bytes","Array","from","map","b","toString","padStart","join","isValidAddress","address","test","toChecksumAddress","lowercaseAddress","toLowerCase","replace","hash","keccak256","utf8ToBytes","checksumAddress","i","length","char","parseInt","toUpperCase","getValidAddress","trimmed","trim","BLOCKED_ADDRESSES","Set","isBlockedAddress","has"],"sourceRoot":"../../../src","sources":["utils/address.ts"],"mappings":";;;;;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAPA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA,SAASE,KAAKA,CAACC,KAAiB,EAAU;EACxC,OAAOC,KAAK,CAACC,IAAI,CAACF,KAAK,CAAC,CACrBG,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAC3CC,IAAI,CAAC,EAAE,CAAC;AACb;;AAEA;AACA;AACA;AACO,SAASC,cAAcA,CAACC,OAAe,EAAW;EACvD,IAAI,CAACA,OAAO,EAAE,OAAO,KAAK;EAC1B,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE,OAAO,KAAK;;EAE7C;EACA,OAAO,qBAAqB,CAACC,IAAI,CAACD,OAAO,CAAC;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAACF,OAAe,EAAU;EACzD,IAAI,CAACD,cAAc,CAACC,OAAO,CAAC,EAAE;IAC5B,OAAOA,OAAO;EAChB;EAEA,MAAMG,gBAAgB,GAAGH,OAAO,CAACI,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;EAChE,MAAMC,IAAI,GAAGhB,KAAK,CAAC,IAAAiB,iBAAS,EAAC,IAAAC,kBAAW,EAACL,gBAAgB,CAAC,CAAC,CAAC;EAE5D,IAAIM,eAAe,GAAG,IAAI;EAE1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,gBAAgB,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;IAChD,MAAME,IAAI,GAAGT,gBAAgB,CAACO,CAAC,CAAC;IAChC,IAAIE,IAAI,IAAIC,QAAQ,CAACP,IAAI,CAACI,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;MAC7CD,eAAe,IAAIG,IAAI,CAACE,WAAW,CAAC,CAAC;IACvC,CAAC,MAAM;MACLL,eAAe,IAAIG,IAAI;IACzB;EACF;EAEA,OAAOH,eAAe;AACxB;;AAEA;AACA;AACA;AACO,SAASM,eAAeA,CAC7Bf,OAAkC,EACnB;EACf,IAAI,CAACA,OAAO,EAAE,OAAO,IAAI;EACzB,MAAMgB,OAAO,GAAG,OAAOhB,OAAO,KAAK,QAAQ,GAAGA,OAAO,CAACiB,IAAI,CAAC,CAAC,GAAGjB,OAAO;EACtE,IAAI,CAACD,cAAc,CAACiB,OAAO,CAAC,EAAE,OAAO,IAAI;EACzC,OAAOA,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA,MAAME,iBAAiB,GAAG,IAAIC,GAAG,CAAS,CACxC,4CAA4C,EAC5C,4CAA4C,CAC7C,CAAC;;AAEF;AACA;AACA;AACO,SAASC,gBAAgBA,CAACpB,OAAe,EAAW;EACzD,OAAOkB,iBAAiB,CAACG,GAAG,CAACrB,OAAO,CAACI,WAAW,CAAC,CAAC,CAAC;AACrD","ignoreList":[]}
|