@lumiapassport/ui-kit 1.8.1 → 1.9.1
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 +56 -0
- package/dist/iframe/index.html +1 -1
- package/dist/iframe/main.js +45 -26
- package/dist/iframe/main.js.map +1 -1
- package/dist/index.cjs +33 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +33 -1
- package/dist/index.d.ts +33 -1
- package/dist/index.js +32 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -289,6 +289,38 @@ interface SignTypedDataParams {
|
|
|
289
289
|
* ```
|
|
290
290
|
*/
|
|
291
291
|
declare function signTypedData(session: AccountSession$1, params: SignTypedDataParams): Promise<`0x${string}`>;
|
|
292
|
+
/**
|
|
293
|
+
* Deploy smart account contract if not already deployed.
|
|
294
|
+
*
|
|
295
|
+
* This sends a minimal UserOperation (to 0x0, value 0, data 0x) which triggers
|
|
296
|
+
* account deployment via factory without requiring user consent.
|
|
297
|
+
*
|
|
298
|
+
* By default, checks if account is already deployed to avoid unnecessary gas costs.
|
|
299
|
+
* If already deployed, returns null without sending a transaction.
|
|
300
|
+
*
|
|
301
|
+
* @param session - Account session with signing credentials
|
|
302
|
+
* @param feeType - Fee type: 'economy', 'standard', or 'fast' (default: 'economy')
|
|
303
|
+
* @param options - Deployment options
|
|
304
|
+
* @param options.force - If true, sends transaction even if already deployed (default: false)
|
|
305
|
+
* @returns UserOperation hash if deployed, null if already deployed (when force=false)
|
|
306
|
+
*
|
|
307
|
+
* @example
|
|
308
|
+
* ```typescript
|
|
309
|
+
* // Deploy account immediately after DKG (skips if already deployed)
|
|
310
|
+
* const userOpHash = await deployAccount(session, 'economy');
|
|
311
|
+
* if (userOpHash) {
|
|
312
|
+
* console.log('Account deployed:', userOpHash);
|
|
313
|
+
* } else {
|
|
314
|
+
* console.log('Account already deployed');
|
|
315
|
+
* }
|
|
316
|
+
*
|
|
317
|
+
* // Force deployment even if already deployed (not recommended)
|
|
318
|
+
* const hash = await deployAccount(session, 'economy', { force: true });
|
|
319
|
+
* ```
|
|
320
|
+
*/
|
|
321
|
+
declare function deployAccount(session: AccountSession$1, feeType?: 'economy' | 'standard' | 'fast', options?: {
|
|
322
|
+
force?: boolean;
|
|
323
|
+
}): Promise<`0x${string}` | null>;
|
|
292
324
|
|
|
293
325
|
type AccountSession = AccountSession$1;
|
|
294
326
|
interface SessionState {
|
|
@@ -961,4 +993,4 @@ interface WalletReadyStatus {
|
|
|
961
993
|
timestamp: number;
|
|
962
994
|
}
|
|
963
995
|
|
|
964
|
-
export { type AccountSession$1 as AccountSession, Address, type AddressProps, type Asset, ConnectWalletButton, type ConnectWalletButtonProps, Hash, type HashProps, KeyshareBackup, LUMIA_EXPLORER_URL, LumiaLogo, type LumiaPassportCallbacks, type LumiaPassportConfig, LumiaPassportProvider, type LumiaPassportProviderProps, LumiaPassportSessionProvider, type LumiaPassportSessionProviderProps, LumiaRainbowKitProvider, type LumiaRainbowKitProviderProps, LumiaSessionProvider, type LumiaSessionProviderProps, LumiaWagmiProvider, type ProviderDetail, type SendTransactionParams, type SendTransactionResult, type SignTypedDataParams, type Theme, ThemeToggle, type TokenBalance, type Transaction, TransactionsList, type TypedDataDomain, type TypedDataField, type UpdateProfileRequest, type UseSendTransactionReturn, type UseUserOpStatusOptions, type UseUserOpStatusReturn, type UserOpMempool, type UserOpReceipt, type SendTransactionParams$1 as UserOpSendTransactionParams, type UserOpState, UserOpStatus, type UserOpStatusProps, type UserOperation, type UserProfile, type WalletReadyStatus, getUserProfile, lumiaBeam, prepareUserOperation, queryClient, sendUserOperation, signTypedData, updateUserProfile, useAssets, useLumiaPassportConfig, useLumiaPassportLinkedProfiles, useLumiaPassportSession, useLumiaSession, useSendTransaction, useSmartAccountTransactions, useTheme, useTokenBalance, useTokenInfo, useTransactions, useUserOpStatus, wagmiConfig };
|
|
996
|
+
export { type AccountSession$1 as AccountSession, Address, type AddressProps, type Asset, ConnectWalletButton, type ConnectWalletButtonProps, Hash, type HashProps, KeyshareBackup, LUMIA_EXPLORER_URL, LumiaLogo, type LumiaPassportCallbacks, type LumiaPassportConfig, LumiaPassportProvider, type LumiaPassportProviderProps, LumiaPassportSessionProvider, type LumiaPassportSessionProviderProps, LumiaRainbowKitProvider, type LumiaRainbowKitProviderProps, LumiaSessionProvider, type LumiaSessionProviderProps, LumiaWagmiProvider, type ProviderDetail, type SendTransactionParams, type SendTransactionResult, type SignTypedDataParams, type Theme, ThemeToggle, type TokenBalance, type Transaction, TransactionsList, type TypedDataDomain, type TypedDataField, type UpdateProfileRequest, type UseSendTransactionReturn, type UseUserOpStatusOptions, type UseUserOpStatusReturn, type UserOpMempool, type UserOpReceipt, type SendTransactionParams$1 as UserOpSendTransactionParams, type UserOpState, UserOpStatus, type UserOpStatusProps, type UserOperation, type UserProfile, type WalletReadyStatus, deployAccount, getUserProfile, lumiaBeam, prepareUserOperation, queryClient, sendUserOperation, signTypedData, updateUserProfile, useAssets, useLumiaPassportConfig, useLumiaPassportLinkedProfiles, useLumiaPassportSession, useLumiaSession, useSendTransaction, useSmartAccountTransactions, useTheme, useTokenBalance, useTokenInfo, useTransactions, useUserOpStatus, wagmiConfig };
|
package/dist/index.d.ts
CHANGED
|
@@ -289,6 +289,38 @@ interface SignTypedDataParams {
|
|
|
289
289
|
* ```
|
|
290
290
|
*/
|
|
291
291
|
declare function signTypedData(session: AccountSession$1, params: SignTypedDataParams): Promise<`0x${string}`>;
|
|
292
|
+
/**
|
|
293
|
+
* Deploy smart account contract if not already deployed.
|
|
294
|
+
*
|
|
295
|
+
* This sends a minimal UserOperation (to 0x0, value 0, data 0x) which triggers
|
|
296
|
+
* account deployment via factory without requiring user consent.
|
|
297
|
+
*
|
|
298
|
+
* By default, checks if account is already deployed to avoid unnecessary gas costs.
|
|
299
|
+
* If already deployed, returns null without sending a transaction.
|
|
300
|
+
*
|
|
301
|
+
* @param session - Account session with signing credentials
|
|
302
|
+
* @param feeType - Fee type: 'economy', 'standard', or 'fast' (default: 'economy')
|
|
303
|
+
* @param options - Deployment options
|
|
304
|
+
* @param options.force - If true, sends transaction even if already deployed (default: false)
|
|
305
|
+
* @returns UserOperation hash if deployed, null if already deployed (when force=false)
|
|
306
|
+
*
|
|
307
|
+
* @example
|
|
308
|
+
* ```typescript
|
|
309
|
+
* // Deploy account immediately after DKG (skips if already deployed)
|
|
310
|
+
* const userOpHash = await deployAccount(session, 'economy');
|
|
311
|
+
* if (userOpHash) {
|
|
312
|
+
* console.log('Account deployed:', userOpHash);
|
|
313
|
+
* } else {
|
|
314
|
+
* console.log('Account already deployed');
|
|
315
|
+
* }
|
|
316
|
+
*
|
|
317
|
+
* // Force deployment even if already deployed (not recommended)
|
|
318
|
+
* const hash = await deployAccount(session, 'economy', { force: true });
|
|
319
|
+
* ```
|
|
320
|
+
*/
|
|
321
|
+
declare function deployAccount(session: AccountSession$1, feeType?: 'economy' | 'standard' | 'fast', options?: {
|
|
322
|
+
force?: boolean;
|
|
323
|
+
}): Promise<`0x${string}` | null>;
|
|
292
324
|
|
|
293
325
|
type AccountSession = AccountSession$1;
|
|
294
326
|
interface SessionState {
|
|
@@ -961,4 +993,4 @@ interface WalletReadyStatus {
|
|
|
961
993
|
timestamp: number;
|
|
962
994
|
}
|
|
963
995
|
|
|
964
|
-
export { type AccountSession$1 as AccountSession, Address, type AddressProps, type Asset, ConnectWalletButton, type ConnectWalletButtonProps, Hash, type HashProps, KeyshareBackup, LUMIA_EXPLORER_URL, LumiaLogo, type LumiaPassportCallbacks, type LumiaPassportConfig, LumiaPassportProvider, type LumiaPassportProviderProps, LumiaPassportSessionProvider, type LumiaPassportSessionProviderProps, LumiaRainbowKitProvider, type LumiaRainbowKitProviderProps, LumiaSessionProvider, type LumiaSessionProviderProps, LumiaWagmiProvider, type ProviderDetail, type SendTransactionParams, type SendTransactionResult, type SignTypedDataParams, type Theme, ThemeToggle, type TokenBalance, type Transaction, TransactionsList, type TypedDataDomain, type TypedDataField, type UpdateProfileRequest, type UseSendTransactionReturn, type UseUserOpStatusOptions, type UseUserOpStatusReturn, type UserOpMempool, type UserOpReceipt, type SendTransactionParams$1 as UserOpSendTransactionParams, type UserOpState, UserOpStatus, type UserOpStatusProps, type UserOperation, type UserProfile, type WalletReadyStatus, getUserProfile, lumiaBeam, prepareUserOperation, queryClient, sendUserOperation, signTypedData, updateUserProfile, useAssets, useLumiaPassportConfig, useLumiaPassportLinkedProfiles, useLumiaPassportSession, useLumiaSession, useSendTransaction, useSmartAccountTransactions, useTheme, useTokenBalance, useTokenInfo, useTransactions, useUserOpStatus, wagmiConfig };
|
|
996
|
+
export { type AccountSession$1 as AccountSession, Address, type AddressProps, type Asset, ConnectWalletButton, type ConnectWalletButtonProps, Hash, type HashProps, KeyshareBackup, LUMIA_EXPLORER_URL, LumiaLogo, type LumiaPassportCallbacks, type LumiaPassportConfig, LumiaPassportProvider, type LumiaPassportProviderProps, LumiaPassportSessionProvider, type LumiaPassportSessionProviderProps, LumiaRainbowKitProvider, type LumiaRainbowKitProviderProps, LumiaSessionProvider, type LumiaSessionProviderProps, LumiaWagmiProvider, type ProviderDetail, type SendTransactionParams, type SendTransactionResult, type SignTypedDataParams, type Theme, ThemeToggle, type TokenBalance, type Transaction, TransactionsList, type TypedDataDomain, type TypedDataField, type UpdateProfileRequest, type UseSendTransactionReturn, type UseUserOpStatusOptions, type UseUserOpStatusReturn, type UserOpMempool, type UserOpReceipt, type SendTransactionParams$1 as UserOpSendTransactionParams, type UserOpState, UserOpStatus, type UserOpStatusProps, type UserOperation, type UserProfile, type WalletReadyStatus, deployAccount, getUserProfile, lumiaBeam, prepareUserOperation, queryClient, sendUserOperation, signTypedData, updateUserProfile, useAssets, useLumiaPassportConfig, useLumiaPassportLinkedProfiles, useLumiaPassportSession, useLumiaSession, useSendTransaction, useSmartAccountTransactions, useTheme, useTokenBalance, useTokenInfo, useTransactions, useUserOpStatus, wagmiConfig };
|
package/dist/index.js
CHANGED
|
@@ -2065,6 +2065,7 @@ async function verifyEmailLinkCode(email, code) {
|
|
|
2065
2065
|
if (!hasValidToken) throw new Error("No authentication token available");
|
|
2066
2066
|
const response = await authenticatedFetch(`${getTssUrl3()}/api/auth/link/email/verify-code`, {
|
|
2067
2067
|
method: "POST",
|
|
2068
|
+
credentials: "include",
|
|
2068
2069
|
body: JSON.stringify({ email, code })
|
|
2069
2070
|
});
|
|
2070
2071
|
if (!response.ok) {
|
|
@@ -5633,6 +5634,34 @@ async function signTypedData(session, params) {
|
|
|
5633
5634
|
}
|
|
5634
5635
|
return signature;
|
|
5635
5636
|
}
|
|
5637
|
+
async function deployAccount(session, feeType = "economy", options) {
|
|
5638
|
+
if (!options?.force) {
|
|
5639
|
+
try {
|
|
5640
|
+
const code = await publicClient.getCode({
|
|
5641
|
+
address: session.smartAccountAddress
|
|
5642
|
+
});
|
|
5643
|
+
const isDeployed = code && code !== "0x" && code.length > 2;
|
|
5644
|
+
if (isDeployed) {
|
|
5645
|
+
console.log("[deployAccount] Account already deployed, skipping deployment");
|
|
5646
|
+
return null;
|
|
5647
|
+
}
|
|
5648
|
+
console.log("[deployAccount] Account not deployed, initiating deployment");
|
|
5649
|
+
} catch (error) {
|
|
5650
|
+
console.warn("[deployAccount] Failed to check deployment status, proceeding with deployment:", error);
|
|
5651
|
+
}
|
|
5652
|
+
}
|
|
5653
|
+
return sendUserOperation(
|
|
5654
|
+
session,
|
|
5655
|
+
"0x0000000000000000000000000000000000000000",
|
|
5656
|
+
// to: burn address
|
|
5657
|
+
"0",
|
|
5658
|
+
// value: 0 (no funds)
|
|
5659
|
+
"0x",
|
|
5660
|
+
// data: empty (no contract call)
|
|
5661
|
+
feeType,
|
|
5662
|
+
"v0.7"
|
|
5663
|
+
);
|
|
5664
|
+
}
|
|
5636
5665
|
var PAYMASTER_VERIFICATION_GAS_LIMIT, PAYMASTER_POSTOP_GAS_LIMIT, MAX_BUNDLER_VERIFICATION_GAS, PAYMASTER_VERIFICATION_GAS, executeAbi;
|
|
5637
5666
|
var init_account = __esm({
|
|
5638
5667
|
"src/internal/clients/account.ts"() {
|
|
@@ -5708,6 +5737,7 @@ __export(clients_exports, {
|
|
|
5708
5737
|
createAccountSession: () => createAccountSession,
|
|
5709
5738
|
createAkClient: () => createAkClient,
|
|
5710
5739
|
createLumiaClient: () => createLumiaClient,
|
|
5740
|
+
deployAccount: () => deployAccount,
|
|
5711
5741
|
depositForLumiaAccount: () => depositForLumiaAccount,
|
|
5712
5742
|
depositForSmartAccount: () => depositForSmartAccount,
|
|
5713
5743
|
getBundlerClient: () => getBundlerClient,
|
|
@@ -7879,7 +7909,6 @@ var UserOpStatus = ({
|
|
|
7879
7909
|
const res = await fetch(getBundlerUrl(), {
|
|
7880
7910
|
method: "POST",
|
|
7881
7911
|
headers: { "content-type": "application/json" },
|
|
7882
|
-
credentials: "include",
|
|
7883
7912
|
body: JSON.stringify(body)
|
|
7884
7913
|
});
|
|
7885
7914
|
const json = await res.json();
|
|
@@ -8645,7 +8674,7 @@ function useLumiaPassportLinkedProfiles() {
|
|
|
8645
8674
|
// package.json
|
|
8646
8675
|
var package_default = {
|
|
8647
8676
|
name: "@lumiapassport/ui-kit",
|
|
8648
|
-
version: "1.
|
|
8677
|
+
version: "1.9.1",
|
|
8649
8678
|
description: "React UI components and hooks for Lumia Passport authentication and Account Abstraction",
|
|
8650
8679
|
type: "module",
|
|
8651
8680
|
main: "./dist/index.cjs",
|
|
@@ -9907,7 +9936,6 @@ function useUserOpStatus(options = {}) {
|
|
|
9907
9936
|
const res = await fetch(getBundlerUrl(), {
|
|
9908
9937
|
method: "POST",
|
|
9909
9938
|
headers: { "content-type": "application/json" },
|
|
9910
|
-
credentials: "include",
|
|
9911
9939
|
body: JSON.stringify(body)
|
|
9912
9940
|
});
|
|
9913
9941
|
const json = await res.json();
|
|
@@ -10209,6 +10237,7 @@ export {
|
|
|
10209
10237
|
ThemeToggle,
|
|
10210
10238
|
TransactionsList,
|
|
10211
10239
|
UserOpStatus,
|
|
10240
|
+
deployAccount,
|
|
10212
10241
|
getUserProfile,
|
|
10213
10242
|
lumiaBeam,
|
|
10214
10243
|
prepareUserOperation,
|