@eth-optimism/actions-sdk 0.0.4 → 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 +30 -80
- package/dist/actions.test.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 +35 -8
- package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +1 -1
- package/dist/lend/namespaces/WalletLendNamespace.js +59 -11
- 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/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/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/__tests__/WalletNamespace.spec.js +9 -9
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +8 -8
- 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/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 +10 -3
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +5 -3
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +4 -3
- 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 +5 -4
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.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/wallets/hosted/privy/PrivyWallet.d.ts +10 -3
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +5 -4
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.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 +4 -1
- package/src/actions.test.ts +32 -93
- package/src/actions.ts +82 -26
- 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 +98 -18
- 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 -3
- package/src/supported/tokens.ts +24 -2
- package/src/test/MockLendProvider.ts +9 -9
- package/src/types/actions.ts +30 -2
- package/src/types/lend/base.ts +6 -22
- package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +9 -9
- package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +8 -8
- package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +15 -4
- 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 +13 -5
- package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +4 -4
- package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +6 -4
- 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/wallets/hosted/privy/PrivyWallet.ts +18 -6
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivyWallet.js","sourceRoot":"","sources":["../../../../../../src/wallet/react/wallets/hosted/privy/PrivyWallet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PrivyWallet.js","sourceRoot":"","sources":["../../../../../../src/wallet/react/wallets/hosted/privy/PrivyWallet.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAA;AAExF;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAMxC,YACE,YAA0B,EAC1B,eAAgC,EAChC,aAGC;QAED,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QAClC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACxC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAOnB;QACC,MAAM,MAAM,GAAG,IAAI,WAAW,CAC5B,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,aAAa,CACrB,CAAA;QACD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;QACzB,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,qBAAqB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;IACpC,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,YAAY;QACxB,OAAO,YAAY,CAAC;YAClB,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { TurnkeySDKClientBase } from '@turnkey/react-wallet-kit';
|
|
2
2
|
import type { Address, LocalAccount } from 'viem';
|
|
3
|
+
import type { LendProvider } from '../../../../../lend/core/LendProvider.js';
|
|
3
4
|
import type { ChainManager } from '../../../../../services/ChainManager.js';
|
|
4
|
-
import type {
|
|
5
|
+
import type { LendProviderConfig } from '../../../../../types/actions.js';
|
|
5
6
|
import { EOAWallet } from '../../../../core/wallets/eoa/EOAWallet.js';
|
|
6
7
|
/**
|
|
7
8
|
* Turnkey wallet implementation
|
|
@@ -36,7 +37,10 @@ export declare class TurnkeyWallet extends EOAWallet {
|
|
|
36
37
|
organizationId: string;
|
|
37
38
|
signWith: string;
|
|
38
39
|
ethereumAddress?: string;
|
|
39
|
-
|
|
40
|
+
lendProviders?: {
|
|
41
|
+
morpho?: LendProvider<LendProviderConfig>;
|
|
42
|
+
aave?: LendProvider<LendProviderConfig>;
|
|
43
|
+
};
|
|
40
44
|
}): Promise<TurnkeyWallet>;
|
|
41
45
|
protected performInitialization(): Promise<void>;
|
|
42
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TurnkeyWallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"TurnkeyWallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAGlE;;;GAGG;AACH,qBAAa,aAAc,SAAQ,SAAS;IACnC,OAAO,EAAG,OAAO,CAAA;IACjB,MAAM,EAAG,YAAY,CAAA;IAC5B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAQ;IAEzC,OAAO;WA0BM,MAAM,CAAC,MAAM,EAAE;QAC1B,YAAY,EAAE,YAAY,CAAA;QAC1B,MAAM,EAAE,oBAAoB,CAAA;QAC5B,cAAc,EAAE,MAAM,CAAA;QACtB,QAAQ,EAAE,MAAM,CAAA;QAChB,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,aAAa,CAAC,EAAE;YACd,MAAM,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAA;YACzC,IAAI,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAA;SACxC,CAAA;KACF,GAAG,OAAO,CAAC,aAAa,CAAC;cAMV,qBAAqB;IAKrC;;;;;;;;OAQG;YACW,YAAY;CAQ3B"}
|
|
@@ -6,8 +6,8 @@ import { createSigner } from './utils/createSigner.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export class TurnkeyWallet extends EOAWallet {
|
|
8
8
|
constructor(params) {
|
|
9
|
-
const { chainManager, client, organizationId, signWith, ethereumAddress,
|
|
10
|
-
super(chainManager,
|
|
9
|
+
const { chainManager, client, organizationId, signWith, ethereumAddress, lendProviders, } = params;
|
|
10
|
+
super(chainManager, lendProviders);
|
|
11
11
|
this.client = client;
|
|
12
12
|
this.organizationId = organizationId;
|
|
13
13
|
this.signWith = signWith;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TurnkeyWallet.js","sourceRoot":"","sources":["../../../../../../src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TurnkeyWallet.js","sourceRoot":"","sources":["../../../../../../src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,6DAA6D,CAAA;AAE1F;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAuB1C,YAAoB,MAUnB;QACC,MAAM,EACJ,YAAY,EACZ,MAAM,EACN,cAAc,EACd,QAAQ,EACR,eAAe,EACf,aAAa,GACd,GAAG,MAAM,CAAA;QACV,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACxC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAUnB;QACC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;QACxC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;QACzB,OAAO,MAAM,CAAA;IACf,CAAC;IAES,KAAK,CAAC,qBAAqB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;IACpC,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,YAAY;QACxB,OAAO,YAAY,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"url": "https://github.com/ethereum-optimism/actions/issues"
|
|
11
11
|
},
|
|
12
12
|
"type": "module",
|
|
13
|
-
"version": "0.0
|
|
13
|
+
"version": "0.1.0",
|
|
14
14
|
"description": "TypeScript SDK for Actions",
|
|
15
15
|
"main": "dist/index.js",
|
|
16
16
|
"types": "dist/index.d.ts",
|
|
@@ -45,10 +45,13 @@
|
|
|
45
45
|
"author": "Optimism PBC",
|
|
46
46
|
"license": "MIT",
|
|
47
47
|
"dependencies": {
|
|
48
|
+
"@aave/contract-helpers": "^1.30.0",
|
|
49
|
+
"@aave/math-utils": "^1.30.0",
|
|
48
50
|
"@eth-optimism/viem": "^0.4.13",
|
|
49
51
|
"@morpho-org/blue-sdk": "^4.5.1",
|
|
50
52
|
"@morpho-org/blue-sdk-viem": "^3.1.1",
|
|
51
53
|
"@morpho-org/morpho-ts": "^2.4.1",
|
|
54
|
+
"ethers": "^5.7.2",
|
|
52
55
|
"permissionless": "^0.2.54",
|
|
53
56
|
"viem": "^2.24.1"
|
|
54
57
|
},
|
package/src/actions.test.ts
CHANGED
|
@@ -7,7 +7,8 @@ import {
|
|
|
7
7
|
createMockPrivyClient,
|
|
8
8
|
getMockAuthorizationContext,
|
|
9
9
|
} from '@/test/MockPrivyClient.js'
|
|
10
|
-
import type {
|
|
10
|
+
import type { LendProviderConfig } from '@/types/actions.js'
|
|
11
|
+
import type { LendMarketConfig } from '@/types/lend/index.js'
|
|
11
12
|
import { externalTest } from '@/utils/test.js'
|
|
12
13
|
import { HostedWalletProviderRegistry } from '@/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js'
|
|
13
14
|
import type { HostedWalletProvidersSchema } from '@/wallet/core/providers/hosted/types/index.js'
|
|
@@ -51,7 +52,7 @@ describe('Actions SDK', () => {
|
|
|
51
52
|
|
|
52
53
|
describe('Configuration', () => {
|
|
53
54
|
describe('Morpho Provider Configuration', () => {
|
|
54
|
-
it('should create Morpho provider when
|
|
55
|
+
it('should create Morpho provider when morpho config is provided', () => {
|
|
55
56
|
const actions = new Actions<
|
|
56
57
|
TestWalletProvider['providerTypes'],
|
|
57
58
|
TestWalletProvider,
|
|
@@ -60,7 +61,7 @@ describe('Actions SDK', () => {
|
|
|
60
61
|
{
|
|
61
62
|
chains: [{ chainId: unichain.id }],
|
|
62
63
|
lend: {
|
|
63
|
-
|
|
64
|
+
morpho: {},
|
|
64
65
|
},
|
|
65
66
|
wallet: {
|
|
66
67
|
hostedWalletConfig: {
|
|
@@ -90,8 +91,7 @@ describe('Actions SDK', () => {
|
|
|
90
91
|
expect(actions.lend.supportedChainIds()).toContain(130) // Unichain
|
|
91
92
|
})
|
|
92
93
|
|
|
93
|
-
it('should create Morpho provider with
|
|
94
|
-
const customSlippage = 150
|
|
94
|
+
it('should create Morpho provider with empty config', () => {
|
|
95
95
|
const actions = new Actions<
|
|
96
96
|
TestWalletProvider['providerTypes'],
|
|
97
97
|
TestWalletProvider,
|
|
@@ -100,8 +100,7 @@ describe('Actions SDK', () => {
|
|
|
100
100
|
{
|
|
101
101
|
chains: [{ chainId: unichain.id }],
|
|
102
102
|
lend: {
|
|
103
|
-
|
|
104
|
-
defaultSlippage: customSlippage,
|
|
103
|
+
morpho: {},
|
|
105
104
|
},
|
|
106
105
|
wallet: {
|
|
107
106
|
hostedWalletConfig: {
|
|
@@ -128,8 +127,7 @@ describe('Actions SDK', () => {
|
|
|
128
127
|
)
|
|
129
128
|
|
|
130
129
|
expect(actions.lend).toBeDefined()
|
|
131
|
-
expect(actions.lend.
|
|
132
|
-
expect(actions.lend.config.provider).toBe('morpho')
|
|
130
|
+
expect(actions.lend.supportedChainIds()).toContain(130) // Unichain
|
|
133
131
|
})
|
|
134
132
|
|
|
135
133
|
it('should create Morpho provider with market allowlist', () => {
|
|
@@ -160,8 +158,9 @@ describe('Actions SDK', () => {
|
|
|
160
158
|
{
|
|
161
159
|
chains: [{ chainId: unichain.id }],
|
|
162
160
|
lend: {
|
|
163
|
-
|
|
164
|
-
|
|
161
|
+
morpho: {
|
|
162
|
+
marketAllowlist: [mockMarket],
|
|
163
|
+
},
|
|
165
164
|
},
|
|
166
165
|
wallet: {
|
|
167
166
|
hostedWalletConfig: {
|
|
@@ -188,11 +187,9 @@ describe('Actions SDK', () => {
|
|
|
188
187
|
)
|
|
189
188
|
|
|
190
189
|
expect(actions.lend).toBeDefined()
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
expect(
|
|
194
|
-
expect(allowlist![0].address).toBe(mockMarket.address)
|
|
195
|
-
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()
|
|
196
193
|
})
|
|
197
194
|
|
|
198
195
|
it('should create Morpho provider with multiple markets in allowlist', () => {
|
|
@@ -243,8 +240,9 @@ describe('Actions SDK', () => {
|
|
|
243
240
|
{
|
|
244
241
|
chains: [{ chainId: unichain.id }],
|
|
245
242
|
lend: {
|
|
246
|
-
|
|
247
|
-
|
|
243
|
+
morpho: {
|
|
244
|
+
marketAllowlist: mockMarkets,
|
|
245
|
+
},
|
|
248
246
|
},
|
|
249
247
|
wallet: {
|
|
250
248
|
hostedWalletConfig: {
|
|
@@ -271,49 +269,9 @@ describe('Actions SDK', () => {
|
|
|
271
269
|
)
|
|
272
270
|
|
|
273
271
|
expect(actions.lend).toBeDefined()
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
expect(
|
|
277
|
-
expect(allowlist![0].name).toBe('Gauntlet USDC')
|
|
278
|
-
expect(allowlist![1].name).toBe('Test WETH Market')
|
|
279
|
-
})
|
|
280
|
-
|
|
281
|
-
it('should throw error for unsupported lending provider', () => {
|
|
282
|
-
expect(() => {
|
|
283
|
-
new Actions<
|
|
284
|
-
TestWalletProvider['providerTypes'],
|
|
285
|
-
TestWalletProvider,
|
|
286
|
-
'privy'
|
|
287
|
-
>(
|
|
288
|
-
{
|
|
289
|
-
chains: [{ chainId: unichain.id }],
|
|
290
|
-
lend: {
|
|
291
|
-
provider: 'invalid' as any,
|
|
292
|
-
},
|
|
293
|
-
wallet: {
|
|
294
|
-
hostedWalletConfig: {
|
|
295
|
-
provider: {
|
|
296
|
-
type: 'privy',
|
|
297
|
-
config: {
|
|
298
|
-
privyClient: createMockPrivyClient(
|
|
299
|
-
'test-id',
|
|
300
|
-
'test-secret',
|
|
301
|
-
),
|
|
302
|
-
authorizationContext: getMockAuthorizationContext(),
|
|
303
|
-
},
|
|
304
|
-
},
|
|
305
|
-
},
|
|
306
|
-
smartWalletConfig: {
|
|
307
|
-
provider: { type: 'default' },
|
|
308
|
-
},
|
|
309
|
-
},
|
|
310
|
-
},
|
|
311
|
-
{
|
|
312
|
-
hostedWalletProviderRegistry:
|
|
313
|
-
new TestHostedWalletProviderRegistry(),
|
|
314
|
-
},
|
|
315
|
-
)
|
|
316
|
-
}).toThrow('Unsupported lending provider: invalid')
|
|
272
|
+
// Verify Morpho provider is created with multiple markets
|
|
273
|
+
const morphoProvider = actions['lendProviders']['morpho']
|
|
274
|
+
expect(morphoProvider).toBeDefined()
|
|
317
275
|
})
|
|
318
276
|
|
|
319
277
|
it('should work without lend configuration', () => {
|
|
@@ -348,16 +306,14 @@ describe('Actions SDK', () => {
|
|
|
348
306
|
},
|
|
349
307
|
)
|
|
350
308
|
|
|
351
|
-
expect(actions['
|
|
309
|
+
expect(actions['lendProviders']).toEqual({})
|
|
352
310
|
expect(() => actions.lend).toThrow('Lend provider not configured')
|
|
353
311
|
})
|
|
354
312
|
})
|
|
355
313
|
|
|
356
314
|
describe('Lending Configuration Types', () => {
|
|
357
315
|
it('should accept valid MorphoLendConfig', () => {
|
|
358
|
-
const
|
|
359
|
-
provider: 'morpho',
|
|
360
|
-
defaultSlippage: 100,
|
|
316
|
+
const morphoConfig: LendProviderConfig = {
|
|
361
317
|
marketAllowlist: [],
|
|
362
318
|
}
|
|
363
319
|
|
|
@@ -369,7 +325,7 @@ describe('Actions SDK', () => {
|
|
|
369
325
|
>(
|
|
370
326
|
{
|
|
371
327
|
chains: [{ chainId: unichain.id }],
|
|
372
|
-
lend:
|
|
328
|
+
lend: { morpho: morphoConfig },
|
|
373
329
|
wallet: {
|
|
374
330
|
hostedWalletConfig: {
|
|
375
331
|
provider: {
|
|
@@ -397,9 +353,7 @@ describe('Actions SDK', () => {
|
|
|
397
353
|
})
|
|
398
354
|
|
|
399
355
|
it('should accept minimal MorphoLendConfig', () => {
|
|
400
|
-
const
|
|
401
|
-
provider: 'morpho',
|
|
402
|
-
}
|
|
356
|
+
const morphoConfig: LendProviderConfig = {}
|
|
403
357
|
|
|
404
358
|
expect(() => {
|
|
405
359
|
new Actions<
|
|
@@ -409,7 +363,7 @@ describe('Actions SDK', () => {
|
|
|
409
363
|
>(
|
|
410
364
|
{
|
|
411
365
|
chains: [{ chainId: unichain.id }],
|
|
412
|
-
lend:
|
|
366
|
+
lend: { morpho: morphoConfig },
|
|
413
367
|
wallet: {
|
|
414
368
|
hostedWalletConfig: {
|
|
415
369
|
provider: {
|
|
@@ -450,7 +404,7 @@ describe('Actions SDK', () => {
|
|
|
450
404
|
{ chainId: 84532 }, // Base Sepolia
|
|
451
405
|
],
|
|
452
406
|
lend: {
|
|
453
|
-
|
|
407
|
+
morpho: {},
|
|
454
408
|
},
|
|
455
409
|
wallet: {
|
|
456
410
|
hostedWalletConfig: {
|
|
@@ -493,8 +447,7 @@ describe('Actions SDK', () => {
|
|
|
493
447
|
{
|
|
494
448
|
chains: [{ chainId: unichain.id }],
|
|
495
449
|
lend: {
|
|
496
|
-
|
|
497
|
-
defaultSlippage: 50,
|
|
450
|
+
morpho: {},
|
|
498
451
|
},
|
|
499
452
|
wallet: {
|
|
500
453
|
hostedWalletConfig: {
|
|
@@ -546,10 +499,7 @@ describe('Actions SDK', () => {
|
|
|
546
499
|
chainId: unichain.id,
|
|
547
500
|
},
|
|
548
501
|
],
|
|
549
|
-
lend: {
|
|
550
|
-
provider: 'morpho',
|
|
551
|
-
defaultSlippage: 50,
|
|
552
|
-
},
|
|
502
|
+
lend: {},
|
|
553
503
|
wallet: {
|
|
554
504
|
hostedWalletConfig: {
|
|
555
505
|
provider: {
|
|
@@ -601,10 +551,7 @@ describe('Actions SDK', () => {
|
|
|
601
551
|
chainId: unichain.id,
|
|
602
552
|
},
|
|
603
553
|
],
|
|
604
|
-
lend: {
|
|
605
|
-
provider: 'morpho',
|
|
606
|
-
defaultSlippage: 50,
|
|
607
|
-
},
|
|
554
|
+
lend: {},
|
|
608
555
|
wallet: {
|
|
609
556
|
hostedWalletConfig: {
|
|
610
557
|
provider: {
|
|
@@ -689,10 +636,7 @@ describe('Actions SDK', () => {
|
|
|
689
636
|
chainId: unichain.id,
|
|
690
637
|
},
|
|
691
638
|
],
|
|
692
|
-
lend: {
|
|
693
|
-
provider: 'morpho',
|
|
694
|
-
defaultSlippage: 50,
|
|
695
|
-
},
|
|
639
|
+
lend: {},
|
|
696
640
|
wallet: {
|
|
697
641
|
hostedWalletConfig: {
|
|
698
642
|
provider: {
|
|
@@ -752,10 +696,7 @@ describe('Actions SDK', () => {
|
|
|
752
696
|
chainId: unichain.id,
|
|
753
697
|
},
|
|
754
698
|
],
|
|
755
|
-
lend: {
|
|
756
|
-
provider: 'morpho',
|
|
757
|
-
defaultSlippage: 50,
|
|
758
|
-
},
|
|
699
|
+
lend: {},
|
|
759
700
|
wallet: {
|
|
760
701
|
hostedWalletConfig: {
|
|
761
702
|
provider: {
|
|
@@ -807,8 +748,7 @@ describe('Actions SDK', () => {
|
|
|
807
748
|
},
|
|
808
749
|
],
|
|
809
750
|
lend: {
|
|
810
|
-
|
|
811
|
-
defaultSlippage: 50,
|
|
751
|
+
morpho: {},
|
|
812
752
|
},
|
|
813
753
|
wallet: {
|
|
814
754
|
hostedWalletConfig: {
|
|
@@ -859,8 +799,7 @@ describe('Actions SDK', () => {
|
|
|
859
799
|
},
|
|
860
800
|
],
|
|
861
801
|
lend: {
|
|
862
|
-
|
|
863
|
-
defaultSlippage: 50,
|
|
802
|
+
morpho: {},
|
|
864
803
|
},
|
|
865
804
|
wallet: {
|
|
866
805
|
hostedWalletConfig: {
|
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/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
|
|