@eth-optimism/actions-sdk 0.0.3 → 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/dist/actions.d.ts +19 -7
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +49 -19
- package/dist/actions.js.map +1 -1
- package/dist/actions.test.js +51 -81
- package/dist/actions.test.js.map +1 -1
- package/dist/constants/assets.d.ts.map +1 -1
- package/dist/constants/assets.js +2 -1
- package/dist/constants/assets.js.map +1 -1
- package/dist/constants/supportedChains.d.ts +1 -1
- package/dist/constants/supportedChains.d.ts.map +1 -1
- package/dist/constants/supportedChains.js +2 -1
- package/dist/constants/supportedChains.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lend/core/LendProvider.d.ts +3 -2
- package/dist/lend/core/LendProvider.d.ts.map +1 -1
- package/dist/lend/core/LendProvider.js.map +1 -1
- package/dist/lend/core/__tests__/LendProvider.test.js +18 -48
- package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -1
- package/dist/lend/index.d.ts +1 -0
- package/dist/lend/index.d.ts.map +1 -1
- package/dist/lend/index.js +1 -0
- package/dist/lend/index.js.map +1 -1
- package/dist/lend/namespaces/ActionsLendNamespace.d.ts +35 -8
- package/dist/lend/namespaces/ActionsLendNamespace.d.ts.map +1 -1
- package/dist/lend/namespaces/ActionsLendNamespace.js +45 -8
- package/dist/lend/namespaces/ActionsLendNamespace.js.map +1 -1
- package/dist/lend/namespaces/WalletLendNamespace.d.ts +43 -10
- package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +1 -1
- package/dist/lend/namespaces/WalletLendNamespace.js +67 -13
- package/dist/lend/namespaces/WalletLendNamespace.js.map +1 -1
- package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js +23 -15
- package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js.map +1 -1
- package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js +29 -11
- package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +1 -1
- package/dist/lend/providers/aave/AaveLendProvider.d.ts +82 -0
- package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +1 -0
- package/dist/lend/providers/aave/AaveLendProvider.js +346 -0
- package/dist/lend/providers/aave/AaveLendProvider.js.map +1 -0
- package/dist/lend/providers/aave/addresses.d.ts +57 -0
- package/dist/lend/providers/aave/addresses.d.ts.map +1 -0
- package/dist/lend/providers/aave/addresses.js +83 -0
- package/dist/lend/providers/aave/addresses.js.map +1 -0
- package/dist/lend/providers/aave/sdk.d.ts +57 -0
- package/dist/lend/providers/aave/sdk.d.ts.map +1 -0
- package/dist/lend/providers/aave/sdk.js +260 -0
- package/dist/lend/providers/aave/sdk.js.map +1 -0
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts +4 -3
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -1
- package/dist/lend/providers/morpho/MorphoLendProvider.js +2 -2
- package/dist/lend/providers/morpho/MorphoLendProvider.js.map +1 -1
- package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js +1 -33
- package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js.map +1 -1
- package/dist/lend/providers/morpho/__tests__/sdk.test.js +1 -0
- package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
- package/dist/lend/providers/morpho/sdk.d.ts +4 -3
- package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
- package/dist/lend/providers/morpho/sdk.js +0 -1
- package/dist/lend/providers/morpho/sdk.js.map +1 -1
- package/dist/services/ChainManager.d.ts +1 -1
- package/dist/supported/tokens.d.ts.map +1 -1
- package/dist/supported/tokens.js +18 -2
- package/dist/supported/tokens.js.map +1 -1
- package/dist/test/MockLendProvider.d.ts +5 -4
- package/dist/test/MockLendProvider.d.ts.map +1 -1
- package/dist/test/MockLendProvider.js +5 -5
- package/dist/test/MockLendProvider.js.map +1 -1
- package/dist/test/MockPrivyClient.d.ts +10 -49
- package/dist/test/MockPrivyClient.d.ts.map +1 -1
- package/dist/test/MockPrivyClient.js +13 -72
- package/dist/test/MockPrivyClient.js.map +1 -1
- package/dist/types/actions.d.ts +26 -2
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types/lend/base.d.ts +6 -19
- package/dist/types/lend/base.d.ts.map +1 -1
- package/dist/wallet/core/namespace/WalletNamespace.d.ts +13 -13
- package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
- package/dist/wallet/core/namespace/WalletNamespace.js +13 -13
- package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -1
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +64 -42
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +51 -23
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js.map +1 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +12 -3
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +3 -2
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js +14 -4
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/core/providers/hosted/types/index.d.ts +8 -2
- package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +14 -6
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +10 -6
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +36 -13
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts +19 -7
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.js +9 -7
- package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +9 -3
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +4 -4
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js +1 -1
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +24 -4
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +21 -6
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +34 -14
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +10 -4
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +9 -1
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +9 -2
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +6 -3
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +4 -3
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/types/index.d.ts +6 -1
- package/dist/wallet/node/providers/hosted/types/index.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +19 -7
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +13 -7
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +26 -28
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +12 -12
- package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.d.ts +6 -2
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.js +10 -7
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +8 -2
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +6 -2
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +3 -3
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +19 -7
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -2
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -3
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +7 -3
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +6 -2
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +3 -3
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +6 -3
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +6 -6
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +6 -2
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +3 -3
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts +6 -0
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +6 -2
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +3 -3
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +6 -2
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
- package/package.json +5 -2
- package/src/actions.test.ts +55 -96
- package/src/actions.ts +82 -26
- package/src/constants/assets.ts +8 -1
- package/src/constants/supportedChains.ts +8 -1
- package/src/index.ts +1 -2
- package/src/lend/core/LendProvider.ts +6 -5
- package/src/lend/core/__tests__/LendProvider.test.ts +19 -61
- package/src/lend/index.ts +1 -0
- package/src/lend/namespaces/ActionsLendNamespace.ts +77 -13
- package/src/lend/namespaces/WalletLendNamespace.ts +106 -20
- package/src/lend/namespaces/__tests__/ActionsLendNamespace.spec.ts +24 -18
- package/src/lend/namespaces/__tests__/WalletLendNamespace.spec.ts +49 -11
- package/src/lend/providers/aave/AaveLendProvider.ts +463 -0
- package/src/lend/providers/aave/addresses.ts +95 -0
- package/src/lend/providers/aave/sdk.ts +369 -0
- package/src/lend/providers/morpho/MorphoLendProvider.ts +5 -5
- package/src/lend/providers/morpho/__tests__/MorphoLendProvider.test.ts +5 -53
- package/src/lend/providers/morpho/__tests__/sdk.test.ts +1 -0
- package/src/lend/providers/morpho/sdk.ts +3 -4
- package/src/supported/tokens.ts +24 -2
- package/src/test/MockLendProvider.ts +9 -9
- package/src/test/MockPrivyClient.ts +24 -91
- package/src/types/actions.ts +30 -2
- package/src/types/lend/base.ts +6 -22
- package/src/wallet/core/namespace/WalletNamespace.ts +13 -13
- package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +69 -70
- package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +55 -47
- package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +15 -4
- package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts +20 -7
- package/src/wallet/core/providers/hosted/types/index.ts +8 -2
- package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +24 -9
- package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +38 -46
- package/src/wallet/core/wallets/abstract/Wallet.ts +25 -17
- package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +17 -10
- package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +4 -7
- package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +37 -11
- package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +43 -24
- package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +10 -7
- package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +17 -2
- package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +13 -4
- package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +4 -4
- package/src/wallet/node/providers/hosted/types/index.ts +9 -2
- package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +31 -11
- package/src/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +35 -40
- package/src/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +18 -14
- package/src/wallet/node/wallets/hosted/privy/utils/createSigner.ts +11 -9
- package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +16 -5
- package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +8 -4
- package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +25 -14
- package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +8 -4
- package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +7 -7
- package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +8 -4
- package/src/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +6 -7
- package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +6 -6
- package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +12 -5
- package/src/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.ts +6 -0
- package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +12 -5
- package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +12 -5
- package/dist/constants/config.d.ts +0 -10
- package/dist/constants/config.d.ts.map +0 -1
- package/dist/constants/config.js +0 -10
- package/dist/constants/config.js.map +0 -1
- package/src/constants/config.ts +0 -9
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { PrivyClient } from '@privy-io/
|
|
1
|
+
import type { AuthorizationContext, PrivyClient } from '@privy-io/node'
|
|
2
2
|
import type { Address } from 'viem'
|
|
3
|
+
import { generatePrivateKey } from 'viem/accounts'
|
|
3
4
|
|
|
4
5
|
import { getRandomAddress } from '@/test/utils.js'
|
|
5
6
|
|
|
@@ -8,102 +9,12 @@ import { getRandomAddress } from '@/test/utils.js'
|
|
|
8
9
|
* @description Provides a mock implementation of PrivyClient for testing purposes
|
|
9
10
|
*/
|
|
10
11
|
export class MockPrivyClient {
|
|
11
|
-
public walletApi = {
|
|
12
|
-
createWallet: async (params: { chainType: string }) => {
|
|
13
|
-
const walletId = `mock-wallet-${++this.walletCounter}`
|
|
14
|
-
const address = getRandomAddress()
|
|
15
|
-
|
|
16
|
-
const wallet = new MockWallet(walletId, address)
|
|
17
|
-
this.mockWallets.set(walletId, wallet)
|
|
18
|
-
|
|
19
|
-
return {
|
|
20
|
-
id: walletId,
|
|
21
|
-
address: address,
|
|
22
|
-
chainType: params.chainType,
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
|
|
26
|
-
getWallet: async (params: { id: string }) => {
|
|
27
|
-
const wallet = this.mockWallets.get(params.id)
|
|
28
|
-
if (!wallet) {
|
|
29
|
-
throw new Error(`Wallet ${params.id} not found`)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return {
|
|
33
|
-
id: wallet.id,
|
|
34
|
-
address: wallet.address,
|
|
35
|
-
chainType: 'ethereum',
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
getWallets: async (params?: { limit?: number; cursor?: string }) => {
|
|
40
|
-
const wallets = Array.from(this.mockWallets.values())
|
|
41
|
-
const limit = params?.limit || wallets.length
|
|
42
|
-
|
|
43
|
-
return {
|
|
44
|
-
data: wallets.slice(0, limit).map((wallet) => ({
|
|
45
|
-
id: wallet.id,
|
|
46
|
-
address: wallet.address,
|
|
47
|
-
chainType: 'ethereum',
|
|
48
|
-
})),
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
|
|
52
|
-
ethereum: {
|
|
53
|
-
signMessage: async (params: { walletId: string; message: string }) => {
|
|
54
|
-
const wallet = this.mockWallets.get(params.walletId)
|
|
55
|
-
if (!wallet) {
|
|
56
|
-
throw new Error(`Wallet ${params.walletId} not found`)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Mock signature - deterministic based on message
|
|
60
|
-
const mockSig = `0x${'a'.repeat(128)}${params.message.length.toString(16).padStart(2, '0')}`
|
|
61
|
-
return { signature: mockSig }
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
secp256k1Sign: async (params: { walletId: string; hash: string }) => {
|
|
65
|
-
const wallet = this.mockWallets.get(params.walletId)
|
|
66
|
-
if (!wallet) {
|
|
67
|
-
throw new Error(`Wallet ${params.walletId} not found`)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Mock signature - deterministic based on hash
|
|
71
|
-
const mockSig = `0x${'b'.repeat(128)}${params.hash.slice(-2)}`
|
|
72
|
-
return { signature: mockSig }
|
|
73
|
-
},
|
|
74
|
-
|
|
75
|
-
signTransaction: async (params: {
|
|
76
|
-
walletId: string
|
|
77
|
-
transaction: unknown
|
|
78
|
-
}) => {
|
|
79
|
-
const wallet = this.mockWallets.get(params.walletId)
|
|
80
|
-
if (!wallet) {
|
|
81
|
-
throw new Error(`Wallet ${params.walletId} not found`)
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// Mock signed transaction
|
|
85
|
-
const mockSignedTx = `0x${'c'.repeat(200)}`
|
|
86
|
-
return { signedTransaction: mockSignedTx }
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
private mockWallets = new Map<string, MockWallet>()
|
|
92
|
-
private walletCounter = 0
|
|
93
|
-
|
|
94
12
|
constructor(
|
|
95
13
|
public appId: string,
|
|
96
14
|
public appSecret: string,
|
|
97
15
|
) {}
|
|
98
16
|
}
|
|
99
17
|
|
|
100
|
-
class MockWallet {
|
|
101
|
-
constructor(
|
|
102
|
-
public id: string,
|
|
103
|
-
public address: Address,
|
|
104
|
-
) {}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
18
|
/**
|
|
108
19
|
* Create a mock Privy client cast as PrivyClient type
|
|
109
20
|
* @param appId - Mock app ID
|
|
@@ -116,3 +27,25 @@ export function createMockPrivyClient(
|
|
|
116
27
|
): PrivyClient {
|
|
117
28
|
return new MockPrivyClient(appId, appSecret) as unknown as PrivyClient
|
|
118
29
|
}
|
|
30
|
+
|
|
31
|
+
export function createMockPrivyWallet(params?: {
|
|
32
|
+
id?: string
|
|
33
|
+
address?: Address
|
|
34
|
+
}): {
|
|
35
|
+
id: string
|
|
36
|
+
address: Address
|
|
37
|
+
} {
|
|
38
|
+
const { id, address } = params ?? {}
|
|
39
|
+
return {
|
|
40
|
+
id: id ?? 'mock-wallet-1',
|
|
41
|
+
address: address ?? getRandomAddress(),
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function getMockAuthorizationContext(
|
|
46
|
+
privateKey?: string,
|
|
47
|
+
): AuthorizationContext {
|
|
48
|
+
return {
|
|
49
|
+
authorization_private_keys: [privateKey ?? generatePrivateKey()],
|
|
50
|
+
}
|
|
51
|
+
}
|
package/src/types/actions.ts
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
|
+
import type { Asset } from '@/types/asset.js'
|
|
1
2
|
import type { ChainConfig } from '@/types/chain.js'
|
|
2
|
-
import type {
|
|
3
|
+
import type { LendProviderConfig } from '@/types/lend/index.js'
|
|
3
4
|
import type { ProviderSpec } from '@/wallet/core/providers/hosted/types/index.js'
|
|
4
5
|
|
|
6
|
+
// Re-export LendProviderConfig for convenience
|
|
7
|
+
export type { LendProviderConfig }
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Lending configuration
|
|
11
|
+
* @description Configuration for all lending providers
|
|
12
|
+
*/
|
|
13
|
+
export interface LendConfig {
|
|
14
|
+
/** Morpho lending provider configuration */
|
|
15
|
+
morpho?: LendProviderConfig
|
|
16
|
+
/** Aave lending provider configuration */
|
|
17
|
+
aave?: LendProviderConfig
|
|
18
|
+
}
|
|
19
|
+
|
|
5
20
|
/**
|
|
6
21
|
* Network configuration for lending providers
|
|
7
22
|
* @description Basic network information that lending providers need
|
|
@@ -11,6 +26,17 @@ export interface LendNetworkConfig {
|
|
|
11
26
|
name: string
|
|
12
27
|
}
|
|
13
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Assets configuration
|
|
31
|
+
* @description Configuration for supported assets
|
|
32
|
+
*/
|
|
33
|
+
export interface AssetsConfig {
|
|
34
|
+
/** Allowlist of assets to support (optional - defaults to all SUPPORTED_TOKENS) */
|
|
35
|
+
allow?: Asset[]
|
|
36
|
+
/** Blocklist of assets to exclude (optional) */
|
|
37
|
+
block?: Asset[]
|
|
38
|
+
}
|
|
39
|
+
|
|
14
40
|
/**
|
|
15
41
|
* Actions SDK configuration
|
|
16
42
|
* @description Configuration object for initializing the Actions SDK
|
|
@@ -21,8 +47,10 @@ export interface ActionsConfig<
|
|
|
21
47
|
> {
|
|
22
48
|
/** Wallet configuration */
|
|
23
49
|
wallet: WalletConfig<THostedWalletProviderType, TConfigMap>
|
|
24
|
-
/** Lending
|
|
50
|
+
/** Lending providers configuration (optional) */
|
|
25
51
|
lend?: LendConfig
|
|
52
|
+
/** Assets configuration (optional) */
|
|
53
|
+
assets?: AssetsConfig
|
|
26
54
|
/** Chains to use for the SDK */
|
|
27
55
|
chains: ChainConfig[]
|
|
28
56
|
}
|
package/src/types/lend/base.ts
CHANGED
|
@@ -30,7 +30,7 @@ export type LendMarketConfigMetadata = {
|
|
|
30
30
|
/** Asset information for this market */
|
|
31
31
|
asset: Asset
|
|
32
32
|
/** Lending provider type */
|
|
33
|
-
lendProvider: 'morpho'
|
|
33
|
+
lendProvider: 'morpho' | 'aave'
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
/**
|
|
@@ -215,32 +215,16 @@ export interface LendOptions {
|
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
/**
|
|
218
|
-
*
|
|
219
|
-
* @description
|
|
218
|
+
* Individual lending provider configuration
|
|
219
|
+
* @description Configuration for a single lending provider
|
|
220
220
|
*/
|
|
221
|
-
export interface
|
|
222
|
-
/** Default slippage tolerance (basis points) */
|
|
223
|
-
defaultSlippage?: number
|
|
221
|
+
export interface LendProviderConfig {
|
|
224
222
|
/** Allowlist of markets available for lending */
|
|
225
223
|
marketAllowlist?: LendMarketConfig[]
|
|
224
|
+
/** Blocklist of markets to exclude from lending */
|
|
225
|
+
marketBlocklist?: LendMarketConfig[]
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
/**
|
|
229
|
-
* Morpho lending provider configuration
|
|
230
|
-
* @description Configuration specific to Morpho lending provider
|
|
231
|
-
*/
|
|
232
|
-
export interface MorphoLendConfig extends BaseLendConfig {
|
|
233
|
-
/** Lending provider name */
|
|
234
|
-
provider: 'morpho'
|
|
235
|
-
// Morpho-specific fields can be added here in the future
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* Lending provider configuration
|
|
240
|
-
* @description Union of all possible lending provider configurations
|
|
241
|
-
*/
|
|
242
|
-
export type LendConfig = MorphoLendConfig
|
|
243
|
-
|
|
244
228
|
/**
|
|
245
229
|
* Market position information
|
|
246
230
|
* @description Position details for a user in a lending market
|
|
@@ -55,19 +55,19 @@ export class WalletNamespace<
|
|
|
55
55
|
/**
|
|
56
56
|
* Create a new smart wallet
|
|
57
57
|
* @description Creates a smart wallet and attempts to deploy it across all supported chains.
|
|
58
|
-
* The wallet address is deterministically calculated from
|
|
59
|
-
* be included in the
|
|
58
|
+
* The wallet address is deterministically calculated from signers and nonce. The signer must
|
|
59
|
+
* be included in the signers array. Deployment failures on individual chains do not prevent
|
|
60
60
|
* wallet creation - they are reported in the result.
|
|
61
61
|
* @param params - Smart wallet creation parameters
|
|
62
|
-
* @param params.
|
|
63
|
-
* @param params.
|
|
62
|
+
* @param params.signer - Primary local account used for signing transactions
|
|
63
|
+
* @param params.signers - Optional array of additional signers for the smart wallet
|
|
64
64
|
* @param params.nonce - Optional nonce for smart wallet address generation (defaults to 0)
|
|
65
65
|
* @param params.deploymentChainIds - Optional chain IDs to deploy the wallet to.
|
|
66
66
|
* If not provided, the wallet will be deployed to all supported chains.
|
|
67
67
|
* @returns Promise resolving to deployment result containing:
|
|
68
68
|
* - `wallet`: The created SmartWallet instance
|
|
69
69
|
* - `deployments`: Array of deployment results with chainId, receipt, success flag, and error
|
|
70
|
-
* @throws Error if signer is not included in the
|
|
70
|
+
* @throws Error if signer is not included in the signers array
|
|
71
71
|
*/
|
|
72
72
|
async createSmartWallet(
|
|
73
73
|
params: CreateSmartWalletOptions,
|
|
@@ -98,7 +98,7 @@ export class WalletNamespace<
|
|
|
98
98
|
* @param params.address - Ethereum address of the hosted wallet
|
|
99
99
|
* @returns Promise resolving to the Actions wallet instance
|
|
100
100
|
*/
|
|
101
|
-
async
|
|
101
|
+
async toActionsWallet(
|
|
102
102
|
params: TToActionsMap[THostedProviderType],
|
|
103
103
|
): Promise<Wallet> {
|
|
104
104
|
return this.provider.hostedWalletToActionsWallet(params)
|
|
@@ -110,14 +110,14 @@ export class WalletNamespace<
|
|
|
110
110
|
* you already have a LocalAccount signer and want to access an existing smart wallet without
|
|
111
111
|
* going through the hosted wallet provider. Use this instead of getSmartWalletWithHostedSigner
|
|
112
112
|
* when you have direct control over the signer.
|
|
113
|
-
* @param
|
|
114
|
-
* @param
|
|
115
|
-
* @param
|
|
116
|
-
* @param
|
|
117
|
-
* @param
|
|
118
|
-
* @param
|
|
113
|
+
* @param params - Wallet retrieval parameters
|
|
114
|
+
* @param params.signer - Local account to use for signing transactions on the smart wallet
|
|
115
|
+
* @param params.signers - Optional array of additional signers for the smart wallet
|
|
116
|
+
* @param params.deploymentSigners - Optional array of signers used during wallet deployment
|
|
117
|
+
* @param params.walletAddress - Optional explicit smart wallet address (skips address calculation)
|
|
118
|
+
* @param params.nonce - Optional nonce used during smart wallet creation
|
|
119
119
|
* @returns Promise resolving to the smart wallet instance with the provided signer
|
|
120
|
-
* @throws Error if neither walletAddress nor
|
|
120
|
+
* @throws Error if neither walletAddress nor deploymentSigners provided
|
|
121
121
|
*/
|
|
122
122
|
async getSmartWallet(params: GetSmartWalletOptions) {
|
|
123
123
|
return this.provider.getSmartWallet(params)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PrivyClient } from '@privy-io/
|
|
1
|
+
import type { PrivyClient } from '@privy-io/node'
|
|
2
2
|
import { getAddress } from 'viem'
|
|
3
3
|
import { unichain } from 'viem/chains'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
@@ -7,7 +7,11 @@ import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
|
7
7
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
8
8
|
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
9
9
|
import { createMockLendProvider } from '@/test/MockLendProvider.js'
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
createMockPrivyClient,
|
|
12
|
+
createMockPrivyWallet,
|
|
13
|
+
getMockAuthorizationContext,
|
|
14
|
+
} from '@/test/MockPrivyClient.js'
|
|
11
15
|
import { getRandomAddress } from '@/test/utils.js'
|
|
12
16
|
import { WalletNamespace } from '@/wallet/core/namespace/WalletNamespace.js'
|
|
13
17
|
import { DefaultSmartWalletProvider } from '@/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js'
|
|
@@ -35,13 +39,14 @@ describe('WalletNamespace', () => {
|
|
|
35
39
|
|
|
36
40
|
describe('hostedWalletProvider', () => {
|
|
37
41
|
it('should provide access to hosted wallet provider', () => {
|
|
38
|
-
const hostedWalletProvider = new PrivyHostedWalletProvider(
|
|
39
|
-
mockPrivyClient,
|
|
40
|
-
mockChainManager,
|
|
41
|
-
|
|
42
|
+
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
43
|
+
privyClient: mockPrivyClient,
|
|
44
|
+
chainManager: mockChainManager,
|
|
45
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
46
|
+
})
|
|
42
47
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
43
48
|
mockChainManager,
|
|
44
|
-
mockLendProvider,
|
|
49
|
+
{ morpho: mockLendProvider },
|
|
45
50
|
)
|
|
46
51
|
const walletProvider = new WalletProvider(
|
|
47
52
|
hostedWalletProvider,
|
|
@@ -59,13 +64,14 @@ describe('WalletNamespace', () => {
|
|
|
59
64
|
'test-app-id',
|
|
60
65
|
'test-app-secret',
|
|
61
66
|
)
|
|
62
|
-
const hostedWalletProvider = new PrivyHostedWalletProvider(
|
|
63
|
-
mockPrivyClient,
|
|
64
|
-
|
|
65
|
-
|
|
67
|
+
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
68
|
+
privyClient: mockPrivyClient,
|
|
69
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
70
|
+
chainManager: mockChainManager,
|
|
71
|
+
})
|
|
66
72
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
67
73
|
mockChainManager,
|
|
68
|
-
mockLendProvider,
|
|
74
|
+
{ morpho: mockLendProvider },
|
|
69
75
|
)
|
|
70
76
|
const walletProvider = new WalletProvider(
|
|
71
77
|
hostedWalletProvider,
|
|
@@ -79,13 +85,14 @@ describe('WalletNamespace', () => {
|
|
|
79
85
|
|
|
80
86
|
describe('createSmartWallet', () => {
|
|
81
87
|
it('should create a smart wallet and return deployment result', async () => {
|
|
82
|
-
const hostedWalletProvider = new PrivyHostedWalletProvider(
|
|
83
|
-
mockPrivyClient,
|
|
84
|
-
|
|
85
|
-
|
|
88
|
+
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
89
|
+
privyClient: mockPrivyClient,
|
|
90
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
91
|
+
chainManager: mockChainManager,
|
|
92
|
+
})
|
|
86
93
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
87
94
|
mockChainManager,
|
|
88
|
-
mockLendProvider,
|
|
95
|
+
{ morpho: mockLendProvider },
|
|
89
96
|
)
|
|
90
97
|
const walletProvider = new WalletProvider(
|
|
91
98
|
hostedWalletProvider,
|
|
@@ -95,9 +102,7 @@ describe('WalletNamespace', () => {
|
|
|
95
102
|
const walletNamespace = new WalletNamespace(walletProvider)
|
|
96
103
|
|
|
97
104
|
// Create a hosted wallet to use as signer
|
|
98
|
-
const privyWallet =
|
|
99
|
-
chainType: 'ethereum',
|
|
100
|
-
})
|
|
105
|
+
const privyWallet = createMockPrivyWallet()
|
|
101
106
|
const hostedWallet =
|
|
102
107
|
await walletProvider.hostedWalletProvider.toActionsWallet({
|
|
103
108
|
walletId: privyWallet.id,
|
|
@@ -121,13 +126,14 @@ describe('WalletNamespace', () => {
|
|
|
121
126
|
})
|
|
122
127
|
|
|
123
128
|
it('should report deployment successes and failures', async () => {
|
|
124
|
-
const hostedWalletProvider = new PrivyHostedWalletProvider(
|
|
125
|
-
mockPrivyClient,
|
|
126
|
-
|
|
127
|
-
|
|
129
|
+
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
130
|
+
privyClient: mockPrivyClient,
|
|
131
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
132
|
+
chainManager: mockChainManager,
|
|
133
|
+
})
|
|
128
134
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
129
135
|
mockChainManager,
|
|
130
|
-
mockLendProvider,
|
|
136
|
+
{ morpho: mockLendProvider },
|
|
131
137
|
)
|
|
132
138
|
const walletProvider = new WalletProvider(
|
|
133
139
|
hostedWalletProvider,
|
|
@@ -136,9 +142,7 @@ describe('WalletNamespace', () => {
|
|
|
136
142
|
const walletNamespace = new WalletNamespace(walletProvider)
|
|
137
143
|
|
|
138
144
|
// Create a hosted wallet to use as signer
|
|
139
|
-
const privyWallet =
|
|
140
|
-
chainType: 'ethereum',
|
|
141
|
-
})
|
|
145
|
+
const privyWallet = createMockPrivyWallet()
|
|
142
146
|
const hostedWallet =
|
|
143
147
|
await walletProvider.hostedWalletProvider.toActionsWallet({
|
|
144
148
|
walletId: privyWallet.id,
|
|
@@ -206,13 +210,14 @@ describe('WalletNamespace', () => {
|
|
|
206
210
|
'test-app-id',
|
|
207
211
|
'test-app-secret',
|
|
208
212
|
)
|
|
209
|
-
const hostedWalletProvider = new PrivyHostedWalletProvider(
|
|
210
|
-
mockPrivyClient,
|
|
211
|
-
|
|
212
|
-
|
|
213
|
+
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
214
|
+
privyClient: mockPrivyClient,
|
|
215
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
216
|
+
chainManager: mockChainManager,
|
|
217
|
+
})
|
|
213
218
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
214
219
|
mockChainManager,
|
|
215
|
-
mockLendProvider,
|
|
220
|
+
{ morpho: mockLendProvider },
|
|
216
221
|
)
|
|
217
222
|
const walletProvider = new WalletProvider(
|
|
218
223
|
hostedWalletProvider,
|
|
@@ -221,9 +226,7 @@ describe('WalletNamespace', () => {
|
|
|
221
226
|
const getSmartWalletSpy = vi.spyOn(walletProvider, 'getSmartWallet')
|
|
222
227
|
const walletNamespace = new WalletNamespace(walletProvider)
|
|
223
228
|
|
|
224
|
-
const privyWallet =
|
|
225
|
-
chainType: 'ethereum',
|
|
226
|
-
})
|
|
229
|
+
const privyWallet = createMockPrivyWallet()
|
|
227
230
|
const hostedWallet =
|
|
228
231
|
await walletProvider.hostedWalletProvider.toActionsWallet({
|
|
229
232
|
walletId: privyWallet.id,
|
|
@@ -249,13 +252,14 @@ describe('WalletNamespace', () => {
|
|
|
249
252
|
'test-app-id',
|
|
250
253
|
'test-app-secret',
|
|
251
254
|
)
|
|
252
|
-
const hostedWalletProvider = new PrivyHostedWalletProvider(
|
|
253
|
-
mockPrivyClient,
|
|
254
|
-
|
|
255
|
-
|
|
255
|
+
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
256
|
+
privyClient: mockPrivyClient,
|
|
257
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
258
|
+
chainManager: mockChainManager,
|
|
259
|
+
})
|
|
256
260
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
257
261
|
mockChainManager,
|
|
258
|
-
mockLendProvider,
|
|
262
|
+
{ morpho: mockLendProvider },
|
|
259
263
|
)
|
|
260
264
|
const walletProvider = new WalletProvider(
|
|
261
265
|
hostedWalletProvider,
|
|
@@ -263,9 +267,7 @@ describe('WalletNamespace', () => {
|
|
|
263
267
|
)
|
|
264
268
|
const walletNamespace = new WalletNamespace(walletProvider)
|
|
265
269
|
|
|
266
|
-
const privyWallet =
|
|
267
|
-
chainType: 'ethereum',
|
|
268
|
-
})
|
|
270
|
+
const privyWallet = createMockPrivyWallet()
|
|
269
271
|
const hostedWallet =
|
|
270
272
|
await walletProvider.hostedWalletProvider.toActionsWallet({
|
|
271
273
|
walletId: privyWallet.id,
|
|
@@ -284,15 +286,16 @@ describe('WalletNamespace', () => {
|
|
|
284
286
|
})
|
|
285
287
|
})
|
|
286
288
|
|
|
287
|
-
describe('
|
|
289
|
+
describe('toActionsWallet', () => {
|
|
288
290
|
it('should convert a hosted wallet to an Actions wallet', async () => {
|
|
289
|
-
const hostedWalletProvider = new PrivyHostedWalletProvider(
|
|
290
|
-
mockPrivyClient,
|
|
291
|
-
|
|
292
|
-
|
|
291
|
+
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
292
|
+
privyClient: mockPrivyClient,
|
|
293
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
294
|
+
chainManager: mockChainManager,
|
|
295
|
+
})
|
|
293
296
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
294
297
|
mockChainManager,
|
|
295
|
-
mockLendProvider,
|
|
298
|
+
{ morpho: mockLendProvider },
|
|
296
299
|
)
|
|
297
300
|
const walletProvider = new WalletProvider(
|
|
298
301
|
hostedWalletProvider,
|
|
@@ -300,9 +303,7 @@ describe('WalletNamespace', () => {
|
|
|
300
303
|
)
|
|
301
304
|
const walletNamespace = new WalletNamespace(walletProvider)
|
|
302
305
|
|
|
303
|
-
const privyWallet =
|
|
304
|
-
chainType: 'ethereum',
|
|
305
|
-
})
|
|
306
|
+
const privyWallet = createMockPrivyWallet()
|
|
306
307
|
const hostedWallet =
|
|
307
308
|
await walletProvider.hostedWalletProvider.toActionsWallet({
|
|
308
309
|
walletId: privyWallet.id,
|
|
@@ -313,7 +314,7 @@ describe('WalletNamespace', () => {
|
|
|
313
314
|
'toActionsWallet',
|
|
314
315
|
)
|
|
315
316
|
|
|
316
|
-
const actionsWallet = await walletNamespace.
|
|
317
|
+
const actionsWallet = await walletNamespace.toActionsWallet({
|
|
317
318
|
walletId: privyWallet.id,
|
|
318
319
|
address: privyWallet.address,
|
|
319
320
|
})
|
|
@@ -330,13 +331,14 @@ describe('WalletNamespace', () => {
|
|
|
330
331
|
|
|
331
332
|
describe('createSigner', () => {
|
|
332
333
|
it('should delegate to hosted wallet provider createSigner', async () => {
|
|
333
|
-
const hostedWalletProvider = new PrivyHostedWalletProvider(
|
|
334
|
-
mockPrivyClient,
|
|
335
|
-
|
|
336
|
-
|
|
334
|
+
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
335
|
+
privyClient: mockPrivyClient,
|
|
336
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
337
|
+
chainManager: mockChainManager,
|
|
338
|
+
})
|
|
337
339
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
338
340
|
mockChainManager,
|
|
339
|
-
mockLendProvider,
|
|
341
|
+
{ morpho: mockLendProvider },
|
|
340
342
|
)
|
|
341
343
|
const walletProvider = new WalletProvider(
|
|
342
344
|
hostedWalletProvider,
|
|
@@ -345,9 +347,7 @@ describe('WalletNamespace', () => {
|
|
|
345
347
|
const createSignerSpy = vi.spyOn(walletProvider, 'createSigner')
|
|
346
348
|
const walletNamespace = new WalletNamespace(walletProvider)
|
|
347
349
|
|
|
348
|
-
const privyWallet =
|
|
349
|
-
chainType: 'ethereum',
|
|
350
|
-
})
|
|
350
|
+
const privyWallet = createMockPrivyWallet()
|
|
351
351
|
const params = {
|
|
352
352
|
walletId: privyWallet.id,
|
|
353
353
|
address: getAddress(privyWallet.address),
|
|
@@ -361,13 +361,14 @@ describe('WalletNamespace', () => {
|
|
|
361
361
|
})
|
|
362
362
|
|
|
363
363
|
it('should return a LocalAccount that can be used as a smart wallet signer', async () => {
|
|
364
|
-
const hostedWalletProvider = new PrivyHostedWalletProvider(
|
|
365
|
-
mockPrivyClient,
|
|
366
|
-
|
|
367
|
-
|
|
364
|
+
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
365
|
+
privyClient: mockPrivyClient,
|
|
366
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
367
|
+
chainManager: mockChainManager,
|
|
368
|
+
})
|
|
368
369
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
369
370
|
mockChainManager,
|
|
370
|
-
mockLendProvider,
|
|
371
|
+
{ morpho: mockLendProvider },
|
|
371
372
|
)
|
|
372
373
|
const walletProvider = new WalletProvider(
|
|
373
374
|
hostedWalletProvider,
|
|
@@ -375,9 +376,7 @@ describe('WalletNamespace', () => {
|
|
|
375
376
|
)
|
|
376
377
|
const walletNamespace = new WalletNamespace(walletProvider)
|
|
377
378
|
|
|
378
|
-
const privyWallet =
|
|
379
|
-
chainType: 'ethereum',
|
|
380
|
-
})
|
|
379
|
+
const privyWallet = createMockPrivyWallet()
|
|
381
380
|
const signer = await walletNamespace.createSigner({
|
|
382
381
|
walletId: privyWallet.id,
|
|
383
382
|
address: getAddress(privyWallet.address),
|