@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
package/src/actions.test.ts
CHANGED
|
@@ -3,8 +3,12 @@ import { unichain } from 'viem/chains'
|
|
|
3
3
|
import { describe, expect, it } from 'vitest'
|
|
4
4
|
|
|
5
5
|
import { Actions } from '@/actions.js'
|
|
6
|
-
import {
|
|
7
|
-
|
|
6
|
+
import {
|
|
7
|
+
createMockPrivyClient,
|
|
8
|
+
getMockAuthorizationContext,
|
|
9
|
+
} from '@/test/MockPrivyClient.js'
|
|
10
|
+
import type { LendProviderConfig } from '@/types/actions.js'
|
|
11
|
+
import type { LendMarketConfig } from '@/types/lend/index.js'
|
|
8
12
|
import { externalTest } from '@/utils/test.js'
|
|
9
13
|
import { HostedWalletProviderRegistry } from '@/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js'
|
|
10
14
|
import type { HostedWalletProvidersSchema } from '@/wallet/core/providers/hosted/types/index.js'
|
|
@@ -36,10 +40,11 @@ describe('Actions SDK', () => {
|
|
|
36
40
|
return Boolean((options as NodeOptionsMap['privy'])?.privyClient)
|
|
37
41
|
},
|
|
38
42
|
create({ chainManager }, options) {
|
|
39
|
-
return new PrivyHostedWalletProvider(
|
|
40
|
-
options.privyClient,
|
|
43
|
+
return new PrivyHostedWalletProvider({
|
|
44
|
+
privyClient: options.privyClient,
|
|
41
45
|
chainManager,
|
|
42
|
-
|
|
46
|
+
authorizationContext: options.authorizationContext,
|
|
47
|
+
})
|
|
43
48
|
},
|
|
44
49
|
})
|
|
45
50
|
}
|
|
@@ -47,7 +52,7 @@ describe('Actions SDK', () => {
|
|
|
47
52
|
|
|
48
53
|
describe('Configuration', () => {
|
|
49
54
|
describe('Morpho Provider Configuration', () => {
|
|
50
|
-
it('should create Morpho provider when
|
|
55
|
+
it('should create Morpho provider when morpho config is provided', () => {
|
|
51
56
|
const actions = new Actions<
|
|
52
57
|
TestWalletProvider['providerTypes'],
|
|
53
58
|
TestWalletProvider,
|
|
@@ -56,7 +61,7 @@ describe('Actions SDK', () => {
|
|
|
56
61
|
{
|
|
57
62
|
chains: [{ chainId: unichain.id }],
|
|
58
63
|
lend: {
|
|
59
|
-
|
|
64
|
+
morpho: {},
|
|
60
65
|
},
|
|
61
66
|
wallet: {
|
|
62
67
|
hostedWalletConfig: {
|
|
@@ -67,6 +72,7 @@ describe('Actions SDK', () => {
|
|
|
67
72
|
'test-id',
|
|
68
73
|
'test-secret',
|
|
69
74
|
),
|
|
75
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
70
76
|
},
|
|
71
77
|
},
|
|
72
78
|
},
|
|
@@ -85,8 +91,7 @@ describe('Actions SDK', () => {
|
|
|
85
91
|
expect(actions.lend.supportedChainIds()).toContain(130) // Unichain
|
|
86
92
|
})
|
|
87
93
|
|
|
88
|
-
it('should create Morpho provider with
|
|
89
|
-
const customSlippage = 150
|
|
94
|
+
it('should create Morpho provider with empty config', () => {
|
|
90
95
|
const actions = new Actions<
|
|
91
96
|
TestWalletProvider['providerTypes'],
|
|
92
97
|
TestWalletProvider,
|
|
@@ -95,8 +100,7 @@ describe('Actions SDK', () => {
|
|
|
95
100
|
{
|
|
96
101
|
chains: [{ chainId: unichain.id }],
|
|
97
102
|
lend: {
|
|
98
|
-
|
|
99
|
-
defaultSlippage: customSlippage,
|
|
103
|
+
morpho: {},
|
|
100
104
|
},
|
|
101
105
|
wallet: {
|
|
102
106
|
hostedWalletConfig: {
|
|
@@ -107,6 +111,7 @@ describe('Actions SDK', () => {
|
|
|
107
111
|
'test-id',
|
|
108
112
|
'test-secret',
|
|
109
113
|
),
|
|
114
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
110
115
|
},
|
|
111
116
|
},
|
|
112
117
|
},
|
|
@@ -122,8 +127,7 @@ describe('Actions SDK', () => {
|
|
|
122
127
|
)
|
|
123
128
|
|
|
124
129
|
expect(actions.lend).toBeDefined()
|
|
125
|
-
expect(actions.lend.
|
|
126
|
-
expect(actions.lend.config.provider).toBe('morpho')
|
|
130
|
+
expect(actions.lend.supportedChainIds()).toContain(130) // Unichain
|
|
127
131
|
})
|
|
128
132
|
|
|
129
133
|
it('should create Morpho provider with market allowlist', () => {
|
|
@@ -154,8 +158,9 @@ describe('Actions SDK', () => {
|
|
|
154
158
|
{
|
|
155
159
|
chains: [{ chainId: unichain.id }],
|
|
156
160
|
lend: {
|
|
157
|
-
|
|
158
|
-
|
|
161
|
+
morpho: {
|
|
162
|
+
marketAllowlist: [mockMarket],
|
|
163
|
+
},
|
|
159
164
|
},
|
|
160
165
|
wallet: {
|
|
161
166
|
hostedWalletConfig: {
|
|
@@ -166,6 +171,7 @@ describe('Actions SDK', () => {
|
|
|
166
171
|
'test-id',
|
|
167
172
|
'test-secret',
|
|
168
173
|
),
|
|
174
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
169
175
|
},
|
|
170
176
|
},
|
|
171
177
|
},
|
|
@@ -181,11 +187,9 @@ describe('Actions SDK', () => {
|
|
|
181
187
|
)
|
|
182
188
|
|
|
183
189
|
expect(actions.lend).toBeDefined()
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
expect(
|
|
187
|
-
expect(allowlist![0].address).toBe(mockMarket.address)
|
|
188
|
-
expect(allowlist![0].name).toBe(mockMarket.name)
|
|
190
|
+
// Verify Morpho provider is created with market allowlist
|
|
191
|
+
const morphoProvider = actions['lendProviders']['morpho']
|
|
192
|
+
expect(morphoProvider).toBeDefined()
|
|
189
193
|
})
|
|
190
194
|
|
|
191
195
|
it('should create Morpho provider with multiple markets in allowlist', () => {
|
|
@@ -236,8 +240,9 @@ describe('Actions SDK', () => {
|
|
|
236
240
|
{
|
|
237
241
|
chains: [{ chainId: unichain.id }],
|
|
238
242
|
lend: {
|
|
239
|
-
|
|
240
|
-
|
|
243
|
+
morpho: {
|
|
244
|
+
marketAllowlist: mockMarkets,
|
|
245
|
+
},
|
|
241
246
|
},
|
|
242
247
|
wallet: {
|
|
243
248
|
hostedWalletConfig: {
|
|
@@ -248,6 +253,7 @@ describe('Actions SDK', () => {
|
|
|
248
253
|
'test-id',
|
|
249
254
|
'test-secret',
|
|
250
255
|
),
|
|
256
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
251
257
|
},
|
|
252
258
|
},
|
|
253
259
|
},
|
|
@@ -263,48 +269,9 @@ describe('Actions SDK', () => {
|
|
|
263
269
|
)
|
|
264
270
|
|
|
265
271
|
expect(actions.lend).toBeDefined()
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
expect(
|
|
269
|
-
expect(allowlist![0].name).toBe('Gauntlet USDC')
|
|
270
|
-
expect(allowlist![1].name).toBe('Test WETH Market')
|
|
271
|
-
})
|
|
272
|
-
|
|
273
|
-
it('should throw error for unsupported lending provider', () => {
|
|
274
|
-
expect(() => {
|
|
275
|
-
new Actions<
|
|
276
|
-
TestWalletProvider['providerTypes'],
|
|
277
|
-
TestWalletProvider,
|
|
278
|
-
'privy'
|
|
279
|
-
>(
|
|
280
|
-
{
|
|
281
|
-
chains: [{ chainId: unichain.id }],
|
|
282
|
-
lend: {
|
|
283
|
-
provider: 'invalid' as any,
|
|
284
|
-
},
|
|
285
|
-
wallet: {
|
|
286
|
-
hostedWalletConfig: {
|
|
287
|
-
provider: {
|
|
288
|
-
type: 'privy',
|
|
289
|
-
config: {
|
|
290
|
-
privyClient: createMockPrivyClient(
|
|
291
|
-
'test-id',
|
|
292
|
-
'test-secret',
|
|
293
|
-
),
|
|
294
|
-
},
|
|
295
|
-
},
|
|
296
|
-
},
|
|
297
|
-
smartWalletConfig: {
|
|
298
|
-
provider: { type: 'default' },
|
|
299
|
-
},
|
|
300
|
-
},
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
hostedWalletProviderRegistry:
|
|
304
|
-
new TestHostedWalletProviderRegistry(),
|
|
305
|
-
},
|
|
306
|
-
)
|
|
307
|
-
}).toThrow('Unsupported lending provider: invalid')
|
|
272
|
+
// Verify Morpho provider is created with multiple markets
|
|
273
|
+
const morphoProvider = actions['lendProviders']['morpho']
|
|
274
|
+
expect(morphoProvider).toBeDefined()
|
|
308
275
|
})
|
|
309
276
|
|
|
310
277
|
it('should work without lend configuration', () => {
|
|
@@ -324,6 +291,7 @@ describe('Actions SDK', () => {
|
|
|
324
291
|
'test-id',
|
|
325
292
|
'test-secret',
|
|
326
293
|
),
|
|
294
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
327
295
|
},
|
|
328
296
|
},
|
|
329
297
|
},
|
|
@@ -338,16 +306,14 @@ describe('Actions SDK', () => {
|
|
|
338
306
|
},
|
|
339
307
|
)
|
|
340
308
|
|
|
341
|
-
expect(actions['
|
|
309
|
+
expect(actions['lendProviders']).toEqual({})
|
|
342
310
|
expect(() => actions.lend).toThrow('Lend provider not configured')
|
|
343
311
|
})
|
|
344
312
|
})
|
|
345
313
|
|
|
346
314
|
describe('Lending Configuration Types', () => {
|
|
347
315
|
it('should accept valid MorphoLendConfig', () => {
|
|
348
|
-
const
|
|
349
|
-
provider: 'morpho',
|
|
350
|
-
defaultSlippage: 100,
|
|
316
|
+
const morphoConfig: LendProviderConfig = {
|
|
351
317
|
marketAllowlist: [],
|
|
352
318
|
}
|
|
353
319
|
|
|
@@ -359,7 +325,7 @@ describe('Actions SDK', () => {
|
|
|
359
325
|
>(
|
|
360
326
|
{
|
|
361
327
|
chains: [{ chainId: unichain.id }],
|
|
362
|
-
lend:
|
|
328
|
+
lend: { morpho: morphoConfig },
|
|
363
329
|
wallet: {
|
|
364
330
|
hostedWalletConfig: {
|
|
365
331
|
provider: {
|
|
@@ -369,6 +335,7 @@ describe('Actions SDK', () => {
|
|
|
369
335
|
'test-id',
|
|
370
336
|
'test-secret',
|
|
371
337
|
),
|
|
338
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
372
339
|
},
|
|
373
340
|
},
|
|
374
341
|
},
|
|
@@ -386,9 +353,7 @@ describe('Actions SDK', () => {
|
|
|
386
353
|
})
|
|
387
354
|
|
|
388
355
|
it('should accept minimal MorphoLendConfig', () => {
|
|
389
|
-
const
|
|
390
|
-
provider: 'morpho',
|
|
391
|
-
}
|
|
356
|
+
const morphoConfig: LendProviderConfig = {}
|
|
392
357
|
|
|
393
358
|
expect(() => {
|
|
394
359
|
new Actions<
|
|
@@ -398,7 +363,7 @@ describe('Actions SDK', () => {
|
|
|
398
363
|
>(
|
|
399
364
|
{
|
|
400
365
|
chains: [{ chainId: unichain.id }],
|
|
401
|
-
lend:
|
|
366
|
+
lend: { morpho: morphoConfig },
|
|
402
367
|
wallet: {
|
|
403
368
|
hostedWalletConfig: {
|
|
404
369
|
provider: {
|
|
@@ -408,6 +373,7 @@ describe('Actions SDK', () => {
|
|
|
408
373
|
'test-id',
|
|
409
374
|
'test-secret',
|
|
410
375
|
),
|
|
376
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
411
377
|
},
|
|
412
378
|
},
|
|
413
379
|
},
|
|
@@ -438,7 +404,7 @@ describe('Actions SDK', () => {
|
|
|
438
404
|
{ chainId: 84532 }, // Base Sepolia
|
|
439
405
|
],
|
|
440
406
|
lend: {
|
|
441
|
-
|
|
407
|
+
morpho: {},
|
|
442
408
|
},
|
|
443
409
|
wallet: {
|
|
444
410
|
hostedWalletConfig: {
|
|
@@ -449,6 +415,7 @@ describe('Actions SDK', () => {
|
|
|
449
415
|
'test-id',
|
|
450
416
|
'test-secret',
|
|
451
417
|
),
|
|
418
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
452
419
|
},
|
|
453
420
|
},
|
|
454
421
|
},
|
|
@@ -480,8 +447,7 @@ describe('Actions SDK', () => {
|
|
|
480
447
|
{
|
|
481
448
|
chains: [{ chainId: unichain.id }],
|
|
482
449
|
lend: {
|
|
483
|
-
|
|
484
|
-
defaultSlippage: 50,
|
|
450
|
+
morpho: {},
|
|
485
451
|
},
|
|
486
452
|
wallet: {
|
|
487
453
|
hostedWalletConfig: {
|
|
@@ -492,6 +458,7 @@ describe('Actions SDK', () => {
|
|
|
492
458
|
'test-app-id',
|
|
493
459
|
'test-app-secret',
|
|
494
460
|
),
|
|
461
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
495
462
|
},
|
|
496
463
|
},
|
|
497
464
|
},
|
|
@@ -532,10 +499,7 @@ describe('Actions SDK', () => {
|
|
|
532
499
|
chainId: unichain.id,
|
|
533
500
|
},
|
|
534
501
|
],
|
|
535
|
-
lend: {
|
|
536
|
-
provider: 'morpho',
|
|
537
|
-
defaultSlippage: 50,
|
|
538
|
-
},
|
|
502
|
+
lend: {},
|
|
539
503
|
wallet: {
|
|
540
504
|
hostedWalletConfig: {
|
|
541
505
|
provider: {
|
|
@@ -545,6 +509,7 @@ describe('Actions SDK', () => {
|
|
|
545
509
|
'test-app-id',
|
|
546
510
|
'test-app-secret',
|
|
547
511
|
),
|
|
512
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
548
513
|
},
|
|
549
514
|
},
|
|
550
515
|
},
|
|
@@ -586,10 +551,7 @@ describe('Actions SDK', () => {
|
|
|
586
551
|
chainId: unichain.id,
|
|
587
552
|
},
|
|
588
553
|
],
|
|
589
|
-
lend: {
|
|
590
|
-
provider: 'morpho',
|
|
591
|
-
defaultSlippage: 50,
|
|
592
|
-
},
|
|
554
|
+
lend: {},
|
|
593
555
|
wallet: {
|
|
594
556
|
hostedWalletConfig: {
|
|
595
557
|
provider: {
|
|
@@ -599,6 +561,7 @@ describe('Actions SDK', () => {
|
|
|
599
561
|
'test-app-id',
|
|
600
562
|
'test-app-secret',
|
|
601
563
|
),
|
|
564
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
602
565
|
},
|
|
603
566
|
},
|
|
604
567
|
},
|
|
@@ -673,10 +636,7 @@ describe('Actions SDK', () => {
|
|
|
673
636
|
chainId: unichain.id,
|
|
674
637
|
},
|
|
675
638
|
],
|
|
676
|
-
lend: {
|
|
677
|
-
provider: 'morpho',
|
|
678
|
-
defaultSlippage: 50,
|
|
679
|
-
},
|
|
639
|
+
lend: {},
|
|
680
640
|
wallet: {
|
|
681
641
|
hostedWalletConfig: {
|
|
682
642
|
provider: {
|
|
@@ -686,6 +646,7 @@ describe('Actions SDK', () => {
|
|
|
686
646
|
'test-app-id',
|
|
687
647
|
'test-app-secret',
|
|
688
648
|
),
|
|
649
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
689
650
|
},
|
|
690
651
|
},
|
|
691
652
|
},
|
|
@@ -735,10 +696,7 @@ describe('Actions SDK', () => {
|
|
|
735
696
|
chainId: unichain.id,
|
|
736
697
|
},
|
|
737
698
|
],
|
|
738
|
-
lend: {
|
|
739
|
-
provider: 'morpho',
|
|
740
|
-
defaultSlippage: 50,
|
|
741
|
-
},
|
|
699
|
+
lend: {},
|
|
742
700
|
wallet: {
|
|
743
701
|
hostedWalletConfig: {
|
|
744
702
|
provider: {
|
|
@@ -748,6 +706,7 @@ describe('Actions SDK', () => {
|
|
|
748
706
|
'test-app-id',
|
|
749
707
|
'test-app-secret',
|
|
750
708
|
),
|
|
709
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
751
710
|
},
|
|
752
711
|
},
|
|
753
712
|
},
|
|
@@ -789,8 +748,7 @@ describe('Actions SDK', () => {
|
|
|
789
748
|
},
|
|
790
749
|
],
|
|
791
750
|
lend: {
|
|
792
|
-
|
|
793
|
-
defaultSlippage: 50,
|
|
751
|
+
morpho: {},
|
|
794
752
|
},
|
|
795
753
|
wallet: {
|
|
796
754
|
hostedWalletConfig: {
|
|
@@ -801,6 +759,7 @@ describe('Actions SDK', () => {
|
|
|
801
759
|
'test-app-id',
|
|
802
760
|
'test-app-secret',
|
|
803
761
|
),
|
|
762
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
804
763
|
},
|
|
805
764
|
},
|
|
806
765
|
},
|
|
@@ -840,8 +799,7 @@ describe('Actions SDK', () => {
|
|
|
840
799
|
},
|
|
841
800
|
],
|
|
842
801
|
lend: {
|
|
843
|
-
|
|
844
|
-
defaultSlippage: 50,
|
|
802
|
+
morpho: {},
|
|
845
803
|
},
|
|
846
804
|
wallet: {
|
|
847
805
|
hostedWalletConfig: {
|
|
@@ -852,6 +810,7 @@ describe('Actions SDK', () => {
|
|
|
852
810
|
'test-app-id',
|
|
853
811
|
'test-app-secret',
|
|
854
812
|
),
|
|
813
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
855
814
|
},
|
|
856
815
|
},
|
|
857
816
|
},
|
package/src/actions.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { MorphoLendProvider } from '@/lend/index.js'
|
|
1
|
+
import type { LendProvider } from '@/lend/index.js'
|
|
2
|
+
import { AaveLendProvider, MorphoLendProvider } from '@/lend/index.js'
|
|
3
3
|
import { ActionsLendNamespace } from '@/lend/namespaces/ActionsLendNamespace.js'
|
|
4
4
|
import { ChainManager } from '@/services/ChainManager.js'
|
|
5
|
-
import
|
|
6
|
-
import type {
|
|
5
|
+
import { SUPPORTED_TOKENS } from '@/supported/tokens.js'
|
|
6
|
+
import type {
|
|
7
|
+
ActionsConfig,
|
|
8
|
+
AssetsConfig,
|
|
9
|
+
LendProviderConfig,
|
|
10
|
+
} from '@/types/actions.js'
|
|
11
|
+
import type { Asset } from '@/types/asset.js'
|
|
7
12
|
import { WalletNamespace } from '@/wallet/core/namespace/WalletNamespace.js'
|
|
8
13
|
import type { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
|
|
9
14
|
import type { HostedWalletProviderRegistry } from '@/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js'
|
|
@@ -38,8 +43,12 @@ export class Actions<
|
|
|
38
43
|
SmartWalletProvider
|
|
39
44
|
>
|
|
40
45
|
private chainManager: ChainManager
|
|
41
|
-
private _lend?: ActionsLendNamespace
|
|
42
|
-
private
|
|
46
|
+
private _lend?: ActionsLendNamespace
|
|
47
|
+
private _lendProviders: {
|
|
48
|
+
morpho?: LendProvider<LendProviderConfig>
|
|
49
|
+
aave?: LendProvider<LendProviderConfig>
|
|
50
|
+
} = {}
|
|
51
|
+
private _assetsConfig?: AssetsConfig
|
|
43
52
|
private hostedWalletProvider!: THostedWalletProvidersSchema['providerInstances'][THostedWalletProviderType]
|
|
44
53
|
private smartWalletProvider!: SmartWalletProvider
|
|
45
54
|
private hostedWalletProviderRegistry: HostedWalletProviderRegistry<
|
|
@@ -62,24 +71,27 @@ export class Actions<
|
|
|
62
71
|
) {
|
|
63
72
|
this.chainManager = new ChainManager(config.chains)
|
|
64
73
|
this.hostedWalletProviderRegistry = deps.hostedWalletProviderRegistry
|
|
74
|
+
this._assetsConfig = config.assets
|
|
65
75
|
|
|
66
|
-
// Create lending
|
|
76
|
+
// Create lending providers if configured
|
|
67
77
|
if (config.lend) {
|
|
68
|
-
if (config.lend.
|
|
69
|
-
this.
|
|
70
|
-
|
|
71
|
-
...config.lend,
|
|
72
|
-
defaultSlippage:
|
|
73
|
-
config.lend.defaultSlippage ??
|
|
74
|
-
DEFAULT_ACTIONS_CONFIG.lend.defaultSlippage,
|
|
75
|
-
},
|
|
78
|
+
if (config.lend.morpho) {
|
|
79
|
+
this._lendProviders.morpho = new MorphoLendProvider(
|
|
80
|
+
config.lend.morpho,
|
|
76
81
|
this.chainManager,
|
|
77
82
|
)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (config.lend.aave) {
|
|
86
|
+
this._lendProviders.aave = new AaveLendProvider(
|
|
87
|
+
config.lend.aave,
|
|
88
|
+
this.chainManager,
|
|
89
|
+
)
|
|
90
|
+
}
|
|
78
91
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
throw new Error(`Unsupported lending provider: ${config.lend.provider}`)
|
|
92
|
+
// Create lend namespace if any providers are configured
|
|
93
|
+
if (this._lendProviders.morpho || this._lendProviders.aave) {
|
|
94
|
+
this._lend = new ActionsLendNamespace(this._lendProviders)
|
|
83
95
|
}
|
|
84
96
|
}
|
|
85
97
|
|
|
@@ -93,7 +105,7 @@ export class Actions<
|
|
|
93
105
|
* @returns ActionsLendNamespace for lending operations
|
|
94
106
|
* @throws Error if lend provider not configured
|
|
95
107
|
*/
|
|
96
|
-
get lend(): ActionsLendNamespace
|
|
108
|
+
get lend(): ActionsLendNamespace {
|
|
97
109
|
if (!this._lend) {
|
|
98
110
|
throw new Error(
|
|
99
111
|
'Lend provider not configured. Please add lend configuration to ActionsConfig.',
|
|
@@ -103,11 +115,50 @@ export class Actions<
|
|
|
103
115
|
}
|
|
104
116
|
|
|
105
117
|
/**
|
|
106
|
-
* Get the lend provider
|
|
107
|
-
* @returns
|
|
118
|
+
* Get the lend provider instances
|
|
119
|
+
* @returns Object containing configured lend providers
|
|
120
|
+
*/
|
|
121
|
+
get lendProviders(): {
|
|
122
|
+
morpho?: LendProvider<LendProviderConfig>
|
|
123
|
+
aave?: LendProvider<LendProviderConfig>
|
|
124
|
+
} {
|
|
125
|
+
return this._lendProviders
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Get the list of supported assets based on configuration
|
|
130
|
+
* @description Returns filtered assets based on allow/block lists in assets config.
|
|
131
|
+
* If no config provided, returns all SUPPORTED_TOKENS.
|
|
132
|
+
* @returns Array of supported assets
|
|
108
133
|
*/
|
|
109
|
-
|
|
110
|
-
return
|
|
134
|
+
public getSupportedAssets(): Asset[] {
|
|
135
|
+
// If no assets config, return all supported tokens
|
|
136
|
+
if (!this._assetsConfig) {
|
|
137
|
+
return SUPPORTED_TOKENS
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// If allow list provided, return only those
|
|
141
|
+
if (this._assetsConfig.allow && this._assetsConfig.allow.length > 0) {
|
|
142
|
+
return this._assetsConfig.allow
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// If block list provided, filter out blocked assets
|
|
146
|
+
if (this._assetsConfig.block && this._assetsConfig.block.length > 0) {
|
|
147
|
+
const blockedAddresses = new Set(
|
|
148
|
+
this._assetsConfig.block.flatMap((asset) =>
|
|
149
|
+
Object.values(asset.address).map((addr) => addr.toLowerCase()),
|
|
150
|
+
),
|
|
151
|
+
)
|
|
152
|
+
return SUPPORTED_TOKENS.filter((token) => {
|
|
153
|
+
const tokenAddresses = Object.values(token.address).map((addr) =>
|
|
154
|
+
addr.toLowerCase(),
|
|
155
|
+
)
|
|
156
|
+
return !tokenAddresses.some((addr) => blockedAddresses.has(addr))
|
|
157
|
+
})
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Default to all supported tokens
|
|
161
|
+
return SUPPORTED_TOKENS
|
|
111
162
|
}
|
|
112
163
|
|
|
113
164
|
/**
|
|
@@ -141,7 +192,11 @@ export class Actions<
|
|
|
141
192
|
)
|
|
142
193
|
}
|
|
143
194
|
this.hostedWalletProvider = factory.create(
|
|
144
|
-
{
|
|
195
|
+
{
|
|
196
|
+
chainManager: this.chainManager,
|
|
197
|
+
lendProviders: this._lendProviders,
|
|
198
|
+
supportedAssets: this.getSupportedAssets(),
|
|
199
|
+
},
|
|
145
200
|
options,
|
|
146
201
|
)
|
|
147
202
|
|
|
@@ -151,7 +206,8 @@ export class Actions<
|
|
|
151
206
|
) {
|
|
152
207
|
this.smartWalletProvider = new DefaultSmartWalletProvider(
|
|
153
208
|
this.chainManager,
|
|
154
|
-
this.
|
|
209
|
+
this._lendProviders,
|
|
210
|
+
this.getSupportedAssets(),
|
|
155
211
|
config.smartWalletConfig.provider.attributionSuffix,
|
|
156
212
|
)
|
|
157
213
|
} else {
|
package/src/constants/assets.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { Address } from 'viem'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
base,
|
|
4
|
+
baseSepolia,
|
|
5
|
+
mainnet,
|
|
6
|
+
optimismSepolia,
|
|
7
|
+
unichain,
|
|
8
|
+
} from 'viem/chains'
|
|
3
9
|
|
|
4
10
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
5
11
|
import type { Asset } from '@/types/asset.js'
|
|
@@ -10,6 +16,7 @@ export const ETH: Asset = {
|
|
|
10
16
|
[unichain.id]: '0x0000000000000000000000000000000000000000',
|
|
11
17
|
[base.id]: '0x0000000000000000000000000000000000000000',
|
|
12
18
|
[baseSepolia.id]: '0x0000000000000000000000000000000000000000',
|
|
19
|
+
[optimismSepolia.id]: '0x0000000000000000000000000000000000000000',
|
|
13
20
|
} satisfies Record<SupportedChainId, Address>,
|
|
14
21
|
metadata: {
|
|
15
22
|
decimals: 18,
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
base,
|
|
3
|
+
baseSepolia,
|
|
4
|
+
mainnet,
|
|
5
|
+
optimismSepolia,
|
|
6
|
+
unichain,
|
|
7
|
+
} from 'viem/chains'
|
|
2
8
|
|
|
3
9
|
export const SUPPORTED_CHAIN_IDS = [
|
|
4
10
|
mainnet.id,
|
|
5
11
|
unichain.id,
|
|
6
12
|
base.id,
|
|
7
13
|
baseSepolia.id,
|
|
14
|
+
optimismSepolia.id,
|
|
8
15
|
] as const
|
|
9
16
|
|
|
10
17
|
export type SupportedChainId = (typeof SUPPORTED_CHAIN_IDS)[number]
|
package/src/index.ts
CHANGED
|
@@ -12,7 +12,6 @@ export type {
|
|
|
12
12
|
ActionsConfig,
|
|
13
13
|
ApyBreakdown,
|
|
14
14
|
Asset,
|
|
15
|
-
BaseLendConfig,
|
|
16
15
|
EOATransactionReceipt,
|
|
17
16
|
LendConfig,
|
|
18
17
|
LendMarket,
|
|
@@ -22,9 +21,9 @@ export type {
|
|
|
22
21
|
LendMarketPosition,
|
|
23
22
|
LendMarketSupply,
|
|
24
23
|
LendOptions,
|
|
24
|
+
LendProviderConfig,
|
|
25
25
|
LendTransaction,
|
|
26
26
|
LendTransactionReceipt,
|
|
27
|
-
MorphoLendConfig,
|
|
28
27
|
TokenBalance,
|
|
29
28
|
TransactionData,
|
|
30
29
|
UserOperationTransactionReceipt,
|
|
@@ -2,9 +2,9 @@ import type { Address } from 'viem'
|
|
|
2
2
|
import { parseUnits } from 'viem'
|
|
3
3
|
|
|
4
4
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
5
|
+
import type { LendProviderConfig } from '@/types/actions.js'
|
|
5
6
|
import type { Asset } from '@/types/asset.js'
|
|
6
7
|
import type {
|
|
7
|
-
BaseLendConfig,
|
|
8
8
|
ClosePositionParams,
|
|
9
9
|
GetLendMarketParams,
|
|
10
10
|
GetLendMarketsParams,
|
|
@@ -25,7 +25,7 @@ import { validateMarketAsset } from '@/utils/markets.js'
|
|
|
25
25
|
* @description Base class for lending provider implementations
|
|
26
26
|
*/
|
|
27
27
|
export abstract class LendProvider<
|
|
28
|
-
TConfig extends
|
|
28
|
+
TConfig extends LendProviderConfig = LendProviderConfig,
|
|
29
29
|
> {
|
|
30
30
|
/** Lending provider configuration */
|
|
31
31
|
protected readonly _config: TConfig
|
|
@@ -237,7 +237,7 @@ export abstract class LendProvider<
|
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
const foundMarket = this._config.marketAllowlist.find(
|
|
240
|
-
(allowedMarket) =>
|
|
240
|
+
(allowedMarket: LendMarketConfig) =>
|
|
241
241
|
allowedMarket.address.toLowerCase() ===
|
|
242
242
|
marketId.address.toLowerCase() &&
|
|
243
243
|
allowedMarket.chainId === marketId.chainId,
|
|
@@ -262,8 +262,9 @@ export abstract class LendProvider<
|
|
|
262
262
|
): LendMarketConfig[] {
|
|
263
263
|
let configs = this._config.marketAllowlist || []
|
|
264
264
|
if (chainId !== undefined)
|
|
265
|
-
configs = configs.filter((m) => m.chainId === chainId)
|
|
266
|
-
if (asset !== undefined)
|
|
265
|
+
configs = configs.filter((m: LendMarketConfig) => m.chainId === chainId)
|
|
266
|
+
if (asset !== undefined)
|
|
267
|
+
configs = configs.filter((m: LendMarketConfig) => m.asset === asset)
|
|
267
268
|
return configs
|
|
268
269
|
}
|
|
269
270
|
|