@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
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { base, baseSepolia, optimism, optimismSepolia } from 'viem/chains';
|
|
2
|
+
/**
|
|
3
|
+
* Aave V3 Pool addresses for Optimism Superchain networks
|
|
4
|
+
* @description Hardcoded Pool contract addresses for each supported chain
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Mainnet Pool addresses
|
|
8
|
+
*/
|
|
9
|
+
export const POOL_ADDRESSES_MAINNET = {
|
|
10
|
+
[optimism.id]: '0x794a61358D6845594F94dc1DB02A252b5b4814aD',
|
|
11
|
+
[base.id]: '0xA238Dd80C259a72e81d7e4664a9801593F98d1c5',
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Testnet Pool addresses
|
|
15
|
+
*/
|
|
16
|
+
export const POOL_ADDRESSES_TESTNET = {
|
|
17
|
+
[optimismSepolia.id]: '0xb50201558b00496a145fe76f7424749556e326d8',
|
|
18
|
+
[baseSepolia.id]: '0x8bAB6d1b75f19e9eD9fCe8b9BD338844fF79aE27',
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* All Pool addresses (mainnet + testnet)
|
|
22
|
+
*/
|
|
23
|
+
export const POOL_ADDRESSES = {
|
|
24
|
+
...POOL_ADDRESSES_MAINNET,
|
|
25
|
+
...POOL_ADDRESSES_TESTNET,
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Get Pool address for a given chain ID
|
|
29
|
+
* @param chainId - Chain ID
|
|
30
|
+
* @returns Pool address if supported, undefined otherwise
|
|
31
|
+
*/
|
|
32
|
+
export function getPoolAddress(chainId) {
|
|
33
|
+
return POOL_ADDRESSES[chainId];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Check if a chain ID has Aave V3 deployed
|
|
37
|
+
* @param chainId - Chain ID to check
|
|
38
|
+
* @returns true if Aave V3 is deployed on this chain
|
|
39
|
+
*/
|
|
40
|
+
export function isAaveChainSupported(chainId) {
|
|
41
|
+
return chainId in POOL_ADDRESSES;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get all supported chain IDs
|
|
45
|
+
* @returns Array of chain IDs with Aave V3 deployed
|
|
46
|
+
*/
|
|
47
|
+
export function getSupportedChainIds() {
|
|
48
|
+
return Object.keys(POOL_ADDRESSES).map(Number);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Aave V3 WETHGateway addresses for Optimism Superchain networks
|
|
52
|
+
* @description Gateway contracts that handle native ETH wrapping and depositing
|
|
53
|
+
*/
|
|
54
|
+
/**
|
|
55
|
+
* Mainnet WETHGateway addresses
|
|
56
|
+
*/
|
|
57
|
+
export const WETH_GATEWAY_ADDRESSES_MAINNET = {
|
|
58
|
+
[optimism.id]: '0x5f2508cAE9923b02316254026CD43d7902866725',
|
|
59
|
+
[base.id]: '0xa0d9C1E9E48Ca30c8d8C3B5D69FF5dc1f6DFfC24',
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Testnet WETHGateway addresses
|
|
63
|
+
*/
|
|
64
|
+
export const WETH_GATEWAY_ADDRESSES_TESTNET = {
|
|
65
|
+
[optimismSepolia.id]: '0x589750BA8aF186cE5B55391B0b7148cAD43a1619',
|
|
66
|
+
[baseSepolia.id]: '0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6',
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* All WETHGateway addresses (mainnet + testnet)
|
|
70
|
+
*/
|
|
71
|
+
export const WETH_GATEWAY_ADDRESSES = {
|
|
72
|
+
...WETH_GATEWAY_ADDRESSES_MAINNET,
|
|
73
|
+
...WETH_GATEWAY_ADDRESSES_TESTNET,
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Get WETHGateway address for a given chain ID
|
|
77
|
+
* @param chainId - Chain ID
|
|
78
|
+
* @returns WETHGateway address if supported, undefined otherwise
|
|
79
|
+
*/
|
|
80
|
+
export function getWETHGatewayAddress(chainId) {
|
|
81
|
+
return WETH_GATEWAY_ADDRESSES[chainId];
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=addresses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../../src/lend/providers/aave/addresses.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE1E;;;GAGG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA4B;IAC7D,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,4CAA4C;IAC3D,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,4CAA4C;CAC/C,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA4B;IAC7D,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,4CAA4C;IAClE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,4CAA4C;CACtD,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD,GAAG,sBAAsB;IACzB,GAAG,sBAAsB;CACjB,CAAA;AAEV;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,OAAO,OAAO,IAAI,cAAc,CAAA;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAChD,CAAC;AAED;;;GAGG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAA4B;IACrE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,4CAA4C;IAC3D,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,4CAA4C;CAC/C,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAA4B;IACrE,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,4CAA4C;IAClE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,4CAA4C;CACtD,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA4B;IAC7D,GAAG,8BAA8B;IACjC,GAAG,8BAA8B;CACzB,CAAA;AAEV;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAA;AACxC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
|
+
import type { SUPPORTED_CHAIN_IDS } from '../../../constants/supportedChains.js';
|
|
3
|
+
import type { ChainManager } from '../../../services/ChainManager.js';
|
|
4
|
+
import type { LendProviderConfig } from '../../../types/actions.js';
|
|
5
|
+
import type { ApyBreakdown, LendMarket, LendMarketConfig, LendMarketId } from '../../../types/lend/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Parameters for getReserve function
|
|
8
|
+
*/
|
|
9
|
+
interface GetReserveParams {
|
|
10
|
+
/** Market identifier (asset address and chainId) */
|
|
11
|
+
marketId: LendMarketId;
|
|
12
|
+
/** Chain manager instance */
|
|
13
|
+
chainManager: ChainManager;
|
|
14
|
+
/** Lend configuration containing market allowlist */
|
|
15
|
+
lendConfig?: LendProviderConfig;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parameters for getReserves function
|
|
19
|
+
*/
|
|
20
|
+
interface GetReservesParams {
|
|
21
|
+
chainManager: ChainManager;
|
|
22
|
+
lendConfig: LendProviderConfig;
|
|
23
|
+
markets: LendMarketConfig[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Calculate APY breakdown from reserve data
|
|
27
|
+
* @param reserve - Formatted reserve data from Aave
|
|
28
|
+
* @returns APY breakdown with native APY and rewards
|
|
29
|
+
*/
|
|
30
|
+
export declare function calculateApyBreakdown(reserve: {
|
|
31
|
+
formattedReserve?: any;
|
|
32
|
+
}): ApyBreakdown;
|
|
33
|
+
/**
|
|
34
|
+
* Get detailed reserve (market) information from Aave
|
|
35
|
+
* @param params - Named parameters object
|
|
36
|
+
* @returns Promise resolving to detailed market information
|
|
37
|
+
*/
|
|
38
|
+
export declare function getReserve(params: GetReserveParams): Promise<LendMarket>;
|
|
39
|
+
/**
|
|
40
|
+
* Get multiple reserves (markets)
|
|
41
|
+
* @param params - Parameters including markets to fetch
|
|
42
|
+
* @returns Promise resolving to array of market information
|
|
43
|
+
*/
|
|
44
|
+
export declare function getReserves(params: GetReservesParams): Promise<LendMarket[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Get aToken address for a given underlying asset
|
|
47
|
+
* @param params - Parameters including asset address, chain ID, and chain manager
|
|
48
|
+
* @returns Promise resolving to aToken address
|
|
49
|
+
* @description Queries the Aave Pool to get the aToken address for the underlying asset
|
|
50
|
+
*/
|
|
51
|
+
export declare function getATokenAddress(params: {
|
|
52
|
+
underlyingAsset: Address;
|
|
53
|
+
chainId: (typeof SUPPORTED_CHAIN_IDS)[number];
|
|
54
|
+
chainManager: ChainManager;
|
|
55
|
+
}): Promise<Address>;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../../src/lend/providers/aave/sdk.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,YAAY,EACb,MAAM,uBAAuB,CAAA;AAwB9B;;GAEG;AACH,UAAU,gBAAgB;IACxB,oDAAoD;IACpD,QAAQ,EAAE,YAAY,CAAA;IACtB,6BAA6B;IAC7B,YAAY,EAAE,YAAY,CAAA;IAC1B,qDAAqD;IACrD,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAChC;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,YAAY,EAAE,YAAY,CAAA;IAC1B,UAAU,EAAE,kBAAkB,CAAA;IAC9B,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC5B;AAmBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,gBAAgB,CAAC,EAAE,GAAG,CAAA;CACvB,GAAG,YAAY,CAcf;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,UAAU,CAAC,CAoHrB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,UAAU,EAAE,CAAC,CAqBvB;AAmED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,eAAe,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;IAC7C,YAAY,EAAE,YAAY,CAAA;CAC3B,GAAG,OAAO,CAAC,OAAO,CAAC,CAsCnB"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { UiPoolDataProvider } from '@aave/contract-helpers';
|
|
2
|
+
import { formatReserves } from '@aave/math-utils';
|
|
3
|
+
import { providers } from 'ethers';
|
|
4
|
+
import { base, baseSepolia, optimism, optimismSepolia } from 'viem/chains';
|
|
5
|
+
import { getPoolAddress } from './addresses.js';
|
|
6
|
+
import { getAssetAddress } from '../../../utils/assets.js';
|
|
7
|
+
/**
|
|
8
|
+
* UI Pool Data Provider addresses for each chain
|
|
9
|
+
* @description Contract addresses for UiPoolDataProvider on each supported chain
|
|
10
|
+
*/
|
|
11
|
+
const UI_POOL_DATA_PROVIDER_ADDRESSES = {
|
|
12
|
+
[optimism.id]: '0x69FA688f1Dc47d4B5d8029D5a35FB7a548310654',
|
|
13
|
+
[base.id]: '0xd82a47fdebB5bf5329b09441C3DaB4b5df2153Ad',
|
|
14
|
+
[optimismSepolia.id]: '0x86E2938daE289763D4e09a7e42c5cCcA62Cf9809',
|
|
15
|
+
[baseSepolia.id]: '0xBc9f5b7E248451CdD7cA54e717a2BFe1F32b566b',
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Pool Addresses Provider addresses for each chain
|
|
19
|
+
*/
|
|
20
|
+
const POOL_ADDRESSES_PROVIDER = {
|
|
21
|
+
[optimism.id]: '0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb',
|
|
22
|
+
[base.id]: '0xe20fCBdBfFC4Dd138cE8b2E6FBb6CB49777ad64D',
|
|
23
|
+
[optimismSepolia.id]: '0x36616cf17557639614c1cdDb356b1B83fc0B2132',
|
|
24
|
+
[baseSepolia.id]: '0xE4C23309117Aa30342BFaae6c95c6478e0A4Ad00',
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Find market configuration in allowlist
|
|
28
|
+
* @param marketAllowlist - Array of allowed market configurations
|
|
29
|
+
* @param marketId - Market identifier to find
|
|
30
|
+
* @returns Market configuration if found, undefined otherwise
|
|
31
|
+
*/
|
|
32
|
+
function findMarketInAllowlist(marketAllowlist, marketId) {
|
|
33
|
+
return marketAllowlist.find((config) => config.address.toLowerCase() === marketId.address.toLowerCase() &&
|
|
34
|
+
config.chainId === marketId.chainId);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Calculate APY breakdown from reserve data
|
|
38
|
+
* @param reserve - Formatted reserve data from Aave
|
|
39
|
+
* @returns APY breakdown with native APY and rewards
|
|
40
|
+
*/
|
|
41
|
+
export function calculateApyBreakdown(reserve) {
|
|
42
|
+
// Get supply APY from formatted reserve data
|
|
43
|
+
const supplyApy = reserve.formattedReserve?.supplyAPY
|
|
44
|
+
? parseFloat(reserve.formattedReserve.supplyAPY)
|
|
45
|
+
: 0;
|
|
46
|
+
// Aave doesn't have vault-style performance fees
|
|
47
|
+
// Total APY = Supply APY + any rewards (to be added later)
|
|
48
|
+
return {
|
|
49
|
+
total: supplyApy,
|
|
50
|
+
native: supplyApy,
|
|
51
|
+
totalRewards: 0, // TODO: Fetch from incentives data provider if needed
|
|
52
|
+
performanceFee: 0, // Aave doesn't have performance fees
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get detailed reserve (market) information from Aave
|
|
57
|
+
* @param params - Named parameters object
|
|
58
|
+
* @returns Promise resolving to detailed market information
|
|
59
|
+
*/
|
|
60
|
+
export async function getReserve(params) {
|
|
61
|
+
// Find market configuration in allowlist for metadata
|
|
62
|
+
const marketConfig = params.lendConfig?.marketAllowlist
|
|
63
|
+
? findMarketInAllowlist(params.lendConfig.marketAllowlist, params.marketId)
|
|
64
|
+
: undefined;
|
|
65
|
+
if (!marketConfig) {
|
|
66
|
+
throw new Error(`Market ${params.marketId.address} on chain ${params.marketId.chainId} not found in allowlist`);
|
|
67
|
+
}
|
|
68
|
+
const poolAddress = getPoolAddress(params.marketId.chainId);
|
|
69
|
+
if (!poolAddress) {
|
|
70
|
+
throw new Error(`Aave V3 not deployed on chain ${params.marketId.chainId}`);
|
|
71
|
+
}
|
|
72
|
+
const uiPoolDataProviderAddress = UI_POOL_DATA_PROVIDER_ADDRESSES[params.marketId.chainId];
|
|
73
|
+
const poolAddressesProvider = POOL_ADDRESSES_PROVIDER[params.marketId.chainId];
|
|
74
|
+
if (!uiPoolDataProviderAddress || !poolAddressesProvider) {
|
|
75
|
+
throw new Error(`UiPoolDataProvider not configured for chain ${params.marketId.chainId}`);
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
// Get viem public client for this chain
|
|
79
|
+
const publicClient = params.chainManager.getPublicClient(params.marketId.chainId);
|
|
80
|
+
// Create ethers provider from viem's RPC URL
|
|
81
|
+
// Aave SDK requires ethers provider, not viem
|
|
82
|
+
const rpcUrl = publicClient.chain?.rpcUrls.default.http[0] ||
|
|
83
|
+
publicClient.chain?.rpcUrls.public?.http[0];
|
|
84
|
+
if (!rpcUrl) {
|
|
85
|
+
throw new Error(`No RPC URL available for chain ${params.marketId.chainId}`);
|
|
86
|
+
}
|
|
87
|
+
const ethersProvider = new providers.JsonRpcProvider(rpcUrl);
|
|
88
|
+
// Create UiPoolDataProvider instance
|
|
89
|
+
const uiPoolDataProvider = new UiPoolDataProvider({
|
|
90
|
+
uiPoolDataProviderAddress,
|
|
91
|
+
provider: ethersProvider,
|
|
92
|
+
chainId: params.marketId.chainId,
|
|
93
|
+
});
|
|
94
|
+
// Fetch reserve data
|
|
95
|
+
const reservesData = await uiPoolDataProvider.getReservesHumanized({
|
|
96
|
+
lendingPoolAddressProvider: poolAddressesProvider,
|
|
97
|
+
});
|
|
98
|
+
// Find the specific reserve for this asset
|
|
99
|
+
const assetAddress = getAssetAddress(marketConfig.asset, params.marketId.chainId);
|
|
100
|
+
const reserve = reservesData.reservesData.find((r) => r.underlyingAsset.toLowerCase() === assetAddress.toLowerCase());
|
|
101
|
+
if (!reserve) {
|
|
102
|
+
throw new Error(`Reserve not found for asset ${assetAddress} on chain ${params.marketId.chainId}`);
|
|
103
|
+
}
|
|
104
|
+
// Format reserves using Aave math-utils
|
|
105
|
+
const currentTimestamp = Math.floor(Date.now() / 1000);
|
|
106
|
+
const formattedReserves = formatReserves({
|
|
107
|
+
reserves: [reserve],
|
|
108
|
+
currentTimestamp,
|
|
109
|
+
marketReferenceCurrencyDecimals: reservesData.baseCurrencyData.marketReferenceCurrencyDecimals,
|
|
110
|
+
marketReferencePriceInUsd: reservesData.baseCurrencyData.marketReferenceCurrencyPriceInUsd,
|
|
111
|
+
});
|
|
112
|
+
const formattedReserve = formattedReserves[0];
|
|
113
|
+
// Calculate APY breakdown
|
|
114
|
+
const apy = calculateApyBreakdown({
|
|
115
|
+
...reserve,
|
|
116
|
+
formattedReserve,
|
|
117
|
+
});
|
|
118
|
+
// Return market information in our standard format
|
|
119
|
+
return {
|
|
120
|
+
marketId: params.marketId,
|
|
121
|
+
name: marketConfig.name,
|
|
122
|
+
asset: marketConfig.asset,
|
|
123
|
+
supply: {
|
|
124
|
+
totalAssets: BigInt(reserve.availableLiquidity),
|
|
125
|
+
totalShares: BigInt(reserve.totalScaledVariableDebt || '0'),
|
|
126
|
+
},
|
|
127
|
+
apy,
|
|
128
|
+
metadata: {
|
|
129
|
+
owner: poolAddress, // Use Pool as owner
|
|
130
|
+
curator: poolAddress, // No curator in Aave
|
|
131
|
+
fee: 0, // No performance fee in Aave
|
|
132
|
+
lastUpdate: currentTimestamp,
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
throw new Error(`Failed to get reserve info for ${params.marketId.address}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get multiple reserves (markets)
|
|
142
|
+
* @param params - Parameters including markets to fetch
|
|
143
|
+
* @returns Promise resolving to array of market information
|
|
144
|
+
*/
|
|
145
|
+
export async function getReserves(params) {
|
|
146
|
+
try {
|
|
147
|
+
const reservePromises = params.markets.map((marketConfig) => {
|
|
148
|
+
return getReserve({
|
|
149
|
+
marketId: {
|
|
150
|
+
address: marketConfig.address,
|
|
151
|
+
chainId: marketConfig.chainId,
|
|
152
|
+
},
|
|
153
|
+
chainManager: params.chainManager,
|
|
154
|
+
lendConfig: params.lendConfig,
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
return await Promise.all(reservePromises);
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
throw new Error(`Failed to get reserves: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Aave V3 Pool ABI for getReserveData
|
|
165
|
+
* @description Minimal ABI for querying reserve data from Aave V3 Pool
|
|
166
|
+
*/
|
|
167
|
+
const POOL_GET_RESERVE_DATA_ABI = [
|
|
168
|
+
{
|
|
169
|
+
inputs: [{ name: 'asset', type: 'address', internalType: 'address' }],
|
|
170
|
+
name: 'getReserveData',
|
|
171
|
+
outputs: [
|
|
172
|
+
{
|
|
173
|
+
components: [
|
|
174
|
+
{ name: 'data', type: 'uint256', internalType: 'uint256' },
|
|
175
|
+
],
|
|
176
|
+
name: 'configuration',
|
|
177
|
+
type: 'tuple',
|
|
178
|
+
internalType: 'struct DataTypes.ReserveConfigurationMap',
|
|
179
|
+
},
|
|
180
|
+
{ name: 'liquidityIndex', type: 'uint128', internalType: 'uint128' },
|
|
181
|
+
{
|
|
182
|
+
name: 'currentLiquidityRate',
|
|
183
|
+
type: 'uint128',
|
|
184
|
+
internalType: 'uint128',
|
|
185
|
+
},
|
|
186
|
+
{ name: 'variableBorrowIndex', type: 'uint128', internalType: 'uint128' },
|
|
187
|
+
{
|
|
188
|
+
name: 'currentVariableBorrowRate',
|
|
189
|
+
type: 'uint128',
|
|
190
|
+
internalType: 'uint128',
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
name: 'currentStableBorrowRate',
|
|
194
|
+
type: 'uint128',
|
|
195
|
+
internalType: 'uint128',
|
|
196
|
+
},
|
|
197
|
+
{ name: 'lastUpdateTimestamp', type: 'uint40', internalType: 'uint40' },
|
|
198
|
+
{ name: 'id', type: 'uint16', internalType: 'uint16' },
|
|
199
|
+
{ name: 'aTokenAddress', type: 'address', internalType: 'address' },
|
|
200
|
+
{
|
|
201
|
+
name: 'stableDebtTokenAddress',
|
|
202
|
+
type: 'address',
|
|
203
|
+
internalType: 'address',
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name: 'variableDebtTokenAddress',
|
|
207
|
+
type: 'address',
|
|
208
|
+
internalType: 'address',
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
name: 'interestRateStrategyAddress',
|
|
212
|
+
type: 'address',
|
|
213
|
+
internalType: 'address',
|
|
214
|
+
},
|
|
215
|
+
{ name: 'accruedToTreasury', type: 'uint128', internalType: 'uint128' },
|
|
216
|
+
{ name: 'unbacked', type: 'uint128', internalType: 'uint128' },
|
|
217
|
+
{
|
|
218
|
+
name: 'isolationModeTotalDebt',
|
|
219
|
+
type: 'uint128',
|
|
220
|
+
internalType: 'uint128',
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
stateMutability: 'view',
|
|
224
|
+
type: 'function',
|
|
225
|
+
},
|
|
226
|
+
];
|
|
227
|
+
/**
|
|
228
|
+
* Get aToken address for a given underlying asset
|
|
229
|
+
* @param params - Parameters including asset address, chain ID, and chain manager
|
|
230
|
+
* @returns Promise resolving to aToken address
|
|
231
|
+
* @description Queries the Aave Pool to get the aToken address for the underlying asset
|
|
232
|
+
*/
|
|
233
|
+
export async function getATokenAddress(params) {
|
|
234
|
+
const poolAddress = getPoolAddress(params.chainId);
|
|
235
|
+
if (!poolAddress) {
|
|
236
|
+
throw new Error(`Aave V3 not deployed on chain ${params.chainId}`);
|
|
237
|
+
}
|
|
238
|
+
try {
|
|
239
|
+
// Get viem public client for this chain
|
|
240
|
+
const publicClient = params.chainManager.getPublicClient(params.chainId);
|
|
241
|
+
// Query the Pool contract directly for reserve data
|
|
242
|
+
const reserveData = await publicClient.readContract({
|
|
243
|
+
address: poolAddress,
|
|
244
|
+
abi: POOL_GET_RESERVE_DATA_ABI,
|
|
245
|
+
functionName: 'getReserveData',
|
|
246
|
+
args: [params.underlyingAsset],
|
|
247
|
+
});
|
|
248
|
+
// The return is a tuple where index 8 is aTokenAddress
|
|
249
|
+
const aTokenAddress = reserveData[8];
|
|
250
|
+
if (!aTokenAddress ||
|
|
251
|
+
aTokenAddress === '0x0000000000000000000000000000000000000000') {
|
|
252
|
+
throw new Error(`No aToken found for asset ${params.underlyingAsset} on chain ${params.chainId}`);
|
|
253
|
+
}
|
|
254
|
+
return aTokenAddress;
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
throw new Error(`Failed to get aToken address for ${params.underlyingAsset}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../../src/lend/providers/aave/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LendProvider } from '../../core/LendProvider.js';
|
|
2
2
|
import type { ChainManager } from '../../../services/ChainManager.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { LendProviderConfig } from '../../../types/actions.js';
|
|
4
|
+
import type { GetLendMarketsParams, GetMarketBalanceParams, LendClosePositionParams, LendMarket, LendMarketId, LendMarketPosition, LendOpenPositionInternalParams, LendTransaction } from '../../../types/lend/index.js';
|
|
4
5
|
/**
|
|
5
6
|
* Supported chain IDs for Morpho lending
|
|
6
7
|
* @description Array of chain IDs where Morpho is available
|
|
@@ -10,7 +11,7 @@ export declare const SUPPORTED_CHAIN_IDS: readonly number[];
|
|
|
10
11
|
* Morpho lending provider implementation
|
|
11
12
|
* @description Lending provider implementation using Morpho protocol
|
|
12
13
|
*/
|
|
13
|
-
export declare class MorphoLendProvider extends LendProvider<
|
|
14
|
+
export declare class MorphoLendProvider extends LendProvider<LendProviderConfig> {
|
|
14
15
|
protected readonly SUPPORTED_CHAIN_IDS: readonly number[];
|
|
15
16
|
private chainManager;
|
|
16
17
|
/**
|
|
@@ -18,7 +19,7 @@ export declare class MorphoLendProvider extends LendProvider<MorphoLendConfig> {
|
|
|
18
19
|
* @param config - Morpho lending configuration
|
|
19
20
|
* @param chainManager - Chain manager for blockchain interactions
|
|
20
21
|
*/
|
|
21
|
-
constructor(config:
|
|
22
|
+
constructor(config: LendProviderConfig, chainManager: ChainManager);
|
|
22
23
|
/**
|
|
23
24
|
* Open a lending position in a Morpho market
|
|
24
25
|
* @description Opens a lending position by supplying assets to a Morpho market
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MorphoLendProvider.d.ts","sourceRoot":"","sources":["../../../../src/lend/providers/morpho/MorphoLendProvider.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,8BAA8B,EAC9B,eAAe,
|
|
1
|
+
{"version":3,"file":"MorphoLendProvider.d.ts","sourceRoot":"","sources":["../../../../src/lend/providers/morpho/MorphoLendProvider.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,8BAA8B,EAC9B,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAG9B;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAO3B,SAAS,MAAM,EAAE,CAAA;AAEtB;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,kBAAkB,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,oBAAsB;IAE5D,OAAO,CAAC,YAAY,CAAc;IAElC;;;;OAIG;gBACS,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY;IAKlE;;;;;OAKG;cACa,aAAa,CAC3B,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,eAAe,CAAC;IAsD3B;;;;;OAKG;cACa,cAAc,CAC5B,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,eAAe,CAAC;IA6C3B;;;;OAIG;cACa,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAQvE;;;;OAIG;cACa,WAAW,CACzB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC;IAaxB;;;;OAIG;cACa,YAAY,CAC1B,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,kBAAkB,CAAC;CAiD/B"}
|
|
@@ -73,7 +73,7 @@ export class MorphoLendProvider extends LendProvider {
|
|
|
73
73
|
value: 0n,
|
|
74
74
|
},
|
|
75
75
|
},
|
|
76
|
-
slippage: params.options?.slippage
|
|
76
|
+
slippage: params.options?.slippage ?? 50,
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
79
|
catch (error) {
|
|
@@ -110,7 +110,7 @@ export class MorphoLendProvider extends LendProvider {
|
|
|
110
110
|
value: 0n,
|
|
111
111
|
},
|
|
112
112
|
},
|
|
113
|
-
slippage: params.options?.slippage
|
|
113
|
+
slippage: params.options?.slippage ?? 50,
|
|
114
114
|
};
|
|
115
115
|
}
|
|
116
116
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MorphoLendProvider.js","sourceRoot":"","sources":["../../../../src/lend/providers/morpho/MorphoLendProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAEhE,OAAO,EAAE,mBAAmB,IAAI,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAapE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,GAAG,IAAI,GAAG,CAAC;QACT,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAC9B,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACtD;QACD,GAAG,2BAA2B;KAC/B,CAAC;CACkB,CAAA;AAEtB;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,
|
|
1
|
+
{"version":3,"file":"MorphoLendProvider.js","sourceRoot":"","sources":["../../../../src/lend/providers/morpho/MorphoLendProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,6 @@ describe('MorphoLendProvider', () => {
|
|
|
29
29
|
let mockChainManager;
|
|
30
30
|
beforeEach(() => {
|
|
31
31
|
mockConfig = {
|
|
32
|
-
provider: 'morpho',
|
|
33
|
-
defaultSlippage: 50,
|
|
34
32
|
marketAllowlist: [MockGauntletUSDCMarket, MockWETHMarket],
|
|
35
33
|
};
|
|
36
34
|
mockChainManager = new MockChainManager();
|
|
@@ -40,14 +38,6 @@ describe('MorphoLendProvider', () => {
|
|
|
40
38
|
it('should initialize with provided config', () => {
|
|
41
39
|
expect(provider).toBeInstanceOf(MorphoLendProvider);
|
|
42
40
|
});
|
|
43
|
-
it('should use default slippage when not provided', () => {
|
|
44
|
-
const configWithoutSlippage = {
|
|
45
|
-
...mockConfig,
|
|
46
|
-
defaultSlippage: undefined,
|
|
47
|
-
};
|
|
48
|
-
const providerWithDefaults = new MorphoLendProvider(configWithoutSlippage, mockChainManager);
|
|
49
|
-
expect(providerWithDefaults).toBeInstanceOf(MorphoLendProvider);
|
|
50
|
-
});
|
|
51
41
|
});
|
|
52
42
|
describe('closePosition', () => {
|
|
53
43
|
beforeEach(() => {
|
|
@@ -206,17 +196,12 @@ describe('MorphoLendProvider', () => {
|
|
|
206
196
|
});
|
|
207
197
|
describe('market allowlist configuration', () => {
|
|
208
198
|
it('should work without market allowlist', () => {
|
|
209
|
-
const configWithoutAllowlist = {
|
|
210
|
-
provider: 'morpho',
|
|
211
|
-
defaultSlippage: 50,
|
|
212
|
-
};
|
|
199
|
+
const configWithoutAllowlist = {};
|
|
213
200
|
const providerWithoutAllowlist = new MorphoLendProvider(configWithoutAllowlist, mockChainManager);
|
|
214
201
|
expect(providerWithoutAllowlist.config.marketAllowlist).toBeUndefined();
|
|
215
202
|
});
|
|
216
203
|
it('should store market allowlist when provided', () => {
|
|
217
204
|
const configWithAllowlist = {
|
|
218
|
-
provider: 'morpho',
|
|
219
|
-
defaultSlippage: 50,
|
|
220
205
|
marketAllowlist: [MockGauntletUSDCMarket],
|
|
221
206
|
};
|
|
222
207
|
const providerWithAllowlist = new MorphoLendProvider(configWithAllowlist, mockChainManager);
|
|
@@ -226,25 +211,8 @@ describe('MorphoLendProvider', () => {
|
|
|
226
211
|
expect(allowlist[0].address).toBe(MockGauntletUSDCMarket.address);
|
|
227
212
|
expect(allowlist[0].name).toBe(MockGauntletUSDCMarket.name);
|
|
228
213
|
});
|
|
229
|
-
it('should use default slippage from config', () => {
|
|
230
|
-
const customSlippage = 150;
|
|
231
|
-
const configWithSlippage = {
|
|
232
|
-
provider: 'morpho',
|
|
233
|
-
defaultSlippage: customSlippage,
|
|
234
|
-
};
|
|
235
|
-
const providerWithSlippage = new MorphoLendProvider(configWithSlippage, mockChainManager);
|
|
236
|
-
expect(providerWithSlippage.config.defaultSlippage).toBe(customSlippage);
|
|
237
|
-
});
|
|
238
|
-
it('should use fallback default slippage when not provided', () => {
|
|
239
|
-
const configWithoutSlippage = {
|
|
240
|
-
provider: 'morpho',
|
|
241
|
-
};
|
|
242
|
-
const providerWithoutSlippage = new MorphoLendProvider(configWithoutSlippage, mockChainManager);
|
|
243
|
-
expect(providerWithoutSlippage.config.defaultSlippage || 50).toBe(50); // Default fallback
|
|
244
|
-
});
|
|
245
214
|
it('should handle multiple markets in allowlist', () => {
|
|
246
215
|
const configWithMultipleMarkets = {
|
|
247
|
-
provider: 'morpho',
|
|
248
216
|
marketAllowlist: [MockGauntletUSDCMarket, MockWETHMarket],
|
|
249
217
|
};
|
|
250
218
|
const provider = new MorphoLendProvider(configWithMultipleMarkets, mockChainManager);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MorphoLendProvider.test.js","sourceRoot":"","sources":["../../../../../src/lend/providers/morpho/__tests__/MorphoLendProvider.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAA;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAA;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,GACf,MAAM,uBAAuB,CAAA;AAG9B,8BAA8B;AAC9B,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;IACpB,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1B,gBAAgB,EAAE;QAChB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC;QAC1C,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC;KAC5C;CACF,CAAC,CAAC,CAAA;AAEH,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE;QACJ,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;KAC9D;CACF,CAAC,CAAC,CAAA;AAEH,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;IACvB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;IACvB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;CACtB,CAAC,CAAC,CAAA;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,QAA4B,CAAA;IAChC,IAAI,
|
|
1
|
+
{"version":3,"file":"MorphoLendProvider.test.js","sourceRoot":"","sources":["../../../../../src/lend/providers/morpho/__tests__/MorphoLendProvider.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAA;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAA;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,GACf,MAAM,uBAAuB,CAAA;AAG9B,8BAA8B;AAC9B,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;IACpB,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1B,gBAAgB,EAAE;QAChB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC;QAC1C,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC;KAC5C;CACF,CAAC,CAAC,CAAA;AAEH,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE;QACJ,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;KAC9D;CACF,CAAC,CAAC,CAAA;AAEH,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;IACvB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;IACvB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;CACtB,CAAC,CAAC,CAAA;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,QAA4B,CAAA;IAChC,IAAI,UAA8B,CAAA;IAClC,IAAI,gBAA8B,CAAA;IAElC,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG;YACX,eAAe,EAAE,CAAC,sBAAsB,EAAE,cAAc,CAAC;SAC1D,CAAA;QAED,gBAAgB,GAAG,IAAI,gBAAgB,EAA6B,CAAA;QAEpE,QAAQ,GAAG,IAAI,kBAAkB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAA;YAEzC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,SAAgB,CAAC,CAAA;YAEhE,EAAE,CAAC,UAAU,CACX,OAAO,EACP,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACxB,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,IAAI,EAAE;wBACJ,cAAc,EAAE;4BACd,KAAK,EAAE;gCACL,OAAO,EAAE,EAAE;gCACX,UAAU,EAAE,EAAE;6BACf;yBACF;qBACF;iBACF,CAAC;aACI,CAAC,CACV,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,GAAG,EAAE;YACb,EAAE,CAAC,gBAAgB,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,MAAM,GAAG,GAAG,CAAA;YAClB,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAA;YAC1C,MAAM,QAAQ,GAAG;gBACf,OAAO,EAAE,sBAAsB,CAAC,OAAO;gBACvC,OAAO,EAAE,sBAAsB,CAAC,OAAO;aACxC,CAAA;YACD,MAAM,aAAa,GAAG,mBAAmB,CAAA;YAEzC,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC;gBACvD,MAAM;gBACN,KAAK;gBACL,QAAQ;gBACR,aAAa;aACd,CAAC,CAAA;YAEF,MAAM,CAAC,mBAAmB,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;YACzE,MAAM,CAAC,mBAAmB,CAAC,CAAC,cAAc,CACxC,OAAO,EACP,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAChC,CAAA;YACD,MAAM,CAAC,mBAAmB,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;YACxE,MAAM,CAAC,mBAAmB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;YACjD,MAAM,CAAC,mBAAmB,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAA;YAC7D,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,cAAc,CACxD,eAAe,CAChB,CAAA;YACD,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;YAC1E,MAAM,CAAC,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACrD,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,EAAE,CAAC,KAAK,CAAC,QAAe,EAAE,YAAY,CAAC,CAAC,qBAAqB,CAC3D,IAAI,KAAK,CAAC,qBAAqB,CAAC,CACjC,CAAA;YAED,MAAM,MAAM,GAAG,GAAG,CAAA;YAClB,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAA;YAC1C,MAAM,QAAQ,GAAG;gBACf,OAAO,EAAE,sBAAsB,CAAC,OAAO;gBACvC,OAAO,EAAE,sBAAsB,CAAC,OAAO;aACxC,CAAA;YACD,MAAM,aAAa,GAAG,mBAAmB,CAAA;YAEzC,MAAM,MAAM,CACV,QAAQ,CAAC,aAAa,CAAC;gBACrB,MAAM;gBACN,KAAK;gBACL,QAAQ;gBACR,aAAa;aACd,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAA;YAE7C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA,CAAC,WAAW;YAC3C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAA;YAC7C,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;YAExC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAA;YAEzC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,SAAgB,CAAC,CAAA;YAEhE,iCAAiC;YACjC,EAAE,CAAC,UAAU,CACX,OAAO,EACP,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACxB,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,IAAI,EAAE;wBACJ,cAAc,EAAE;4BACd,KAAK,EAAE;gCACL,OAAO,EAAE,EAAE;gCACX,UAAU,EAAE,EAAE;6BACf;yBACF;qBACF;iBACF,CAAC;aACI,CAAC,CACV,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,GAAG,EAAE;YACb,EAAE,CAAC,gBAAgB,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,MAAM,GAAG,IAAI,CAAA;YACnB,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAA;YAC1C,MAAM,QAAQ,GAAG;gBACf,OAAO,EAAE,sBAAsB,CAAC,OAAO;gBACvC,OAAO,EAAE,sBAAsB,CAAC,OAAO;aACxC,CAAA;YAED,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBAClD,MAAM;gBACN,KAAK;gBACL,QAAQ;gBACR,aAAa,EAAE,mBAAmB;aACnC,CAAC,CAAA;YAEF,MAAM,CAAC,eAAe,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;YACtE,MAAM,CAAC,eAAe,CAAC,CAAC,cAAc,CACpC,OAAO,EACP,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAChC,CAAA;YACD,MAAM,CAAC,eAAe,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;YACpE,MAAM,CAAC,eAAe,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;YAC7C,MAAM,CAAC,eAAe,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAA;YACzD,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;YAClE,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;YACtE,MAAM,CAAC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACjD,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,EAAE,CAAC,KAAK,CAAC,QAAe,EAAE,YAAY,CAAC,CAAC,qBAAqB,CAC3D,IAAI,KAAK,CAAC,qBAAqB,CAAC,CACjC,CAAA;YAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAA;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAA;YACnB,MAAM,QAAQ,GAAG;gBACf,OAAO,EAAE,sBAAsB,CAAC,OAAO;gBACvC,OAAO,EAAE,sBAAsB,CAAC,OAAO;aACxC,CAAA;YAED,MAAM,MAAM,CACV,QAAQ,CAAC,YAAY,CAAC;gBACpB,MAAM;gBACN,KAAK;gBACL,QAAQ;gBACR,aAAa,EAAE,mBAAmB;aACnC,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,MAAM,GAAG,IAAI,CAAA;YACnB,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAA;YAC1C,MAAM,QAAQ,GAAG;gBACf,OAAO,EAAE,sBAAsB,CAAC,OAAO;gBACvC,OAAO,EAAE,sBAAsB,CAAC,OAAO;aACxC,CAAA;YACD,MAAM,cAAc,GAAG,GAAG,CAAA,CAAC,KAAK;YAEhC,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBAClD,MAAM;gBACN,KAAK;gBACL,QAAQ;gBACR,aAAa,EAAE,mBAAmB;gBAClC,OAAO,EAAE;oBACP,QAAQ,EAAE,cAAc;iBACzB;aACF,CAAC,CAAA;YAEF,MAAM,CAAC,eAAe,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;QACxE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,sBAAsB,GAAuB,EAAE,CAAA;YAErD,MAAM,wBAAwB,GAAG,IAAI,kBAAkB,CACrD,sBAAsB,EACtB,gBAAgB,CACjB,CAAA;YAED,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE,CAAA;QACzE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,mBAAmB,GAAuB;gBAC9C,eAAe,EAAE,CAAC,sBAAsB,CAAC;aAC1C,CAAA;YAED,MAAM,qBAAqB,GAAG,IAAI,kBAAkB,CAClD,mBAAmB,EACnB,gBAAgB,CACjB,CAAA;YAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,eAAe,CAAA;YAC9D,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAA;YAC/B,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;YAClE,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,yBAAyB,GAAuB;gBACpD,eAAe,EAAE,CAAC,sBAAsB,EAAE,cAAc,CAAC;aAC1D,CAAA;YAED,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CACrC,yBAAyB,EACzB,gBAAgB,CACjB,CAAA;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAA;YACjD,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAA;YAC/B,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;YAC5D,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|