Skip to content

Commit 7c29958

Browse files
committed
spike: add dynamic fe wallet support
1 parent 0b5366c commit 7c29958

22 files changed

+3021
-304
lines changed

packages/sdk/package.json

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,23 @@
1919
"src/*"
2020
],
2121
"exports": {
22-
".": "./dist/index.js"
22+
".": {
23+
"browser": "./dist/index.browser.js",
24+
"import": "./dist/index.node.js",
25+
"default": "./dist/index.node.js"
26+
},
27+
"./browser": "./dist/index.browser.js",
28+
"./node": "./dist/index.node.js"
29+
},
30+
"typesVersions": {
31+
"*": {
32+
"browser": [
33+
"dist/index.browser.d.ts"
34+
],
35+
"node": [
36+
"dist/index.node.d.ts"
37+
]
38+
}
2339
},
2440
"scripts": {
2541
"build": "tsc && resolve-tspaths",
@@ -47,6 +63,8 @@
4763
"viem": "^2.24.1"
4864
},
4965
"peerDependencies": {
66+
"@dynamic-labs/ethereum": ">=4.31.4",
67+
"@dynamic-labs/wallet-connector-core": ">=4.31.4",
5068
"@privy-io/server-auth": ">=1.28.0"
5169
},
5270
"devDependencies": {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import type { VerbsConfig } from '@/types/verbs.js'
2+
import { Verbs } from '@/verbs.js'
3+
import { BrowserHostedWalletProviderRegistry } from '@/wallet/providers/BrowserHostedWalletProviderRegistry.js'
4+
import type { HostedProviderType } from '@/wallet/providers/hostedProvider.types.js'
5+
6+
export function createVerbs<
7+
THostedWalletProviderType extends HostedProviderType,
8+
>(config: VerbsConfig<THostedWalletProviderType>) {
9+
return new Verbs(config, {
10+
registry: new BrowserHostedWalletProviderRegistry(),
11+
})
12+
}

packages/sdk/src/index.browser.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export * from '@/index.js'
2+
3+
// Environment-specific factory for Browser
4+
export { createVerbs } from '@/browserVerbsFactory.js'

packages/sdk/src/index.node.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export * from '@/index.js'
2+
export { PrivyWallet } from '@/wallet/PrivyWallet.js'
3+
export { PrivyHostedWalletProvider } from '@/wallet/providers/PrivyHostedWalletProvider.js'
4+
5+
// Environment-specific factory for Node
6+
export { createVerbs } from '@/nodeVerbsFactory.js'

packages/sdk/src/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,4 @@ export type {
1818
export { Verbs } from '@/verbs.js'
1919
export { SmartWallet } from '@/wallet/base/SmartWallet.js'
2020
export { Wallet } from '@/wallet/base/Wallet.js'
21-
export { PrivyWallet } from '@/wallet/PrivyWallet.js'
2221
export { SmartWalletProvider } from '@/wallet/providers/base/SmartWalletProvider.js'
23-
export { PrivyHostedWalletProvider } from '@/wallet/providers/PrivyHostedWalletProvider.js'
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import type { VerbsConfig } from '@/types/verbs.js'
2+
import { Verbs } from '@/verbs.js'
3+
import type { HostedProviderType } from '@/wallet/providers/hostedProvider.types.js'
4+
import { NodeHostedWalletProviderRegistry } from '@/wallet/providers/NodeHostedWalletProviderRegistry.js'
5+
6+
export function createVerbs<
7+
THostedWalletProviderType extends HostedProviderType,
8+
>(config: VerbsConfig<THostedWalletProviderType>) {
9+
return new Verbs(config, { registry: new NodeHostedWalletProviderRegistry() })
10+
}

packages/sdk/src/types/wallet.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type { Wallet as DynamicWallet } from '@dynamic-labs/wallet-connector-core'
12
import type { Address, LocalAccount } from 'viem'
23
import type { WebAuthnAccount } from 'viem/account-abstraction'
34

@@ -24,10 +25,18 @@ export type GetSmartWalletOptions = {
2425
}
2526

2627
/**
27-
* Options for converting a hosted wallet to a Verbs wallet
28+
* Options for converting a Privy hosted wallet to a Verbs wallet
2829
* @description Parameters for converting a hosted wallet to a Verbs wallet
2930
*/
30-
export type HostedWalletToVerbsWalletOptions = {
31+
export type PrivyHostedWalletToVerbsWalletOptions = {
3132
walletId: string
3233
address: string
3334
}
35+
36+
/**
37+
* Options for converting a Dynamic hosted wallet to a Verbs wallet
38+
* @description Parameters for converting a hosted wallet to a Verbs wallet
39+
*/
40+
export type DynamicHostedWalletToVerbsWalletOptions = {
41+
wallet: DynamicWallet
42+
}

0 commit comments

Comments
 (0)