@rhinestone/1auth 0.1.0 → 0.1.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/dist/{chunk-UXYKIMGZ.mjs → chunk-U7KZ4XMQ.mjs} +21 -2
- package/dist/chunk-U7KZ4XMQ.mjs.map +1 -0
- package/dist/{client-C1inywuT.d.mts → client-B-HGKKaJ.d.mts} +21 -13
- package/dist/{client-C1inywuT.d.ts → client-B-HGKKaJ.d.ts} +21 -13
- package/dist/index.d.mts +14 -10
- package/dist/index.d.ts +14 -10
- package/dist/index.js +78 -31
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +58 -31
- package/dist/index.mjs.map +1 -1
- package/dist/{provider-q7M728Mn.d.ts → provider-CDIRlA4y.d.mts} +3 -2
- package/dist/{provider-Dgh51NRc.d.mts → provider-Cy1StrOe.d.ts} +3 -2
- package/dist/react.d.mts +3 -3
- package/dist/react.d.ts +3 -3
- package/dist/react.js.map +1 -1
- package/dist/react.mjs.map +1 -1
- package/dist/server.d.mts +10 -44
- package/dist/server.d.ts +10 -44
- package/dist/server.js +11 -8
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +11 -8
- package/dist/server.mjs.map +1 -1
- package/dist/wagmi.d.mts +4 -3
- package/dist/wagmi.d.ts +4 -3
- package/dist/wagmi.js +22 -2
- package/dist/wagmi.js.map +1 -1
- package/dist/wagmi.mjs +3 -2
- package/dist/wagmi.mjs.map +1 -1
- package/package.json +8 -8
- package/dist/chunk-UXYKIMGZ.mjs.map +0 -1
|
@@ -343,10 +343,27 @@ function createPasskeyProvider(options) {
|
|
|
343
343
|
}
|
|
344
344
|
return encodeWebAuthnSignature(result.signature);
|
|
345
345
|
};
|
|
346
|
+
const resolveIntentPayload = async (payload) => {
|
|
347
|
+
if (!options.signIntent) {
|
|
348
|
+
return {
|
|
349
|
+
username: payload.username,
|
|
350
|
+
targetChain: payload.targetChain,
|
|
351
|
+
calls: payload.calls
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
const signedIntent = await options.signIntent({
|
|
355
|
+
username: payload.username,
|
|
356
|
+
accountAddress: payload.accountAddress,
|
|
357
|
+
targetChain: payload.targetChain,
|
|
358
|
+
calls: payload.calls
|
|
359
|
+
});
|
|
360
|
+
return { signedIntent };
|
|
361
|
+
};
|
|
346
362
|
const sendIntent = async (payload) => {
|
|
347
363
|
const closeOn = options.waitForHash ?? true ? "completed" : "preconfirmed";
|
|
364
|
+
const intentPayload = await resolveIntentPayload(payload);
|
|
348
365
|
const result = await client.sendIntent({
|
|
349
|
-
...
|
|
366
|
+
...intentPayload,
|
|
350
367
|
closeOn,
|
|
351
368
|
waitForHash: options.waitForHash ?? true,
|
|
352
369
|
hashTimeoutMs: options.hashTimeoutMs,
|
|
@@ -410,6 +427,7 @@ function createPasskeyProvider(options) {
|
|
|
410
427
|
const calls = normalizeCalls([tx]);
|
|
411
428
|
return sendIntent({
|
|
412
429
|
username: user.username,
|
|
430
|
+
accountAddress: user.address,
|
|
413
431
|
targetChain,
|
|
414
432
|
calls
|
|
415
433
|
});
|
|
@@ -423,6 +441,7 @@ function createPasskeyProvider(options) {
|
|
|
423
441
|
if (!calls.length) throw new Error("No calls provided");
|
|
424
442
|
return sendIntent({
|
|
425
443
|
username: user.username,
|
|
444
|
+
accountAddress: user.address,
|
|
426
445
|
targetChain,
|
|
427
446
|
calls
|
|
428
447
|
});
|
|
@@ -479,4 +498,4 @@ export {
|
|
|
479
498
|
buildTransactionReview,
|
|
480
499
|
createPasskeyProvider
|
|
481
500
|
};
|
|
482
|
-
//# sourceMappingURL=chunk-
|
|
501
|
+
//# sourceMappingURL=chunk-U7KZ4XMQ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/registry.ts","../src/walletClient/utils.ts","../src/provider.ts"],"sourcesContent":["import type { Address, Chain } from \"viem\";\nimport { isAddress } from \"viem\";\nimport * as viemChains from \"viem/chains\";\nimport {\n getAllSupportedChainsAndTokens as getAllSupportedChainsAndTokensRaw,\n getSupportedTokens as getSupportedTokensRaw,\n getTokenAddress,\n getTokenDecimals,\n} from \"@rhinestone/sdk\";\n\nexport type TokenConfig = {\n symbol: string;\n address: Address;\n decimals: number;\n supportsMultichain?: boolean;\n [key: string]: unknown;\n};\n\nexport type ChainFilterOptions = {\n includeTestnets?: boolean;\n chainIds?: number[];\n};\n\nconst env: Record<string, string | undefined> =\n typeof process !== \"undefined\" ? process.env : {};\n\nconst ALL_VIEM_CHAINS = (Object.values(viemChains) as unknown[]).filter(\n (value): value is Chain =>\n typeof value === \"object\" && value !== null && \"id\" in value && \"name\" in value\n);\nconst VIEM_CHAIN_BY_ID = new Map<number, Chain>(\n ALL_VIEM_CHAINS.map((chain) => [chain.id, chain])\n);\nconst SUPPORTED_CHAIN_IDS = new Set(\n getAllSupportedChainsAndTokensRaw().map((entry) => entry.chainId)\n);\n\nfunction parseBool(value?: string): boolean | undefined {\n if (value === \"true\" || value === \"1\") return true;\n if (value === \"false\" || value === \"0\") return false;\n return undefined;\n}\n\nfunction resolveIncludeTestnets(explicit?: boolean): boolean {\n if (explicit !== undefined) return explicit;\n const envValue =\n parseBool(env.NEXT_PUBLIC_ORCHESTRATOR_USE_TESTNETS) ??\n parseBool(env.ORCHESTRATOR_USE_TESTNETS);\n return envValue ?? false;\n}\n\nfunction applyChainFilters(chainIds: number[], options?: ChainFilterOptions): number[] {\n const includeTestnets = resolveIncludeTestnets(options?.includeTestnets);\n const allowlist = options?.chainIds;\n let filtered = chainIds;\n\n if (!includeTestnets) {\n filtered = filtered.filter((chainId) => !isTestnet(chainId));\n }\n\n if (allowlist && allowlist.length > 0) {\n const allowed = new Set(allowlist);\n filtered = filtered.filter((chainId) => allowed.has(chainId));\n }\n\n return filtered;\n}\n\nexport function getSupportedChainIds(options?: ChainFilterOptions): number[] {\n return applyChainFilters(Array.from(SUPPORTED_CHAIN_IDS), options);\n}\n\nexport function getSupportedChains(options?: ChainFilterOptions): Chain[] {\n return getSupportedChainIds(options)\n .map((chainId) => VIEM_CHAIN_BY_ID.get(chainId))\n .filter((chain): chain is Chain => Boolean(chain));\n}\n\nexport function getAllSupportedChainsAndTokens(options?: ChainFilterOptions): Array<{\n chainId: number;\n tokens: TokenConfig[];\n}> {\n const allowed = new Set(getSupportedChainIds(options));\n return getAllSupportedChainsAndTokensRaw()\n .filter((entry) => allowed.has(entry.chainId))\n .map((entry) => ({\n chainId: entry.chainId,\n tokens: entry.tokens as TokenConfig[],\n }));\n}\n\nexport function getChainById(chainId: number): Chain {\n if (!SUPPORTED_CHAIN_IDS.has(chainId)) {\n throw new Error(`Unsupported chain ID: ${chainId}`);\n }\n const chain = VIEM_CHAIN_BY_ID.get(chainId);\n if (!chain) {\n throw new Error(`Unsupported chain ID: ${chainId}`);\n }\n return chain;\n}\n\nexport function getChainName(chainId: number): string {\n try {\n return getChainById(chainId).name;\n } catch {\n return `Chain ${chainId}`;\n }\n}\n\nexport function getChainExplorerUrl(chainId: number): string | undefined {\n try {\n return getChainById(chainId).blockExplorers?.default?.url;\n } catch {\n return undefined;\n }\n}\n\nexport function getChainRpcUrl(chainId: number): string | undefined {\n try {\n const chain = getChainById(chainId);\n return chain.rpcUrls?.default?.http?.[0] || chain.rpcUrls?.public?.http?.[0];\n } catch {\n return undefined;\n }\n}\n\nexport function getSupportedTokens(chainId: number): TokenConfig[] {\n return getSupportedTokensRaw(chainId) as TokenConfig[];\n}\n\nexport function getSupportedTokenSymbols(chainId: number): string[] {\n return getSupportedTokens(chainId).map((token) => token.symbol);\n}\n\nexport function resolveTokenAddress(token: string, chainId: number): Address {\n if (isAddress(token)) {\n return token;\n }\n return getTokenAddress(token.toUpperCase() as never, chainId);\n}\n\nexport function isTestnet(chainId: number): boolean {\n try {\n return getChainById(chainId).testnet ?? false;\n } catch {\n return false;\n }\n}\n\nexport function getTokenSymbol(tokenAddress: Address, chainId: number): string {\n const token = getSupportedTokens(chainId).find(\n (entry) => entry.address.toLowerCase() === tokenAddress.toLowerCase()\n );\n if (!token) {\n throw new Error(`Unsupported token: ${tokenAddress} on chain ${chainId}`);\n }\n return token.symbol;\n}\n\nexport function isTokenAddressSupported(tokenAddress: Address, chainId: number): boolean {\n try {\n return getSupportedTokens(chainId).some(\n (entry) => entry.address.toLowerCase() === tokenAddress.toLowerCase()\n );\n } catch {\n return false;\n }\n}\n\nexport { getTokenAddress, getTokenDecimals };\n","import { encodeAbiParameters, keccak256 } from 'viem';\nimport type { Hex } from 'viem';\nimport type { WebAuthnSignature } from '../types';\nimport type { TransactionCall } from './types';\n\n/**\n * P-256 curve order (n)\n * Used for signature malleability normalization\n */\nconst P256_N = BigInt(\n '0xFFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551'\n);\nconst P256_N_DIV_2 = P256_N / 2n;\n\n/**\n * WebAuthnAuth struct type for ABI encoding\n */\nconst WEBAUTHN_AUTH_TYPE = {\n type: 'tuple',\n components: [\n { type: 'bytes', name: 'authenticatorData' },\n { type: 'string', name: 'clientDataJSON' },\n { type: 'uint256', name: 'challengeIndex' },\n { type: 'uint256', name: 'typeIndex' },\n { type: 'uint256', name: 'r' },\n { type: 'uint256', name: 's' },\n ],\n} as const;\n\n/**\n * Encode a WebAuthn signature for ERC-1271 verification on-chain\n *\n * @param sig - The WebAuthn signature from the passkey\n * @returns ABI-encoded signature bytes\n */\nexport function encodeWebAuthnSignature(sig: WebAuthnSignature): Hex {\n // Normalize s to prevent signature malleability\n let s = BigInt(sig.s);\n if (s > P256_N_DIV_2) {\n s = P256_N - s;\n }\n\n return encodeAbiParameters([WEBAUTHN_AUTH_TYPE], [\n {\n authenticatorData: sig.authenticatorData as Hex,\n clientDataJSON: sig.clientDataJSON,\n challengeIndex: BigInt(sig.challengeIndex),\n typeIndex: BigInt(sig.typeIndex),\n r: BigInt(sig.r),\n s,\n },\n ]);\n}\n\n/**\n * Hash an array of transaction calls for signing\n *\n * @param calls - Array of transaction calls\n * @returns keccak256 hash of the encoded calls\n */\nexport function hashCalls(calls: TransactionCall[]): Hex {\n const encoded = encodeAbiParameters(\n [\n {\n type: 'tuple[]',\n components: [\n { type: 'address', name: 'to' },\n { type: 'bytes', name: 'data' },\n { type: 'uint256', name: 'value' },\n ],\n },\n ],\n [\n calls.map((c) => ({\n to: c.to,\n data: c.data || '0x',\n value: c.value || 0n,\n })),\n ]\n );\n return keccak256(encoded);\n}\n\n/**\n * Build transaction review display data from calls\n *\n * @param calls - Array of transaction calls\n * @returns TransactionDetails for the signing modal\n */\nexport function buildTransactionReview(calls: TransactionCall[]) {\n return {\n actions: calls.map((call, i) => ({\n type: 'custom' as const,\n label: call.label || `Contract Call ${i + 1}`,\n sublabel: call.sublabel || `To: ${call.to.slice(0, 10)}...${call.to.slice(-8)}`,\n amount: call.value ? `${call.value} wei` : undefined,\n })),\n };\n}\n","import {\n hexToString,\n isHex,\n numberToHex,\n type Address,\n type Hex,\n} from \"viem\";\nimport { OneAuthClient } from \"./client\";\nimport { getSupportedChainIds, getSupportedTokens } from \"./registry\";\nimport type { IntentCall, IntentSigner } from \"./types\";\nimport { encodeWebAuthnSignature } from \"./walletClient/utils\";\n\ntype ProviderRequest = {\n method: string;\n params?: unknown[] | Record<string, unknown>;\n};\n\ntype Listener = (...args: unknown[]) => void;\n\ntype StoredUser = {\n username: string;\n address: Address;\n};\n\nexport type PasskeyProvider = {\n request: (args: ProviderRequest) => Promise<unknown>;\n on: (event: string, listener: Listener) => void;\n removeListener: (event: string, listener: Listener) => void;\n disconnect: () => Promise<void>;\n};\n\nexport type PasskeyProviderOptions = {\n client: OneAuthClient;\n chainId: number;\n storageKey?: string;\n waitForHash?: boolean;\n hashTimeoutMs?: number;\n hashIntervalMs?: number;\n signIntent?: IntentSigner;\n};\n\nconst DEFAULT_STORAGE_KEY = \"1auth-user\";\n\nexport function createPasskeyProvider(\n options: PasskeyProviderOptions\n): PasskeyProvider {\n const { client } = options;\n let chainId = options.chainId;\n const storageKey = options.storageKey || DEFAULT_STORAGE_KEY;\n\n const listeners = new Map<string, Set<Listener>>();\n\n const emit = (event: string, ...args: unknown[]) => {\n const set = listeners.get(event);\n if (!set) return;\n for (const listener of set) listener(...args);\n };\n\n const getStoredUser = (): StoredUser | null => {\n if (typeof window === \"undefined\") return null;\n try {\n const raw = localStorage.getItem(storageKey);\n if (!raw) return null;\n const parsed = JSON.parse(raw) as StoredUser;\n if (!parsed?.username || !parsed?.address) return null;\n return parsed;\n } catch {\n return null;\n }\n };\n\n const setStoredUser = (user: StoredUser) => {\n if (typeof window === \"undefined\") return;\n localStorage.setItem(storageKey, JSON.stringify(user));\n };\n\n const clearStoredUser = () => {\n if (typeof window === \"undefined\") return;\n localStorage.removeItem(storageKey);\n };\n\n const resolveAccountAddress = async (username: string): Promise<Address> => {\n const response = await fetch(\n `${client.getProviderUrl()}/api/users/${encodeURIComponent(username)}/account`,\n {\n headers: {\n \"x-client-id\": client.getClientId(),\n },\n }\n );\n\n if (!response.ok) {\n const data = await response.json().catch(() => ({}));\n throw new Error(data.error || \"Failed to resolve account address\");\n }\n\n const data = await response.json();\n return data.address as Address;\n };\n\n const connect = async (): Promise<Address[]> => {\n const stored = getStoredUser();\n if (stored) {\n return [stored.address];\n }\n\n const result = await client.authWithModal();\n if (!result.success || !result.username) {\n throw new Error(result.error?.message || \"Authentication failed\");\n }\n\n const address = await resolveAccountAddress(result.username);\n setStoredUser({ username: result.username, address });\n emit(\"accountsChanged\", [address]);\n emit(\"connect\", { chainId: numberToHex(chainId) });\n return [address];\n };\n\n const disconnect = async () => {\n clearStoredUser();\n emit(\"accountsChanged\", []);\n emit(\"disconnect\");\n };\n\n const ensureUser = async (): Promise<StoredUser> => {\n const stored = getStoredUser();\n if (stored) return stored;\n const [address] = await connect();\n const username = getStoredUser()?.username;\n if (!username || !address) {\n throw new Error(\"Failed to resolve user session\");\n }\n return { username, address };\n };\n\n const parseChainId = (value: unknown): number | undefined => {\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\") {\n if (value.startsWith(\"0x\")) return Number.parseInt(value, 16);\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n }\n return undefined;\n };\n\n const normalizeValue = (value: unknown): string | undefined => {\n if (value === undefined || value === null) return undefined;\n if (typeof value === \"bigint\") return value.toString();\n if (typeof value === \"number\") return Math.trunc(value).toString();\n if (typeof value === \"string\") {\n if (value.startsWith(\"0x\")) {\n try {\n return BigInt(value).toString();\n } catch {\n return \"0\";\n }\n }\n return value;\n }\n return undefined;\n };\n\n const normalizeCalls = (calls: unknown[]): IntentCall[] => {\n return calls.map((call) => {\n const c = call as Record<string, unknown>;\n return {\n to: c.to as Address,\n data: (c.data as Hex | undefined) || \"0x\",\n value: normalizeValue(c.value) || \"0\",\n label: c.label as string | undefined,\n sublabel: c.sublabel as string | undefined,\n };\n });\n };\n\n const decodeMessage = (value: string) => {\n if (!isHex(value)) return value;\n try {\n return hexToString(value as Hex);\n } catch {\n return value;\n }\n };\n\n const signMessage = async (message: string) => {\n const { username } = await ensureUser();\n const result = await client.signMessage({\n username,\n message,\n });\n if (!result.success || !result.signature) {\n throw new Error(result.error?.message || \"Signing failed\");\n }\n return encodeWebAuthnSignature(result.signature);\n };\n\n const signTypedData = async (typedData: unknown) => {\n const { username } = await ensureUser();\n const data =\n typeof typedData === \"string\" ? JSON.parse(typedData) : typedData;\n const result = await client.signTypedData({\n username,\n domain: (data as any).domain,\n types: (data as any).types,\n primaryType: (data as any).primaryType,\n message: (data as any).message,\n });\n if (!result.success || !result.signature) {\n throw new Error(result.error?.message || \"Signing failed\");\n }\n return encodeWebAuthnSignature(result.signature);\n };\n\n const resolveIntentPayload = async (payload: {\n username: string;\n accountAddress: Address;\n targetChain: number;\n calls: IntentCall[];\n }) => {\n if (!options.signIntent) {\n return {\n username: payload.username,\n targetChain: payload.targetChain,\n calls: payload.calls,\n };\n }\n const signedIntent = await options.signIntent({\n username: payload.username,\n accountAddress: payload.accountAddress,\n targetChain: payload.targetChain,\n calls: payload.calls,\n });\n return { signedIntent };\n };\n\n const sendIntent = async (payload: {\n username: string;\n accountAddress: Address;\n targetChain: number;\n calls: IntentCall[];\n }) => {\n const closeOn = (options.waitForHash ?? true)\n ? \"completed\"\n : \"preconfirmed\";\n const intentPayload = await resolveIntentPayload(payload);\n const result = await client.sendIntent({\n ...intentPayload,\n closeOn,\n waitForHash: options.waitForHash ?? true,\n hashTimeoutMs: options.hashTimeoutMs,\n hashIntervalMs: options.hashIntervalMs,\n });\n\n if (!result.success || !result.transactionHash) {\n throw new Error(result.error?.message || \"Transaction failed\");\n }\n\n return result.transactionHash;\n };\n\n const request = async ({ method, params }: ProviderRequest) => {\n switch (method) {\n case \"eth_chainId\":\n return numberToHex(chainId);\n case \"eth_accounts\": {\n const stored = getStoredUser();\n return stored ? [stored.address] : [];\n }\n case \"eth_requestAccounts\":\n return connect();\n case \"wallet_connect\":\n return connect();\n case \"wallet_disconnect\":\n await disconnect();\n return true;\n case \"wallet_switchEthereumChain\": {\n const [param] = (params as any[]) || [];\n const next = parseChainId(param?.chainId ?? param);\n if (!next) {\n throw new Error(\"Invalid chainId\");\n }\n chainId = next;\n emit(\"chainChanged\", numberToHex(chainId));\n return null;\n }\n case \"personal_sign\": {\n const paramList = Array.isArray(params) ? params : [];\n const first = paramList[0];\n const second = paramList[1];\n const message =\n typeof first === \"string\" && first.startsWith(\"0x\") && second\n ? typeof second === \"string\" && !second.startsWith(\"0x\")\n ? second\n : decodeMessage(first)\n : typeof first === \"string\"\n ? decodeMessage(first)\n : typeof second === \"string\"\n ? decodeMessage(second)\n : \"\";\n if (!message) throw new Error(\"Invalid personal_sign payload\");\n return signMessage(message);\n }\n case \"eth_sign\": {\n const paramList = Array.isArray(params) ? params : [];\n const message = typeof paramList[1] === \"string\" ? paramList[1] : \"\";\n if (!message) throw new Error(\"Invalid eth_sign payload\");\n return signMessage(decodeMessage(message));\n }\n case \"eth_signTypedData\":\n case \"eth_signTypedData_v4\": {\n const paramList = Array.isArray(params) ? params : [];\n const typedData = paramList[1] ?? paramList[0];\n return signTypedData(typedData);\n }\n case \"eth_sendTransaction\": {\n const paramList = Array.isArray(params) ? params : [];\n const tx = (paramList[0] || {}) as Record<string, unknown>;\n const user = await ensureUser();\n const targetChain = parseChainId(tx.chainId) ?? chainId;\n const calls = normalizeCalls([tx]);\n return sendIntent({\n username: user.username,\n accountAddress: user.address,\n targetChain,\n calls,\n });\n }\n case \"wallet_sendCalls\": {\n const paramList = Array.isArray(params) ? params : [];\n const payload = (paramList[0] || {}) as Record<string, unknown>;\n const user = await ensureUser();\n const targetChain = parseChainId(payload.chainId) ?? chainId;\n const calls = normalizeCalls((payload.calls as unknown[]) || []);\n if (!calls.length) throw new Error(\"No calls provided\");\n return sendIntent({\n username: user.username,\n accountAddress: user.address,\n targetChain,\n calls,\n });\n }\n case \"wallet_getCapabilities\": {\n const chainIds = getSupportedChainIds();\n const tokensByChain = Object.fromEntries(\n chainIds.map((id) => [id, getSupportedTokens(id)])\n );\n return {\n chains: chainIds,\n tokens: tokensByChain,\n };\n }\n default:\n throw new Error(`Unsupported method: ${method}`);\n }\n };\n\n return {\n request,\n on(event, listener) {\n const set = listeners.get(event) ?? new Set();\n set.add(listener);\n listeners.set(event, set);\n },\n removeListener(event, listener) {\n const set = listeners.get(event);\n if (!set) return;\n set.delete(listener);\n if (set.size === 0) listeners.delete(event);\n },\n disconnect,\n };\n}\n"],"mappings":"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","names":["data"]}
|
|
@@ -8,13 +8,13 @@ interface ThemeConfig {
|
|
|
8
8
|
accent?: string;
|
|
9
9
|
}
|
|
10
10
|
interface PasskeyProviderConfig {
|
|
11
|
-
/** Base URL of the auth API
|
|
12
|
-
providerUrl
|
|
11
|
+
/** Base URL of the auth API. Defaults to https://passkey.1auth.box */
|
|
12
|
+
providerUrl?: string;
|
|
13
13
|
/** Client identifier for this application */
|
|
14
14
|
clientId: string;
|
|
15
15
|
/** Optional redirect URL for redirect flow */
|
|
16
16
|
redirectUrl?: string;
|
|
17
|
-
/** Optional URL of the dialog UI
|
|
17
|
+
/** Optional URL of the dialog UI. Defaults to providerUrl */
|
|
18
18
|
dialogUrl?: string;
|
|
19
19
|
/** Optional theme configuration for the dialog */
|
|
20
20
|
theme?: ThemeConfig;
|
|
@@ -246,12 +246,14 @@ interface IntentTokenRequest {
|
|
|
246
246
|
amount: string;
|
|
247
247
|
}
|
|
248
248
|
/**
|
|
249
|
-
* A signed intent request from a
|
|
250
|
-
* This provides XSS protection by ensuring calls were constructed server-side
|
|
249
|
+
* A signed intent request from a backend.
|
|
250
|
+
* This provides XSS protection by ensuring calls were constructed server-side.
|
|
251
251
|
*/
|
|
252
252
|
interface MerchantSignedIntent {
|
|
253
|
-
/**
|
|
254
|
-
|
|
253
|
+
/** Developer ID (clientId). Mapped to merchantId for the API. */
|
|
254
|
+
developerId?: string;
|
|
255
|
+
/** Wire field used by the API (same value as developerId) */
|
|
256
|
+
merchantId?: string;
|
|
255
257
|
/** Target chain ID */
|
|
256
258
|
targetChain: number;
|
|
257
259
|
/** Calls to execute (signed by merchant) */
|
|
@@ -271,6 +273,14 @@ interface MerchantSignedIntent {
|
|
|
271
273
|
/** Optional token requests */
|
|
272
274
|
tokenRequests?: IntentTokenRequest[];
|
|
273
275
|
}
|
|
276
|
+
type IntentSigner = (params: {
|
|
277
|
+
username: string;
|
|
278
|
+
accountAddress?: string;
|
|
279
|
+
targetChain: number;
|
|
280
|
+
calls: IntentCall[];
|
|
281
|
+
tokenRequests?: IntentTokenRequest[];
|
|
282
|
+
sourceAssets?: string[];
|
|
283
|
+
}) => Promise<MerchantSignedIntent>;
|
|
274
284
|
/**
|
|
275
285
|
* Options for sendIntent
|
|
276
286
|
*/
|
|
@@ -510,7 +520,7 @@ interface SignTypedDataResult {
|
|
|
510
520
|
};
|
|
511
521
|
}
|
|
512
522
|
|
|
513
|
-
declare class
|
|
523
|
+
declare class OneAuthClient {
|
|
514
524
|
private config;
|
|
515
525
|
private theme;
|
|
516
526
|
constructor(config: PasskeyProviderConfig);
|
|
@@ -542,9 +552,7 @@ declare class PasskeyProviderClient {
|
|
|
542
552
|
getClientId(): string;
|
|
543
553
|
private waitForTransactionHash;
|
|
544
554
|
/**
|
|
545
|
-
*
|
|
546
|
-
* This is the recommended method for authentication - shows a modal overlay
|
|
547
|
-
* with both sign in and create account options.
|
|
555
|
+
* Open the auth dialog (sign in + sign up).
|
|
548
556
|
*/
|
|
549
557
|
authWithModal(options?: {
|
|
550
558
|
username?: string;
|
|
@@ -764,7 +772,7 @@ declare class PasskeyProviderClient {
|
|
|
764
772
|
private createSigningRequest;
|
|
765
773
|
private openPopup;
|
|
766
774
|
/**
|
|
767
|
-
* Create a modal dialog with an iframe inside
|
|
775
|
+
* Create a modal dialog with an iframe inside.
|
|
768
776
|
*/
|
|
769
777
|
private createModalDialog;
|
|
770
778
|
private waitForModalAuthResponse;
|
|
@@ -774,4 +782,4 @@ declare class PasskeyProviderClient {
|
|
|
774
782
|
private fetchSigningResult;
|
|
775
783
|
}
|
|
776
784
|
|
|
777
|
-
export { type AuthenticateOptions as A, type BalanceRequirement as B, type CreateSigningRequestResponse as C, type
|
|
785
|
+
export { type AuthenticateOptions as A, type BalanceRequirement as B, type CreateSigningRequestResponse as C, type PrepareIntentResponse as D, type EmbedOptions as E, type ExecuteIntentResponse as F, type SendSwapOptions as G, type SendSwapResult as H, type IntentSigner as I, type SwapQuote as J, type ThemeConfig as K, type LoginOptions as L, type MerchantSignedIntent as M, OneAuthClient as O, type PasskeyProviderConfig as P, type RegisterOptions as R, type SendIntentResult as S, type TransactionAction as T, type UserPasskeysResponse as U, type WebAuthnSignature as W, type IntentCall as a, type SigningRequestOptions as b, type SigningResult as c, type SigningSuccess as d, type SigningError as e, type SigningErrorCode as f, type SigningRequestStatus as g, type PasskeyCredential as h, type RegisterResult as i, type LoginResult as j, type AuthenticateResult as k, type SignMessageOptions as l, type SignMessageResult as m, type SignTypedDataOptions as n, type SignTypedDataResult as o, type EIP712Domain as p, type EIP712Types as q, type EIP712TypeField as r, type TransactionFees as s, type TransactionDetails as t, type IntentTokenRequest as u, type SendIntentOptions as v, type IntentQuote as w, type IntentStatus as x, type OrchestratorStatus as y, type CloseOnStatus as z };
|
|
@@ -8,13 +8,13 @@ interface ThemeConfig {
|
|
|
8
8
|
accent?: string;
|
|
9
9
|
}
|
|
10
10
|
interface PasskeyProviderConfig {
|
|
11
|
-
/** Base URL of the auth API
|
|
12
|
-
providerUrl
|
|
11
|
+
/** Base URL of the auth API. Defaults to https://passkey.1auth.box */
|
|
12
|
+
providerUrl?: string;
|
|
13
13
|
/** Client identifier for this application */
|
|
14
14
|
clientId: string;
|
|
15
15
|
/** Optional redirect URL for redirect flow */
|
|
16
16
|
redirectUrl?: string;
|
|
17
|
-
/** Optional URL of the dialog UI
|
|
17
|
+
/** Optional URL of the dialog UI. Defaults to providerUrl */
|
|
18
18
|
dialogUrl?: string;
|
|
19
19
|
/** Optional theme configuration for the dialog */
|
|
20
20
|
theme?: ThemeConfig;
|
|
@@ -246,12 +246,14 @@ interface IntentTokenRequest {
|
|
|
246
246
|
amount: string;
|
|
247
247
|
}
|
|
248
248
|
/**
|
|
249
|
-
* A signed intent request from a
|
|
250
|
-
* This provides XSS protection by ensuring calls were constructed server-side
|
|
249
|
+
* A signed intent request from a backend.
|
|
250
|
+
* This provides XSS protection by ensuring calls were constructed server-side.
|
|
251
251
|
*/
|
|
252
252
|
interface MerchantSignedIntent {
|
|
253
|
-
/**
|
|
254
|
-
|
|
253
|
+
/** Developer ID (clientId). Mapped to merchantId for the API. */
|
|
254
|
+
developerId?: string;
|
|
255
|
+
/** Wire field used by the API (same value as developerId) */
|
|
256
|
+
merchantId?: string;
|
|
255
257
|
/** Target chain ID */
|
|
256
258
|
targetChain: number;
|
|
257
259
|
/** Calls to execute (signed by merchant) */
|
|
@@ -271,6 +273,14 @@ interface MerchantSignedIntent {
|
|
|
271
273
|
/** Optional token requests */
|
|
272
274
|
tokenRequests?: IntentTokenRequest[];
|
|
273
275
|
}
|
|
276
|
+
type IntentSigner = (params: {
|
|
277
|
+
username: string;
|
|
278
|
+
accountAddress?: string;
|
|
279
|
+
targetChain: number;
|
|
280
|
+
calls: IntentCall[];
|
|
281
|
+
tokenRequests?: IntentTokenRequest[];
|
|
282
|
+
sourceAssets?: string[];
|
|
283
|
+
}) => Promise<MerchantSignedIntent>;
|
|
274
284
|
/**
|
|
275
285
|
* Options for sendIntent
|
|
276
286
|
*/
|
|
@@ -510,7 +520,7 @@ interface SignTypedDataResult {
|
|
|
510
520
|
};
|
|
511
521
|
}
|
|
512
522
|
|
|
513
|
-
declare class
|
|
523
|
+
declare class OneAuthClient {
|
|
514
524
|
private config;
|
|
515
525
|
private theme;
|
|
516
526
|
constructor(config: PasskeyProviderConfig);
|
|
@@ -542,9 +552,7 @@ declare class PasskeyProviderClient {
|
|
|
542
552
|
getClientId(): string;
|
|
543
553
|
private waitForTransactionHash;
|
|
544
554
|
/**
|
|
545
|
-
*
|
|
546
|
-
* This is the recommended method for authentication - shows a modal overlay
|
|
547
|
-
* with both sign in and create account options.
|
|
555
|
+
* Open the auth dialog (sign in + sign up).
|
|
548
556
|
*/
|
|
549
557
|
authWithModal(options?: {
|
|
550
558
|
username?: string;
|
|
@@ -764,7 +772,7 @@ declare class PasskeyProviderClient {
|
|
|
764
772
|
private createSigningRequest;
|
|
765
773
|
private openPopup;
|
|
766
774
|
/**
|
|
767
|
-
* Create a modal dialog with an iframe inside
|
|
775
|
+
* Create a modal dialog with an iframe inside.
|
|
768
776
|
*/
|
|
769
777
|
private createModalDialog;
|
|
770
778
|
private waitForModalAuthResponse;
|
|
@@ -774,4 +782,4 @@ declare class PasskeyProviderClient {
|
|
|
774
782
|
private fetchSigningResult;
|
|
775
783
|
}
|
|
776
784
|
|
|
777
|
-
export { type AuthenticateOptions as A, type BalanceRequirement as B, type CreateSigningRequestResponse as C, type
|
|
785
|
+
export { type AuthenticateOptions as A, type BalanceRequirement as B, type CreateSigningRequestResponse as C, type PrepareIntentResponse as D, type EmbedOptions as E, type ExecuteIntentResponse as F, type SendSwapOptions as G, type SendSwapResult as H, type IntentSigner as I, type SwapQuote as J, type ThemeConfig as K, type LoginOptions as L, type MerchantSignedIntent as M, OneAuthClient as O, type PasskeyProviderConfig as P, type RegisterOptions as R, type SendIntentResult as S, type TransactionAction as T, type UserPasskeysResponse as U, type WebAuthnSignature as W, type IntentCall as a, type SigningRequestOptions as b, type SigningResult as c, type SigningSuccess as d, type SigningError as e, type SigningErrorCode as f, type SigningRequestStatus as g, type PasskeyCredential as h, type RegisterResult as i, type LoginResult as j, type AuthenticateResult as k, type SignMessageOptions as l, type SignMessageResult as m, type SignTypedDataOptions as n, type SignTypedDataResult as o, type EIP712Domain as p, type EIP712Types as q, type EIP712TypeField as r, type TransactionFees as s, type TransactionDetails as t, type IntentTokenRequest as u, type SendIntentOptions as v, type IntentQuote as w, type IntentStatus as x, type OrchestratorStatus as y, type CloseOnStatus as z };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { A as AuthenticateOptions, k as AuthenticateResult, B as BalanceRequirement,
|
|
3
|
-
export { P as PasskeyProvider, a as PasskeyProviderOptions, c as createPasskeyProvider } from './provider-
|
|
1
|
+
import { O as OneAuthClient, I as IntentSigner, W as WebAuthnSignature, a as IntentCall, S as SendIntentResult } from './client-B-HGKKaJ.mjs';
|
|
2
|
+
export { A as AuthenticateOptions, k as AuthenticateResult, B as BalanceRequirement, z as CloseOnStatus, C as CreateSigningRequestResponse, p as EIP712Domain, r as EIP712TypeField, q as EIP712Types, E as EmbedOptions, F as ExecuteIntentResponse, w as IntentQuote, x as IntentStatus, u as IntentTokenRequest, L as LoginOptions, j as LoginResult, M as MerchantSignedIntent, y as OrchestratorStatus, h as PasskeyCredential, P as PasskeyProviderConfig, D as PrepareIntentResponse, R as RegisterOptions, i as RegisterResult, v as SendIntentOptions, G as SendSwapOptions, H as SendSwapResult, l as SignMessageOptions, m as SignMessageResult, n as SignTypedDataOptions, o as SignTypedDataResult, e as SigningError, f as SigningErrorCode, b as SigningRequestOptions, g as SigningRequestStatus, c as SigningResult, d as SigningSuccess, J as SwapQuote, K as ThemeConfig, T as TransactionAction, t as TransactionDetails, s as TransactionFees, U as UserPasskeysResponse } from './client-B-HGKKaJ.mjs';
|
|
3
|
+
export { P as PasskeyProvider, a as PasskeyProviderOptions, c as createPasskeyProvider } from './provider-CDIRlA4y.mjs';
|
|
4
4
|
import { Address, LocalAccount, Chain, Transport, Hex, WalletClient, Hash } from 'viem';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
import * as React from 'react';
|
|
@@ -9,7 +9,7 @@ export { getTokenAddress, getTokenDecimals } from '@rhinestone/sdk';
|
|
|
9
9
|
type PasskeyAccount = LocalAccount<"1auth"> & {
|
|
10
10
|
username: string;
|
|
11
11
|
};
|
|
12
|
-
declare function createPasskeyAccount(client:
|
|
12
|
+
declare function createPasskeyAccount(client: OneAuthClient, params: {
|
|
13
13
|
address: Address;
|
|
14
14
|
username: string;
|
|
15
15
|
}): PasskeyAccount;
|
|
@@ -22,12 +22,14 @@ interface PasskeyWalletClientConfig {
|
|
|
22
22
|
accountAddress: Address;
|
|
23
23
|
/** Username for the passkey provider */
|
|
24
24
|
username: string;
|
|
25
|
-
/** Base URL of the auth API */
|
|
26
|
-
providerUrl
|
|
25
|
+
/** Base URL of the auth API (defaults to https://passkey.1auth.box) */
|
|
26
|
+
providerUrl?: string;
|
|
27
27
|
/** Client identifier for this application */
|
|
28
28
|
clientId: string;
|
|
29
29
|
/** Optional URL of the dialog UI */
|
|
30
30
|
dialogUrl?: string;
|
|
31
|
+
/** Optional signer for merchant-protected intents */
|
|
32
|
+
signIntent?: IntentSigner;
|
|
31
33
|
/** Chain configuration */
|
|
32
34
|
chain: Chain;
|
|
33
35
|
/** Transport (e.g., http(), webSocket()) */
|
|
@@ -60,6 +62,8 @@ interface TransactionCall {
|
|
|
60
62
|
interface SendCallsParams {
|
|
61
63
|
/** Array of calls to execute */
|
|
62
64
|
calls: TransactionCall[];
|
|
65
|
+
/** Optional chain id override */
|
|
66
|
+
chainId?: number;
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
/**
|
|
@@ -99,7 +103,7 @@ type PasskeyWalletClient = WalletClient & {
|
|
|
99
103
|
* const walletClient = createPasskeyWalletClient({
|
|
100
104
|
* accountAddress: '0x...',
|
|
101
105
|
* username: 'alice',
|
|
102
|
-
* providerUrl: 'https://
|
|
106
|
+
* providerUrl: 'https://passkey.1auth.box',
|
|
103
107
|
* clientId: 'my-dapp',
|
|
104
108
|
* chain: baseSepolia,
|
|
105
109
|
* transport: http(),
|
|
@@ -170,8 +174,8 @@ interface BatchQueueContextValue {
|
|
|
170
174
|
*/
|
|
171
175
|
declare function useBatchQueue(): BatchQueueContextValue;
|
|
172
176
|
interface BatchQueueProviderProps {
|
|
173
|
-
/** The
|
|
174
|
-
client:
|
|
177
|
+
/** The OneAuthClient instance */
|
|
178
|
+
client: OneAuthClient;
|
|
175
179
|
/** Optional username for localStorage persistence key */
|
|
176
180
|
username?: string;
|
|
177
181
|
/** Children to render */
|
|
@@ -264,4 +268,4 @@ declare function hashMessage(message: string): `0x${string}`;
|
|
|
264
268
|
*/
|
|
265
269
|
declare function verifyMessageHash(message: string, signedHash: string | undefined): boolean;
|
|
266
270
|
|
|
267
|
-
export { type BatchQueueContextValue, BatchQueueProvider, type BatchQueueProviderProps, BatchQueueWidget, type BatchQueueWidgetProps, type BatchedCall, type ChainFilterOptions, IntentCall, PASSKEY_MESSAGE_PREFIX, type PasskeyAccount, PasskeyProviderClient, type PasskeyWalletClient, type PasskeyWalletClientConfig, type SendCallsParams, SendIntentResult, type TokenConfig, type TransactionCall, WebAuthnSignature, createPasskeyAccount, createPasskeyWalletClient, encodeWebAuthnSignature, getAllSupportedChainsAndTokens, getChainById, getChainExplorerUrl, getChainName, getChainRpcUrl, getSupportedChainIds, getSupportedChains, getSupportedTokenSymbols, getSupportedTokens, getTokenSymbol, hashCalls, hashMessage, isTestnet, isTokenAddressSupported, resolveTokenAddress, useBatchQueue, verifyMessageHash };
|
|
271
|
+
export { type BatchQueueContextValue, BatchQueueProvider, type BatchQueueProviderProps, BatchQueueWidget, type BatchQueueWidgetProps, type BatchedCall, type ChainFilterOptions, IntentCall, IntentSigner, OneAuthClient, PASSKEY_MESSAGE_PREFIX, type PasskeyAccount, OneAuthClient as PasskeyProviderClient, type PasskeyWalletClient, type PasskeyWalletClientConfig, type SendCallsParams, SendIntentResult, type TokenConfig, type TransactionCall, WebAuthnSignature, createPasskeyAccount, createPasskeyWalletClient, encodeWebAuthnSignature, getAllSupportedChainsAndTokens, getChainById, getChainExplorerUrl, getChainName, getChainRpcUrl, getSupportedChainIds, getSupportedChains, getSupportedTokenSymbols, getSupportedTokens, getTokenSymbol, hashCalls, hashMessage, isTestnet, isTokenAddressSupported, resolveTokenAddress, useBatchQueue, verifyMessageHash };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { A as AuthenticateOptions, k as AuthenticateResult, B as BalanceRequirement,
|
|
3
|
-
export { P as PasskeyProvider, a as PasskeyProviderOptions, c as createPasskeyProvider } from './provider-
|
|
1
|
+
import { O as OneAuthClient, I as IntentSigner, W as WebAuthnSignature, a as IntentCall, S as SendIntentResult } from './client-B-HGKKaJ.js';
|
|
2
|
+
export { A as AuthenticateOptions, k as AuthenticateResult, B as BalanceRequirement, z as CloseOnStatus, C as CreateSigningRequestResponse, p as EIP712Domain, r as EIP712TypeField, q as EIP712Types, E as EmbedOptions, F as ExecuteIntentResponse, w as IntentQuote, x as IntentStatus, u as IntentTokenRequest, L as LoginOptions, j as LoginResult, M as MerchantSignedIntent, y as OrchestratorStatus, h as PasskeyCredential, P as PasskeyProviderConfig, D as PrepareIntentResponse, R as RegisterOptions, i as RegisterResult, v as SendIntentOptions, G as SendSwapOptions, H as SendSwapResult, l as SignMessageOptions, m as SignMessageResult, n as SignTypedDataOptions, o as SignTypedDataResult, e as SigningError, f as SigningErrorCode, b as SigningRequestOptions, g as SigningRequestStatus, c as SigningResult, d as SigningSuccess, J as SwapQuote, K as ThemeConfig, T as TransactionAction, t as TransactionDetails, s as TransactionFees, U as UserPasskeysResponse } from './client-B-HGKKaJ.js';
|
|
3
|
+
export { P as PasskeyProvider, a as PasskeyProviderOptions, c as createPasskeyProvider } from './provider-Cy1StrOe.js';
|
|
4
4
|
import { Address, LocalAccount, Chain, Transport, Hex, WalletClient, Hash } from 'viem';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
import * as React from 'react';
|
|
@@ -9,7 +9,7 @@ export { getTokenAddress, getTokenDecimals } from '@rhinestone/sdk';
|
|
|
9
9
|
type PasskeyAccount = LocalAccount<"1auth"> & {
|
|
10
10
|
username: string;
|
|
11
11
|
};
|
|
12
|
-
declare function createPasskeyAccount(client:
|
|
12
|
+
declare function createPasskeyAccount(client: OneAuthClient, params: {
|
|
13
13
|
address: Address;
|
|
14
14
|
username: string;
|
|
15
15
|
}): PasskeyAccount;
|
|
@@ -22,12 +22,14 @@ interface PasskeyWalletClientConfig {
|
|
|
22
22
|
accountAddress: Address;
|
|
23
23
|
/** Username for the passkey provider */
|
|
24
24
|
username: string;
|
|
25
|
-
/** Base URL of the auth API */
|
|
26
|
-
providerUrl
|
|
25
|
+
/** Base URL of the auth API (defaults to https://passkey.1auth.box) */
|
|
26
|
+
providerUrl?: string;
|
|
27
27
|
/** Client identifier for this application */
|
|
28
28
|
clientId: string;
|
|
29
29
|
/** Optional URL of the dialog UI */
|
|
30
30
|
dialogUrl?: string;
|
|
31
|
+
/** Optional signer for merchant-protected intents */
|
|
32
|
+
signIntent?: IntentSigner;
|
|
31
33
|
/** Chain configuration */
|
|
32
34
|
chain: Chain;
|
|
33
35
|
/** Transport (e.g., http(), webSocket()) */
|
|
@@ -60,6 +62,8 @@ interface TransactionCall {
|
|
|
60
62
|
interface SendCallsParams {
|
|
61
63
|
/** Array of calls to execute */
|
|
62
64
|
calls: TransactionCall[];
|
|
65
|
+
/** Optional chain id override */
|
|
66
|
+
chainId?: number;
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
/**
|
|
@@ -99,7 +103,7 @@ type PasskeyWalletClient = WalletClient & {
|
|
|
99
103
|
* const walletClient = createPasskeyWalletClient({
|
|
100
104
|
* accountAddress: '0x...',
|
|
101
105
|
* username: 'alice',
|
|
102
|
-
* providerUrl: 'https://
|
|
106
|
+
* providerUrl: 'https://passkey.1auth.box',
|
|
103
107
|
* clientId: 'my-dapp',
|
|
104
108
|
* chain: baseSepolia,
|
|
105
109
|
* transport: http(),
|
|
@@ -170,8 +174,8 @@ interface BatchQueueContextValue {
|
|
|
170
174
|
*/
|
|
171
175
|
declare function useBatchQueue(): BatchQueueContextValue;
|
|
172
176
|
interface BatchQueueProviderProps {
|
|
173
|
-
/** The
|
|
174
|
-
client:
|
|
177
|
+
/** The OneAuthClient instance */
|
|
178
|
+
client: OneAuthClient;
|
|
175
179
|
/** Optional username for localStorage persistence key */
|
|
176
180
|
username?: string;
|
|
177
181
|
/** Children to render */
|
|
@@ -264,4 +268,4 @@ declare function hashMessage(message: string): `0x${string}`;
|
|
|
264
268
|
*/
|
|
265
269
|
declare function verifyMessageHash(message: string, signedHash: string | undefined): boolean;
|
|
266
270
|
|
|
267
|
-
export { type BatchQueueContextValue, BatchQueueProvider, type BatchQueueProviderProps, BatchQueueWidget, type BatchQueueWidgetProps, type BatchedCall, type ChainFilterOptions, IntentCall, PASSKEY_MESSAGE_PREFIX, type PasskeyAccount, PasskeyProviderClient, type PasskeyWalletClient, type PasskeyWalletClientConfig, type SendCallsParams, SendIntentResult, type TokenConfig, type TransactionCall, WebAuthnSignature, createPasskeyAccount, createPasskeyWalletClient, encodeWebAuthnSignature, getAllSupportedChainsAndTokens, getChainById, getChainExplorerUrl, getChainName, getChainRpcUrl, getSupportedChainIds, getSupportedChains, getSupportedTokenSymbols, getSupportedTokens, getTokenSymbol, hashCalls, hashMessage, isTestnet, isTokenAddressSupported, resolveTokenAddress, useBatchQueue, verifyMessageHash };
|
|
271
|
+
export { type BatchQueueContextValue, BatchQueueProvider, type BatchQueueProviderProps, BatchQueueWidget, type BatchQueueWidgetProps, type BatchedCall, type ChainFilterOptions, IntentCall, IntentSigner, OneAuthClient, PASSKEY_MESSAGE_PREFIX, type PasskeyAccount, OneAuthClient as PasskeyProviderClient, type PasskeyWalletClient, type PasskeyWalletClientConfig, type SendCallsParams, SendIntentResult, type TokenConfig, type TransactionCall, WebAuthnSignature, createPasskeyAccount, createPasskeyWalletClient, encodeWebAuthnSignature, getAllSupportedChainsAndTokens, getChainById, getChainExplorerUrl, getChainName, getChainRpcUrl, getSupportedChainIds, getSupportedChains, getSupportedTokenSymbols, getSupportedTokens, getTokenSymbol, hashCalls, hashMessage, isTestnet, isTokenAddressSupported, resolveTokenAddress, useBatchQueue, verifyMessageHash };
|