@augustdigital/sdk 4.1.0-alpha → 4.1.0-beta

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.
Files changed (251) hide show
  1. package/README.md +169 -11
  2. package/lib/__tests__/adapter.e2e.test.d.ts +1 -0
  3. package/lib/__tests__/adapter.e2e.test.js +94 -0
  4. package/lib/__tests__/adapter.e2e.test.js.map +1 -0
  5. package/lib/abis/Multicall3.js.map +1 -1
  6. package/lib/abis/PoolAdapter.d.ts +36 -76
  7. package/lib/abis/PoolAdapter.js +18 -379
  8. package/lib/abis/PoolAdapter.js.map +1 -1
  9. package/lib/abis/WrapperAdapter.d.ts +71 -60
  10. package/lib/abis/WrapperAdapter.js +41 -114
  11. package/lib/abis/WrapperAdapter.js.map +1 -1
  12. package/lib/abis/index.d.ts +3 -0
  13. package/lib/abis/index.js +3 -0
  14. package/lib/abis/index.js.map +1 -1
  15. package/lib/adapters/evm/getters.d.ts +1 -1
  16. package/lib/adapters/evm/getters.js +26 -37
  17. package/lib/adapters/evm/getters.js.map +1 -1
  18. package/lib/adapters/evm/index.d.ts +3 -3
  19. package/lib/adapters/evm/index.js +9 -10
  20. package/lib/adapters/evm/index.js.map +1 -1
  21. package/lib/adapters/evm/utils.d.ts +2 -28
  22. package/lib/adapters/evm/utils.js +29 -322
  23. package/lib/adapters/evm/utils.js.map +1 -1
  24. package/lib/adapters/solana/getters.js +33 -26
  25. package/lib/adapters/solana/getters.js.map +1 -1
  26. package/lib/adapters/solana/index.d.ts +25 -1
  27. package/lib/adapters/solana/utils.d.ts +13 -1
  28. package/lib/adapters/solana/utils.js +65 -16
  29. package/lib/adapters/solana/utils.js.map +1 -1
  30. package/lib/core/auth/verify.js +2 -2
  31. package/lib/core/auth/verify.js.map +1 -1
  32. package/lib/core/base.class.d.ts +1 -2
  33. package/lib/core/base.class.js +11 -6
  34. package/lib/core/base.class.js.map +1 -1
  35. package/lib/core/constants.adapters.d.ts +89 -0
  36. package/lib/core/constants.adapters.js +160 -0
  37. package/lib/core/constants.adapters.js.map +1 -0
  38. package/lib/{utils/constants/august.d.ts → core/constants.core.d.ts} +3 -1
  39. package/lib/{utils/constants/august.js → core/constants.core.js} +4 -2
  40. package/lib/core/constants.core.js.map +1 -0
  41. package/lib/core/constants.d.ts +2 -0
  42. package/lib/core/constants.js +3 -1
  43. package/lib/core/constants.js.map +1 -1
  44. package/lib/core/constants.vaults.d.ts +19 -0
  45. package/lib/{utils/vaults.js → core/constants.vaults.js} +49 -75
  46. package/lib/core/constants.vaults.js.map +1 -0
  47. package/lib/{utils/constants/web3.d.ts → core/constants.web3.d.ts} +4 -6
  48. package/lib/{utils/constants/web3.js → core/constants.web3.js} +15 -27
  49. package/lib/core/constants.web3.js.map +1 -0
  50. package/lib/core/fetcher.d.ts +1 -1
  51. package/lib/core/fetcher.js +177 -64
  52. package/lib/core/fetcher.js.map +1 -1
  53. package/lib/core/helpers.adapters.d.ts +4 -0
  54. package/lib/core/helpers.adapters.js +28 -0
  55. package/lib/core/helpers.adapters.js.map +1 -0
  56. package/lib/core/helpers.core.d.ts +1 -1
  57. package/lib/core/helpers.core.js +6 -6
  58. package/lib/core/helpers.core.js.map +1 -1
  59. package/lib/core/helpers.vaults.d.ts +15 -0
  60. package/lib/core/helpers.vaults.js +120 -0
  61. package/lib/core/helpers.vaults.js.map +1 -0
  62. package/lib/core/helpers.web3.d.ts +5 -2
  63. package/lib/core/helpers.web3.js +75 -25
  64. package/lib/core/helpers.web3.js.map +1 -1
  65. package/lib/core/index.d.ts +8 -5
  66. package/lib/core/index.js +8 -5
  67. package/lib/core/index.js.map +1 -1
  68. package/lib/core/logger/index.d.ts +9 -0
  69. package/lib/core/logger/index.js +29 -0
  70. package/lib/core/logger/index.js.map +1 -1
  71. package/lib/core/logger/slack.js +3 -3
  72. package/lib/core/vault.utils.d.ts +4 -0
  73. package/lib/core/vault.utils.js +35 -0
  74. package/lib/core/vault.utils.js.map +1 -0
  75. package/lib/core/web3.helpers.d.ts +1 -0
  76. package/lib/core/web3.helpers.js +32 -3
  77. package/lib/core/web3.helpers.js.map +1 -1
  78. package/lib/index.d.ts +6 -6
  79. package/lib/index.js +14 -7
  80. package/lib/index.js.map +1 -1
  81. package/lib/main.d.ts +88 -14
  82. package/lib/main.js +54 -17
  83. package/lib/main.js.map +1 -1
  84. package/lib/modules/vaults/adapter.helpers.d.ts +46 -0
  85. package/lib/modules/vaults/adapter.helpers.js +149 -0
  86. package/lib/modules/vaults/adapter.helpers.js.map +1 -0
  87. package/lib/modules/vaults/constants.d.ts +7 -7
  88. package/lib/modules/vaults/constants.js +11 -15
  89. package/lib/modules/vaults/constants.js.map +1 -1
  90. package/lib/{vaults/utils.d.ts → modules/vaults/fetcher.d.ts} +0 -20
  91. package/lib/{vaults/utils.js → modules/vaults/fetcher.js} +19 -176
  92. package/lib/modules/vaults/fetcher.js.map +1 -0
  93. package/lib/modules/vaults/getters.d.ts +32 -3
  94. package/lib/modules/vaults/getters.js +367 -71
  95. package/lib/modules/vaults/getters.js.map +1 -1
  96. package/lib/modules/vaults/index.d.ts +2 -83
  97. package/lib/modules/vaults/index.js +2 -480
  98. package/lib/modules/vaults/index.js.map +1 -1
  99. package/lib/modules/vaults/main.d.ts +27 -47
  100. package/lib/modules/vaults/main.js +127 -198
  101. package/lib/modules/vaults/main.js.map +1 -1
  102. package/lib/modules/vaults/read.actions.d.ts +3 -0
  103. package/lib/{adapters/evm → modules/vaults}/read.actions.js +12 -12
  104. package/lib/modules/vaults/read.actions.js.map +1 -0
  105. package/lib/modules/vaults/utils.d.ts +2 -106
  106. package/lib/modules/vaults/utils.js +132 -337
  107. package/lib/modules/vaults/utils.js.map +1 -1
  108. package/lib/modules/vaults/{user.actions.d.ts → write.actions.d.ts} +12 -2
  109. package/lib/modules/vaults/write.actions.js +291 -0
  110. package/lib/modules/vaults/write.actions.js.map +1 -0
  111. package/lib/services/debank/utils.js +4 -4
  112. package/lib/services/subgraph/fetcher.js +3 -2
  113. package/lib/services/subgraph/fetcher.js.map +1 -1
  114. package/lib/services/subgraph/vaults.js +25 -27
  115. package/lib/services/subgraph/vaults.js.map +1 -1
  116. package/lib/types/pools.d.ts +1 -1
  117. package/lib/types/vaults.d.ts +19 -0
  118. package/lib/types/webserver.d.ts +15 -1
  119. package/package.json +16 -10
  120. package/lib/adapters/evm/core.actions.d.ts +0 -9
  121. package/lib/adapters/evm/core.actions.js +0 -51
  122. package/lib/adapters/evm/core.actions.js.map +0 -1
  123. package/lib/adapters/evm/read.actions.d.ts +0 -3
  124. package/lib/adapters/evm/read.actions.js.map +0 -1
  125. package/lib/adapters/evm/vaults.actions.d.ts +0 -10
  126. package/lib/adapters/evm/vaults.actions.js +0 -97
  127. package/lib/adapters/evm/vaults.actions.js.map +0 -1
  128. package/lib/adapters/solana/actions.d.ts +0 -20
  129. package/lib/adapters/solana/actions.js +0 -225
  130. package/lib/adapters/solana/actions.js.map +0 -1
  131. package/lib/adapters/solana/class.d.ts +0 -45
  132. package/lib/adapters/solana/class.js +0 -135
  133. package/lib/adapters/solana/class.js.map +0 -1
  134. package/lib/adapters/solana/vault-idl.d.ts +0 -338
  135. package/lib/adapters/solana/vault-idl.js +0 -1075
  136. package/lib/adapters/solana/vault-idl.js.map +0 -1
  137. package/lib/core/base-class.d.ts +0 -34
  138. package/lib/core/base-class.js +0 -55
  139. package/lib/core/base-class.js.map +0 -1
  140. package/lib/core/helpers.d.ts +0 -23
  141. package/lib/core/helpers.js +0 -210
  142. package/lib/core/helpers.js.map +0 -1
  143. package/lib/modules/vaults/admin-actions.d.ts +0 -0
  144. package/lib/modules/vaults/admin-actions.js +0 -1
  145. package/lib/modules/vaults/admin-actions.js.map +0 -1
  146. package/lib/modules/vaults/user-actions.d.ts +0 -19
  147. package/lib/modules/vaults/user-actions.js +0 -172
  148. package/lib/modules/vaults/user-actions.js.map +0 -1
  149. package/lib/modules/vaults/user.actions.js +0 -95
  150. package/lib/modules/vaults/user.actions.js.map +0 -1
  151. package/lib/services/auth/index.d.ts +0 -1
  152. package/lib/services/auth/index.js +0 -18
  153. package/lib/services/auth/index.js.map +0 -1
  154. package/lib/services/auth/verify.d.ts +0 -2
  155. package/lib/services/auth/verify.js +0 -20
  156. package/lib/services/auth/verify.js.map +0 -1
  157. package/lib/services/index.d.ts +0 -4
  158. package/lib/services/index.js +0 -21
  159. package/lib/services/index.js.map +0 -1
  160. package/lib/services/logger/index.d.ts +0 -12
  161. package/lib/services/logger/index.js +0 -51
  162. package/lib/services/logger/index.js.map +0 -1
  163. package/lib/services/logger/slack.d.ts +0 -12
  164. package/lib/services/logger/slack.js +0 -48
  165. package/lib/services/logger/slack.js.map +0 -1
  166. package/lib/services/solana/actions.d.ts +0 -20
  167. package/lib/services/solana/actions.js +0 -225
  168. package/lib/services/solana/actions.js.map +0 -1
  169. package/lib/services/solana/class.d.ts +0 -45
  170. package/lib/services/solana/class.js +0 -135
  171. package/lib/services/solana/class.js.map +0 -1
  172. package/lib/services/solana/constants.d.ts +0 -25
  173. package/lib/services/solana/constants.js +0 -32
  174. package/lib/services/solana/constants.js.map +0 -1
  175. package/lib/services/solana/index.d.ts +0 -84
  176. package/lib/services/solana/index.js +0 -50
  177. package/lib/services/solana/index.js.map +0 -1
  178. package/lib/services/solana/types.d.ts +0 -58
  179. package/lib/services/solana/types.js +0 -3
  180. package/lib/services/solana/types.js.map +0 -1
  181. package/lib/services/solana/utils.d.ts +0 -96
  182. package/lib/services/solana/utils.js +0 -355
  183. package/lib/services/solana/utils.js.map +0 -1
  184. package/lib/services/solana/vault-idl.d.ts +0 -338
  185. package/lib/services/solana/vault-idl.js +0 -1075
  186. package/lib/services/solana/vault-idl.js.map +0 -1
  187. package/lib/utils/base-class.d.ts +0 -34
  188. package/lib/utils/base-class.js +0 -55
  189. package/lib/utils/base-class.js.map +0 -1
  190. package/lib/utils/constants/august.js.map +0 -1
  191. package/lib/utils/constants/fallbacks.d.ts +0 -3
  192. package/lib/utils/constants/fallbacks.js +0 -26
  193. package/lib/utils/constants/fallbacks.js.map +0 -1
  194. package/lib/utils/constants/index.d.ts +0 -3
  195. package/lib/utils/constants/index.js +0 -20
  196. package/lib/utils/constants/index.js.map +0 -1
  197. package/lib/utils/constants/web3.js.map +0 -1
  198. package/lib/utils/fetcher.d.ts +0 -25
  199. package/lib/utils/fetcher.js +0 -334
  200. package/lib/utils/fetcher.js.map +0 -1
  201. package/lib/utils/helpers/array.d.ts +0 -6
  202. package/lib/utils/helpers/array.js +0 -40
  203. package/lib/utils/helpers/array.js.map +0 -1
  204. package/lib/utils/helpers/datetime.d.ts +0 -5
  205. package/lib/utils/helpers/datetime.js +0 -32
  206. package/lib/utils/helpers/datetime.js.map +0 -1
  207. package/lib/utils/helpers/formatters.d.ts +0 -8
  208. package/lib/utils/helpers/formatters.js +0 -113
  209. package/lib/utils/helpers/formatters.js.map +0 -1
  210. package/lib/utils/helpers/index.d.ts +0 -6
  211. package/lib/utils/helpers/index.js +0 -23
  212. package/lib/utils/helpers/index.js.map +0 -1
  213. package/lib/utils/helpers/responses.d.ts +0 -32
  214. package/lib/utils/helpers/responses.js +0 -229
  215. package/lib/utils/helpers/responses.js.map +0 -1
  216. package/lib/utils/helpers/verify-keys.d.ts +0 -2
  217. package/lib/utils/helpers/verify-keys.js +0 -21
  218. package/lib/utils/helpers/verify-keys.js.map +0 -1
  219. package/lib/utils/helpers/web3.d.ts +0 -27
  220. package/lib/utils/helpers/web3.js +0 -339
  221. package/lib/utils/helpers/web3.js.map +0 -1
  222. package/lib/utils/index.d.ts +0 -5
  223. package/lib/utils/index.js +0 -22
  224. package/lib/utils/index.js.map +0 -1
  225. package/lib/utils/vaults.d.ts +0 -53
  226. package/lib/utils/vaults.js.map +0 -1
  227. package/lib/vaults/admin-actions.d.ts +0 -0
  228. package/lib/vaults/admin-actions.js +0 -1
  229. package/lib/vaults/admin-actions.js.map +0 -1
  230. package/lib/vaults/getters.d.ts +0 -38
  231. package/lib/vaults/getters.js +0 -760
  232. package/lib/vaults/getters.js.map +0 -1
  233. package/lib/vaults/index.d.ts +0 -4
  234. package/lib/vaults/index.js +0 -21
  235. package/lib/vaults/index.js.map +0 -1
  236. package/lib/vaults/main.d.ts +0 -118
  237. package/lib/vaults/main.js +0 -591
  238. package/lib/vaults/main.js.map +0 -1
  239. package/lib/vaults/rpc-config.d.ts +0 -4
  240. package/lib/vaults/rpc-config.js +0 -27
  241. package/lib/vaults/rpc-config.js.map +0 -1
  242. package/lib/vaults/subgraph.d.ts +0 -10
  243. package/lib/vaults/subgraph.js +0 -470
  244. package/lib/vaults/subgraph.js.map +0 -1
  245. package/lib/vaults/user-actions.d.ts +0 -19
  246. package/lib/vaults/user-actions.js +0 -172
  247. package/lib/vaults/user-actions.js.map +0 -1
  248. package/lib/vaults/utils.js.map +0 -1
  249. package/lib/verify.d.ts +0 -2
  250. package/lib/verify.js +0 -20
  251. package/lib/verify.js.map +0 -1
package/README.md CHANGED
@@ -1,23 +1,181 @@
1
1
  # August Digital SDK
2
2
 
3
- This repo serves as the JS SDK powering the August Digital ecosystem that can easily be used in your web app.
3
+ TypeScript SDK for interacting with August Digital vaults across EVM and Solana chains.
4
4
 
5
- ** Note: there is not much logic found in this repo. Simply a centralized location that exports all other packages' logic. **
5
+ ## Quick Start
6
6
 
7
- ## Available Modules
7
+ ```typescript
8
+ import { AugustSDK } from '@augustdigital/sdk';
8
9
 
9
- This repo, by default, exports the SDK class in addition to other helpful, stand-alone methods and variables that are commonly used.
10
+ // Initialize with RPC providers
11
+ const sdk = new AugustSDK({
12
+ providers: {
13
+ 1: 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY',
14
+ 42161: 'https://arb-mainnet.g.alchemy.com/v2/YOUR_KEY',
15
+ -1: 'https://api.mainnet-beta.solana.com', // Solana
16
+ },
17
+ keys: {
18
+ august: 'YOUR_API_KEY', // Optional
19
+ },
20
+ monitoring: {
21
+ env: 'DEV', // Optional: 'DEV' enables console logging (defaults to 'PROD')
22
+ },
23
+ });
10
24
 
11
- The default exported class is primarily used to fetch data respective to your initialization configuration.
25
+ // Fetch all vaults
26
+ const vaults = await sdk.getVaults();
12
27
 
13
- Other stand-alone methods and variables are also exported including all items from "@augustdigital/utils". Additionally, all ABIs and interfaces are exported from here with "ABI\_" and "I" prefixes.
28
+ // Fetch specific vault with loans and allocations
29
+ const vault = await sdk.getVault({
30
+ vault: '0x...',
31
+ options: { loans: true, allocations: true }
32
+ });
14
33
 
15
- ## Usage
34
+ // Get user positions
35
+ const positions = await sdk.getVaultPositions({
36
+ wallet: '0x...',
37
+ showAllVaults: true,
38
+ });
39
+ ```
40
+
41
+ ## Architecture
42
+
43
+ ```
44
+ src.ts/
45
+ ├── main.ts # Main SDK class (AugustSDK)
46
+ ├── core/ # Base utilities
47
+ │ ├── base.class.ts # Base SDK functionality
48
+ │ ├── fetcher.ts # API client with retry logic
49
+ │ └── web3.helpers.ts # Blockchain utilities
50
+ ├── adapters/ # Chain-specific implementations
51
+ │ ├── evm/ # EVM vault adapters (v1, v2)
52
+ │ └── solana/ # Solana program adapters
53
+ ├── modules/ # Feature modules
54
+ │ └── vaults/ # Vault operations
55
+ │ ├── main.ts # AugustVaults class
56
+ │ ├── getters.ts # Data fetching functions
57
+ │ └── utils.ts # Helper utilities
58
+ ├── services/ # External service integrations
59
+ │ ├── debank/ # DeFi allocation data
60
+ │ ├── coingecko/ # Token pricing
61
+ │ └── subgraph/ # Historical transaction data
62
+ └── types/ # TypeScript interfaces
63
+ ```
64
+
65
+ ## Key Concepts
66
+
67
+ ### Multi-Chain Support
68
+
69
+ - **EVM Chains**: Ethereum, Arbitrum, Base, BSC, Avalanche
70
+ - **Solana**: Native Solana program support
71
+ - Unified interface across all chains
72
+
73
+ ### Vault Versions
74
+
75
+ - `evm-0/evm-1`: Legacy vault contracts
76
+ - `evm-2`: Current EVM vault architecture (separate receipt tokens)
77
+ - `sol-0`: Solana program-based vaults
78
+
79
+ ### Data Enrichment
80
+
81
+ All vault queries support optional enrichment:
82
+
83
+ - `loans`: Include active loan data
84
+ - `allocations`: DeFi/CeFi/OTC position breakdowns
85
+ - `wallet`: User-specific position data
86
+
87
+ ## Code Conventions
88
+
89
+ ### Naming Patterns
90
+
91
+ - **Interfaces**: Prefixed with `I` (e.g., `IVault`, `IVaultLoan`)
92
+ - **ABIs**: Prefixed with `ABI_` (e.g., `ABI_LENDING_POOL_V2`)
93
+ - **Types**: Descriptive names (e.g., `IAddress`, `IChainId`)
94
+
95
+ ### Important Tags
96
+
97
+ Search codebase for these comments to find areas needing attention:
98
+
99
+ - `@todo`: Planned improvements or missing features
100
+ - `@hardcoded`: Hardcoded values that may need configuration
101
+ - `@solana`: Solana-specific logic or notes
102
+
103
+ ### Error Handling
104
+
105
+ - Automatic retry logic for network errors with exponential backoff
106
+ - 90-second request timeout (configurable via `REQUEST_TIMEOUT_MS`)
107
+ - Correlation IDs logged for debugging failed requests
108
+ - Write actions throw errors instead of silent failures
16
109
 
17
- Default exported class initialization and then fetching a lending pool:
110
+ ### Environment Configuration
18
111
 
19
- ```javascript
20
- import AugustDigitalSDK from '@augustdigital/sdk';
112
+ ```typescript
113
+ // Development mode (enables console logging)
114
+ const devSdk = new AugustSDK({
115
+ providers: {
116
+ /* ... */
117
+ },
118
+ monitoring: {
119
+ env: 'DEV',
120
+ },
121
+ });
21
122
 
22
- await new AugustDigitalSDK(config).pools.getPool(POOL_ADDRESS);
123
+ // Production mode (default - no console logs)
124
+ const prodSdk = new AugustSDK({
125
+ providers: {
126
+ /* ... */
127
+ },
128
+ // monitoring is optional - defaults to PROD
129
+ });
23
130
  ```
131
+
132
+ - `env: 'DEV'` - Enables console logging for debugging
133
+ - `env: 'PROD'` or omitted - Disables console, uses custom logger only (safer default)
134
+
135
+ ## API Reference
136
+
137
+ ### Main Methods
138
+
139
+ #### Vault Queries
140
+
141
+ - `getVaults(options?)`: Fetch all vaults across chains
142
+ - `getVault({ vault, chainId?, options? })`: Get single vault details
143
+ - `getVaultLoans({ vault, chainId })`: Fetch active loans
144
+ - `getVaultAllocations({ vault, chainId })`: Get allocation breakdown
145
+ - `getVaultApy({ vault, historical? })`: Current/historical APY
146
+ - `getVaultTvl({ vault, historical? })`: Current/historical TVL
147
+
148
+ #### User Positions
149
+
150
+ - `getVaultPositions({ wallet?, vault?, chainId? })`: User vault positions
151
+ - `getVaultAvailableRedemptions({ vault, wallet?, chainId })`: Claimable redemptions
152
+ - `getVaultUserHistory({ wallet, vault?, chainId? })`: Transaction history
153
+ - `getVaultStakingPositions({ wallet, chainId })`: Staking positions
154
+
155
+ #### Utilities
156
+
157
+ - `getPrice(symbol)`: Get token price in USD
158
+ - `switchNetwork(chainId)`: Change active chain
159
+ - `updateWallet(address)`: Set active wallet for tracking
160
+
161
+ ## Development
162
+
163
+ ### Running Tests
164
+
165
+ ```bash
166
+ pnpm test
167
+ ```
168
+
169
+ ### Building
170
+
171
+ ```bash
172
+ pnpm build
173
+ ```
174
+
175
+ ### Type Checking
176
+
177
+ All exports are fully typed. Use TypeScript for best developer experience.
178
+
179
+ ## Support
180
+
181
+ For issues or questions, refer to the [main repository](https://github.com/fractal-protocol/js-sdk) or contact the August Digital team.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constants_adapters_1 = require("../core/constants.adapters");
4
+ describe('Adapter E2E Tests', () => {
5
+ describe('Adapter Configuration', () => {
6
+ it('should return adapter config for supported vaults', () => {
7
+ const vault = '0x5Fde59415625401278c4d41C6beFCe3790eb357f';
8
+ const config = (0, constants_adapters_1.getVaultAdapterConfig)(vault);
9
+ expect(config).toBeDefined();
10
+ expect(config?.isNativeTokenDeposit).toBe(true);
11
+ expect(config?.tokens).toHaveLength(3);
12
+ expect(config?.wrapperAddress).toBeDefined();
13
+ });
14
+ it('should return undefined for vaults without adapters', () => {
15
+ const vault = '0x0000000000000000000000000000000000000000';
16
+ const config = (0, constants_adapters_1.getVaultAdapterConfig)(vault);
17
+ expect(config).toBeUndefined();
18
+ });
19
+ });
20
+ describe('Deposit Token Discovery', () => {
21
+ it('should return all supported tokens for Treehouse vault', () => {
22
+ const vault = '0x5Fde59415625401278c4d41C6beFCe3790eb357f';
23
+ const underlying = '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0';
24
+ const tokens = (0, constants_adapters_1.getVaultDepositTokens)(vault, underlying);
25
+ expect(tokens.length).toBeGreaterThan(1);
26
+ expect(tokens[0]).toBe(underlying);
27
+ expect(tokens).toContain('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2');
28
+ expect(tokens).toContain('0x0000000000000000000000000000000000000000');
29
+ });
30
+ it('should return only underlying for vaults without adapters', () => {
31
+ const vault = '0x0000000000000000000000000000000000000000';
32
+ const underlying = '0x1111111111111111111111111111111111111111';
33
+ const tokens = (0, constants_adapters_1.getVaultDepositTokens)(vault, underlying);
34
+ expect(tokens).toHaveLength(1);
35
+ expect(tokens[0]).toBe(underlying);
36
+ });
37
+ });
38
+ describe('Adapter Types', () => {
39
+ it('should identify native deposit vaults', () => {
40
+ const nativeVaults = [
41
+ '0xB2bFb52cfc40584AC4e9e2B36a5B8d6554A56e0b',
42
+ '0x5Fde59415625401278c4d41C6beFCe3790eb357f',
43
+ '0x419386E3Ef42368e602720CC458e00c0B28c47A7',
44
+ ];
45
+ nativeVaults.forEach((vault) => {
46
+ const config = (0, constants_adapters_1.getVaultAdapterConfig)(vault);
47
+ expect(config?.isNativeTokenDeposit).toBe(true);
48
+ expect(config?.wrapperAddress).toBeDefined();
49
+ });
50
+ });
51
+ it('should identify swap adapter vaults', () => {
52
+ const swapVault = '0x8AcA0841993ef4C87244d519166e767f49362C21';
53
+ const config = (0, constants_adapters_1.getVaultAdapterConfig)(swapVault);
54
+ expect(config?.bridgeId).toBe(2);
55
+ expect(config?.tokens).toHaveLength(3);
56
+ });
57
+ it('should identify multi-asset vaults', () => {
58
+ const multiAsset = '0x18EE038C114a07f4B08b420fb1E4149a4F357249';
59
+ const config = (0, constants_adapters_1.getVaultAdapterConfig)(multiAsset);
60
+ expect(config?.viewAdapter).toBeDefined();
61
+ expect(config?.lpTokenAddress).toBeDefined();
62
+ });
63
+ });
64
+ describe('Full Adapter Flow', () => {
65
+ it('should have complete config for end-to-end deposit', () => {
66
+ const vault = '0x5Fde59415625401278c4d41C6beFCe3790eb357f';
67
+ const config = (0, constants_adapters_1.getVaultAdapterConfig)(vault);
68
+ expect(config).toBeDefined();
69
+ expect(config?.isNativeTokenDeposit).toBe(true);
70
+ const tokens = config?.tokens || [];
71
+ expect(tokens.length).toBeGreaterThan(0);
72
+ expect(config?.wrapperAddress).toMatch(/^0x[a-fA-F0-9]{40}$/);
73
+ expect(config?.abi).toBeDefined();
74
+ expect(Array.isArray(config?.abi)).toBe(true);
75
+ expect(config?.referralId).toBeDefined();
76
+ });
77
+ it('should support all configured vaults', () => {
78
+ const allVaults = [
79
+ '0x18EE038C114a07f4B08b420fb1E4149a4F357249',
80
+ '0x8AcA0841993ef4C87244d519166e767f49362C21',
81
+ '0xB2bFb52cfc40584AC4e9e2B36a5B8d6554A56e0b',
82
+ '0x5Fde59415625401278c4d41C6beFCe3790eb357f',
83
+ '0x419386E3Ef42368e602720CC458e00c0B28c47A7',
84
+ ];
85
+ allVaults.forEach((vault) => {
86
+ const config = (0, constants_adapters_1.getVaultAdapterConfig)(vault);
87
+ expect(config).toBeDefined();
88
+ expect(typeof config?.isNativeTokenDeposit).toBe('boolean');
89
+ expect(typeof config?.isWrappedTokenDeposit).toBe('boolean');
90
+ });
91
+ });
92
+ });
93
+ });
94
+ //# sourceMappingURL=adapter.e2e.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.e2e.test.js","sourceRoot":"","sources":["../../src.ts/__tests__/adapter.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Multicall3.js","sourceRoot":"","sources":["../../src.ts/abis/Multicall3.ts"],"names":[],"mappings":";;;AACa,QAAA,cAAc,GAAG;IAC5B;QACE,MAAM,EAAE;YACN;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,OAAO;qBACd;iBACF;gBACD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE;YACP;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,OAAO;qBACd;iBACF;gBACD,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAC;AAEX,MAAM,uBAAuB,GAAG;IAC9B;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,OAAO;aACd;SACF;QACD,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;KACd;CACO,CAAC"}
1
+ {"version":3,"file":"Multicall3.js","sourceRoot":"","sources":["../../src.ts/abis/Multicall3.ts"],"names":[],"mappings":";;;AACa,QAAA,cAAc,GAAG;IAC5B;QACE,MAAM,EAAE;YACN;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,OAAO;qBACd;iBACF;gBACD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE;YACP;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,OAAO;qBACd;iBACF;gBACD,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAC;AAIX,MAAM,uBAAuB,GAAG;IAC9B;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,OAAO;aACd;SACF;QACD,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,OAAO;KACd;CACO,CAAC"}
@@ -1,76 +1,36 @@
1
- export declare const ABI_POOL_ADAPTER: ({
2
- inputs: ({
3
- internalType: string;
4
- name: string;
5
- type: string;
6
- components?: undefined;
7
- } | {
8
- components: {
9
- internalType: string;
10
- name: string;
11
- type: string;
12
- }[];
13
- internalType: string;
14
- name: string;
15
- type: string;
16
- })[];
17
- stateMutability: string;
18
- type: string;
19
- name?: undefined;
20
- anonymous?: undefined;
21
- outputs?: undefined;
22
- } | {
23
- inputs: any[];
24
- name: string;
25
- type: string;
26
- stateMutability?: undefined;
27
- anonymous?: undefined;
28
- outputs?: undefined;
29
- } | {
30
- anonymous: boolean;
31
- inputs: {
32
- indexed: boolean;
33
- internalType: string;
34
- name: string;
35
- type: string;
36
- }[];
37
- name: string;
38
- type: string;
39
- stateMutability?: undefined;
40
- outputs?: undefined;
41
- } | {
42
- inputs: {
43
- internalType: string;
44
- name: string;
45
- type: string;
46
- }[];
47
- name: string;
48
- outputs: {
49
- internalType: string;
50
- name: string;
51
- type: string;
52
- }[];
53
- stateMutability: string;
54
- type: string;
55
- anonymous?: undefined;
56
- } | {
57
- inputs: {
58
- components: {
59
- internalType: string;
60
- name: string;
61
- type: string;
62
- }[];
63
- internalType: string;
64
- name: string;
65
- type: string;
66
- }[];
67
- name: string;
68
- outputs: {
69
- internalType: string;
70
- name: string;
71
- type: string;
72
- }[];
73
- stateMutability: string;
74
- type: string;
75
- anonymous?: undefined;
76
- })[];
1
+ export declare const ABI_POOL_ADAPTER: readonly [{
2
+ readonly inputs: readonly [{
3
+ readonly components: readonly [{
4
+ readonly internalType: "uint256";
5
+ readonly name: "amountIn";
6
+ readonly type: "uint256";
7
+ }, {
8
+ readonly internalType: "uint256";
9
+ readonly name: "minAmountOut";
10
+ readonly type: "uint256";
11
+ }, {
12
+ readonly internalType: "address";
13
+ readonly name: "srcToken";
14
+ readonly type: "address";
15
+ }, {
16
+ readonly internalType: "address";
17
+ readonly name: "dstToken";
18
+ readonly type: "address";
19
+ }, {
20
+ readonly internalType: "uint256";
21
+ readonly name: "bridgeId";
22
+ readonly type: "uint256";
23
+ }, {
24
+ readonly internalType: "bytes";
25
+ readonly name: "quoteData";
26
+ readonly type: "bytes";
27
+ }];
28
+ readonly internalType: "struct PoolAdapter.SwapAndDepositParams";
29
+ readonly name: "params";
30
+ readonly type: "tuple";
31
+ }];
32
+ readonly name: "swapAndDeposit";
33
+ readonly outputs: readonly [];
34
+ readonly stateMutability: "nonpayable";
35
+ readonly type: "function";
36
+ }];