@formo/analytics 1.27.0 → 1.28.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/dist/cjs/src/FormoAnalytics.d.ts +69 -12
- package/dist/cjs/src/FormoAnalytics.js +273 -147
- package/dist/cjs/src/event/EventFactory.d.ts +10 -2
- package/dist/cjs/src/event/EventFactory.js +32 -21
- package/dist/cjs/src/index.d.ts +4 -0
- package/dist/cjs/src/index.js +6 -0
- package/dist/cjs/src/privy/index.d.ts +9 -0
- package/dist/cjs/src/privy/index.js +12 -0
- package/dist/cjs/src/privy/types.d.ts +175 -0
- package/dist/cjs/src/privy/types.js +12 -0
- package/dist/cjs/src/privy/utils.d.ts +32 -0
- package/dist/cjs/src/privy/utils.js +188 -0
- package/dist/cjs/src/session/index.js +2 -1
- package/dist/cjs/src/solana/SolanaAdapter.d.ts +211 -0
- package/dist/cjs/src/solana/SolanaAdapter.js +975 -0
- package/dist/cjs/src/solana/SolanaManager.d.ts +24 -0
- package/dist/cjs/src/solana/SolanaManager.js +80 -0
- package/dist/cjs/src/solana/address.d.ts +72 -0
- package/dist/cjs/src/solana/address.js +176 -0
- package/dist/cjs/src/solana/index.d.ts +13 -0
- package/dist/cjs/src/solana/index.js +32 -0
- package/dist/cjs/src/solana/types.d.ts +206 -0
- package/dist/cjs/src/solana/types.js +80 -0
- package/dist/cjs/src/types/base.d.ts +17 -0
- package/dist/cjs/src/types/events.d.ts +4 -3
- package/dist/cjs/src/utils/address.d.ts +21 -0
- package/dist/cjs/src/utils/address.js +48 -1
- package/dist/cjs/src/utils/builderCode.d.ts +30 -0
- package/dist/cjs/src/utils/builderCode.js +143 -0
- package/dist/cjs/src/utils/index.d.ts +1 -0
- package/dist/cjs/src/utils/index.js +1 -0
- package/dist/cjs/src/version.d.ts +1 -1
- package/dist/cjs/src/version.js +1 -1
- package/dist/cjs/src/wagmi/WagmiEventHandler.js +13 -15
- package/dist/cjs/src/wagmi/utils.d.ts +5 -0
- package/dist/cjs/src/wagmi/utils.js +20 -0
- package/dist/esm/src/FormoAnalytics.d.ts +69 -12
- package/dist/esm/src/FormoAnalytics.js +274 -148
- package/dist/esm/src/event/EventFactory.d.ts +10 -2
- package/dist/esm/src/event/EventFactory.js +34 -23
- package/dist/esm/src/index.d.ts +4 -0
- package/dist/esm/src/index.js +3 -0
- package/dist/esm/src/privy/index.d.ts +9 -0
- package/dist/esm/src/privy/index.js +8 -0
- package/dist/esm/src/privy/types.d.ts +175 -0
- package/dist/esm/src/privy/types.js +11 -0
- package/dist/esm/src/privy/utils.d.ts +32 -0
- package/dist/esm/src/privy/utils.js +185 -0
- package/dist/esm/src/session/index.js +2 -1
- package/dist/esm/src/solana/SolanaAdapter.d.ts +211 -0
- package/dist/esm/src/solana/SolanaAdapter.js +972 -0
- package/dist/esm/src/solana/SolanaManager.d.ts +24 -0
- package/dist/esm/src/solana/SolanaManager.js +77 -0
- package/dist/esm/src/solana/address.d.ts +72 -0
- package/dist/esm/src/solana/address.js +167 -0
- package/dist/esm/src/solana/index.d.ts +13 -0
- package/dist/esm/src/solana/index.js +13 -0
- package/dist/esm/src/solana/types.d.ts +206 -0
- package/dist/esm/src/solana/types.js +74 -0
- package/dist/esm/src/types/base.d.ts +17 -0
- package/dist/esm/src/types/events.d.ts +4 -3
- package/dist/esm/src/utils/address.d.ts +21 -0
- package/dist/esm/src/utils/address.js +45 -0
- package/dist/esm/src/utils/builderCode.d.ts +30 -0
- package/dist/esm/src/utils/builderCode.js +140 -0
- package/dist/esm/src/utils/index.d.ts +1 -0
- package/dist/esm/src/utils/index.js +1 -0
- package/dist/esm/src/version.d.ts +1 -1
- package/dist/esm/src/version.js +1 -1
- package/dist/esm/src/wagmi/WagmiEventHandler.js +14 -16
- package/dist/esm/src/wagmi/utils.d.ts +5 -0
- package/dist/esm/src/wagmi/utils.js +19 -0
- package/dist/index.umd.min.js +1 -1
- package/package.json +15 -3
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { EIP6963ProviderDetail } from "mipd";
|
|
2
2
|
import { Address, ChainID, Config, EIP1193Provider, IFormoAnalytics, IFormoEventContext, IFormoEventProperties, Options, SignatureStatus, TransactionStatus } from "./types";
|
|
3
|
+
import { SolanaManager } from "./solana/SolanaManager";
|
|
3
4
|
export declare class FormoAnalytics implements IFormoAnalytics {
|
|
4
5
|
readonly writeKey: string;
|
|
5
6
|
options: Options;
|
|
6
|
-
private
|
|
7
|
+
private _chainState;
|
|
8
|
+
private _activeNamespace?;
|
|
9
|
+
private get _provider();
|
|
10
|
+
private set _provider(value);
|
|
11
|
+
private get _evmAddress();
|
|
12
|
+
private get _evmChainId();
|
|
7
13
|
private _providerListenersMap;
|
|
8
14
|
private session;
|
|
9
15
|
private eventManager;
|
|
@@ -29,6 +35,11 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
29
35
|
* Only initialized when options.wagmi is provided
|
|
30
36
|
*/
|
|
31
37
|
private wagmiHandler?;
|
|
38
|
+
/**
|
|
39
|
+
* Solana integration manager for tracking Solana wallet events.
|
|
40
|
+
* Only initialized when options.solana is provided or via formo.solana.
|
|
41
|
+
*/
|
|
42
|
+
private solanaManager?;
|
|
32
43
|
/**
|
|
33
44
|
* Flag indicating if Wagmi mode is enabled
|
|
34
45
|
* When true, EIP-1193 provider wrapping is skipped
|
|
@@ -139,7 +150,7 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
139
150
|
* @param {(...args: unknown[]) => void} callback
|
|
140
151
|
* @returns {Promise<void>}
|
|
141
152
|
*/
|
|
142
|
-
transaction({ status, chainId, address, data, to, value, transactionHash, function_name, function_args, }: {
|
|
153
|
+
transaction({ status, chainId, address, data, to, value, transactionHash, function_name, function_args, builder_codes, }: {
|
|
143
154
|
status: TransactionStatus;
|
|
144
155
|
chainId: ChainID;
|
|
145
156
|
address: Address;
|
|
@@ -149,20 +160,38 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
149
160
|
transactionHash?: string;
|
|
150
161
|
function_name?: string;
|
|
151
162
|
function_args?: Record<string, unknown>;
|
|
163
|
+
builder_codes?: string;
|
|
152
164
|
}, properties?: IFormoEventProperties, context?: IFormoEventContext, callback?: (...args: unknown[]) => void): Promise<void>;
|
|
153
165
|
/**
|
|
154
166
|
* Emits an identify event with current wallet address and provider info.
|
|
155
|
-
*
|
|
156
|
-
* @param {string} params.
|
|
157
|
-
* @param {string} params.
|
|
158
|
-
* @param {string} params.
|
|
159
|
-
* @param {
|
|
167
|
+
*
|
|
168
|
+
* @param {string} params.address - Wallet address
|
|
169
|
+
* @param {string} params.userId - External user ID
|
|
170
|
+
* @param {string} params.rdns - Provider reverse domain name
|
|
171
|
+
* @param {string} params.providerName - Provider display name
|
|
172
|
+
* @param {IFormoEventProperties} properties - Additional properties to include with the identify event
|
|
160
173
|
* @param {IFormoEventContext} context
|
|
161
174
|
* @param {(...args: unknown[]) => void} callback
|
|
162
175
|
* @returns {Promise<void>}
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```ts
|
|
179
|
+
* // Basic identify
|
|
180
|
+
* formo.identify({ address: '0x...', userId: 'user123' });
|
|
181
|
+
*
|
|
182
|
+
* // With Privy user
|
|
183
|
+
* import { parsePrivyProperties } from '@formo/analytics';
|
|
184
|
+
* const { user } = usePrivy();
|
|
185
|
+
* if (user) {
|
|
186
|
+
* const { properties, wallets } = parsePrivyProperties(user);
|
|
187
|
+
* for (const wallet of wallets) {
|
|
188
|
+
* formo.identify({ address: wallet.address, userId: user.id }, properties);
|
|
189
|
+
* }
|
|
190
|
+
* }
|
|
191
|
+
* ```
|
|
163
192
|
*/
|
|
164
193
|
identify(params?: {
|
|
165
|
-
address
|
|
194
|
+
address: Address;
|
|
166
195
|
providerName?: string;
|
|
167
196
|
userId?: string;
|
|
168
197
|
rdns?: string;
|
|
@@ -258,6 +287,19 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
258
287
|
get providers(): readonly EIP6963ProviderDetail[];
|
|
259
288
|
private detectWallets;
|
|
260
289
|
get provider(): EIP1193Provider | undefined;
|
|
290
|
+
/**
|
|
291
|
+
* Access the Solana integration manager.
|
|
292
|
+
* Lazily creates one if not already initialized.
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* ```tsx
|
|
296
|
+
* formo.solana.setWallet(wallet);
|
|
297
|
+
* formo.solana.setConnection(connection);
|
|
298
|
+
* formo.solana.setCluster("devnet");
|
|
299
|
+
* formo.solana.syncWalletState();
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
302
|
+
get solana(): SolanaManager;
|
|
261
303
|
private getAddress;
|
|
262
304
|
private getAccounts;
|
|
263
305
|
private getCurrentChainId;
|
|
@@ -298,11 +340,26 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
298
340
|
*/
|
|
299
341
|
private handleProviderMismatch;
|
|
300
342
|
/**
|
|
301
|
-
*
|
|
302
|
-
|
|
303
|
-
|
|
343
|
+
* Determine which namespace a chainId belongs to.
|
|
344
|
+
*/
|
|
345
|
+
private getNamespace;
|
|
346
|
+
/**
|
|
347
|
+
* Update per-chain state and sync the derived currentAddress/currentChainId.
|
|
348
|
+
* Accepts either a namespace string ('evm'/'solana') or a chainId number
|
|
349
|
+
* to resolve the namespace automatically. When a chainId number is passed,
|
|
350
|
+
* it is also stored as the namespace's chainId (unless explicitly overridden
|
|
351
|
+
* in the update object).
|
|
352
|
+
*/
|
|
353
|
+
private setChainState;
|
|
354
|
+
/**
|
|
355
|
+
* Clear per-chain state for a given namespace (or chainId) and sync derived state.
|
|
356
|
+
*/
|
|
357
|
+
private clearChainState;
|
|
358
|
+
/**
|
|
359
|
+
* Synchronize currentAddress/currentChainId from the active namespace.
|
|
360
|
+
* Last-connected-chain-wins: _activeNamespace takes precedence.
|
|
304
361
|
*/
|
|
305
|
-
private
|
|
362
|
+
private syncDerivedState;
|
|
306
363
|
/**
|
|
307
364
|
* Helper method to clear the active provider state
|
|
308
365
|
* Centralizes provider clearing logic for consistency
|