@agoric/portfolio-api 0.1.1-dev-159ee8a.0.159ee8a → 0.1.1-dev-6deecfc.0.6deecfc
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/README.md +38 -0
- package/package.json +18 -4
- package/src/main.d.ts +2 -0
- package/src/main.js +2 -0
- package/src/network/network-spec.d.ts +88 -0
- package/src/network/network-spec.d.ts.map +1 -0
- package/src/network/network-spec.js +115 -0
- package/src/network/prod-network.d.ts +4 -0
- package/src/network/prod-network.d.ts.map +1 -0
- package/src/network/prod-network.js +399 -0
- package/src/places.d.ts +289 -0
- package/src/places.d.ts.map +1 -0
- package/src/places.js +190 -0
- package/src/target-balances.d.ts +42 -0
- package/src/target-balances.d.ts.map +1 -0
- package/src/target-balances.js +394 -0
- package/src/type-guards.d.ts +2 -7
- package/src/type-guards.d.ts.map +1 -1
- package/src/type-guards.js +3 -13
- package/src/types-index.d.ts +2 -0
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
const isPrimitive = (value ) => Object(value) !== value;
|
|
4
|
+
|
|
5
|
+
const deepFreeze = (value ) => {
|
|
6
|
+
if (isPrimitive(value)) return value;
|
|
7
|
+
const obj = value ;
|
|
8
|
+
Object.freeze(obj);
|
|
9
|
+
for (const key of Reflect.ownKeys(obj)) {
|
|
10
|
+
deepFreeze(obj[key]);
|
|
11
|
+
}
|
|
12
|
+
return value;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
// Initial production network in NetworkSpec format
|
|
16
|
+
export const PROD_NETWORK = deepFreeze({
|
|
17
|
+
// Enable debug diagnostics to aid troubleshooting in tests
|
|
18
|
+
debug: true,
|
|
19
|
+
environment: 'prod',
|
|
20
|
+
chains: [
|
|
21
|
+
{ name: 'agoric', control: 'local' },
|
|
22
|
+
{ name: 'noble', control: 'ibc' },
|
|
23
|
+
{ name: 'Arbitrum', control: 'axelar' },
|
|
24
|
+
{ name: 'Avalanche', control: 'axelar' },
|
|
25
|
+
{ name: 'Base', control: 'axelar' },
|
|
26
|
+
{ name: 'Ethereum', control: 'axelar' },
|
|
27
|
+
{ name: 'Optimism', control: 'axelar' },
|
|
28
|
+
],
|
|
29
|
+
pools: [
|
|
30
|
+
{ pool: 'Aave_Arbitrum', chain: 'Arbitrum', protocol: 'Aave' },
|
|
31
|
+
{ pool: 'Aave_Avalanche', chain: 'Avalanche', protocol: 'Aave' },
|
|
32
|
+
{ pool: 'Aave_Base', chain: 'Base', protocol: 'Aave' },
|
|
33
|
+
{ pool: 'Aave_Ethereum', chain: 'Ethereum', protocol: 'Aave' },
|
|
34
|
+
{ pool: 'Aave_Optimism', chain: 'Optimism', protocol: 'Aave' },
|
|
35
|
+
{ pool: 'Beefy_re7_Avalanche', chain: 'Avalanche', protocol: 'Beefy' },
|
|
36
|
+
{
|
|
37
|
+
pool: 'Beefy_morphoGauntletUsdc_Ethereum',
|
|
38
|
+
chain: 'Ethereum',
|
|
39
|
+
protocol: 'Beefy',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
pool: 'Beefy_morphoSmokehouseUsdc_Ethereum',
|
|
43
|
+
chain: 'Ethereum',
|
|
44
|
+
protocol: 'Beefy',
|
|
45
|
+
},
|
|
46
|
+
{ pool: 'Beefy_morphoSeamlessUsdc_Base', chain: 'Base', protocol: 'Beefy' },
|
|
47
|
+
{
|
|
48
|
+
pool: 'Beefy_compoundUsdc_Optimism',
|
|
49
|
+
chain: 'Optimism',
|
|
50
|
+
protocol: 'Beefy',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
pool: 'Beefy_compoundUsdc_Arbitrum',
|
|
54
|
+
chain: 'Arbitrum',
|
|
55
|
+
protocol: 'Beefy',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
pool: 'ERC4626_morphoClearstarHighYieldUsdc_Ethereum',
|
|
59
|
+
chain: 'Ethereum',
|
|
60
|
+
protocol: 'ERC4626',
|
|
61
|
+
blockDepositReason: 'AT_CAPACITY',
|
|
62
|
+
blockWithdrawReason: 'LOW_LIQUIDITY',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
pool: 'ERC4626_morphoSeamlessUsdcVault_Base',
|
|
66
|
+
chain: 'Base',
|
|
67
|
+
protocol: 'ERC4626',
|
|
68
|
+
blockDepositReason: 'AT_CAPACITY',
|
|
69
|
+
},
|
|
70
|
+
{ pool: 'Compound_Arbitrum', chain: 'Arbitrum', protocol: 'Compound' },
|
|
71
|
+
{ pool: 'Compound_Base', chain: 'Base', protocol: 'Compound' },
|
|
72
|
+
{ pool: 'Compound_Ethereum', chain: 'Ethereum', protocol: 'Compound' },
|
|
73
|
+
{ pool: 'Compound_Optimism', chain: 'Optimism', protocol: 'Compound' },
|
|
74
|
+
{ pool: 'USDN', chain: 'noble', protocol: 'USDN' },
|
|
75
|
+
{ pool: 'USDNVault', chain: 'noble', protocol: 'USDN' },
|
|
76
|
+
],
|
|
77
|
+
localPlaces: [
|
|
78
|
+
{ id: '<Deposit>', chain: 'agoric' },
|
|
79
|
+
{ id: '<Cash>', chain: 'agoric' },
|
|
80
|
+
{ id: '+agoric', chain: 'agoric' },
|
|
81
|
+
],
|
|
82
|
+
links: [
|
|
83
|
+
// USDN costs a fee to get into
|
|
84
|
+
{
|
|
85
|
+
src: '@noble',
|
|
86
|
+
dest: 'USDN',
|
|
87
|
+
transfer: 'local',
|
|
88
|
+
variableFeeBps: 10,
|
|
89
|
+
timeSec: 0,
|
|
90
|
+
feeMode: 'toUSDN',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
src: '@noble',
|
|
94
|
+
dest: 'USDNVault',
|
|
95
|
+
transfer: 'local',
|
|
96
|
+
variableFeeBps: 10,
|
|
97
|
+
timeSec: 0,
|
|
98
|
+
feeMode: 'toUSDN',
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
// CCTP slow (inbound auto-forward compressed: EVM -> @agoric)
|
|
102
|
+
// Latency kept at 1080s (assuming IBC forward overlaps); adjust if sequential.
|
|
103
|
+
{
|
|
104
|
+
src: '@Arbitrum',
|
|
105
|
+
dest: '@agoric',
|
|
106
|
+
transfer: 'cctpToNoble',
|
|
107
|
+
variableFeeBps: 0,
|
|
108
|
+
timeSec: 1080,
|
|
109
|
+
feeMode: 'evmToNoble',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
src: '@Avalanche',
|
|
113
|
+
dest: '@agoric',
|
|
114
|
+
transfer: 'cctpToNoble',
|
|
115
|
+
variableFeeBps: 0,
|
|
116
|
+
timeSec: 30, // Avalanche has instant finality (~7 seconds observed)
|
|
117
|
+
feeMode: 'evmToNoble',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
src: '@Ethereum',
|
|
121
|
+
dest: '@agoric',
|
|
122
|
+
transfer: 'cctpToNoble',
|
|
123
|
+
variableFeeBps: 0,
|
|
124
|
+
timeSec: 1080,
|
|
125
|
+
feeMode: 'evmToNoble',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
src: '@Optimism',
|
|
129
|
+
dest: '@agoric',
|
|
130
|
+
transfer: 'cctpToNoble',
|
|
131
|
+
variableFeeBps: 0,
|
|
132
|
+
timeSec: 1080,
|
|
133
|
+
feeMode: 'evmToNoble',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
src: '@Base',
|
|
137
|
+
dest: '@agoric',
|
|
138
|
+
transfer: 'cctpToNoble',
|
|
139
|
+
variableFeeBps: 0,
|
|
140
|
+
timeSec: 1080,
|
|
141
|
+
feeMode: 'evmToNoble',
|
|
142
|
+
},
|
|
143
|
+
// CCTP return (fast on return path); 1 USDC minimum
|
|
144
|
+
{
|
|
145
|
+
src: '@noble',
|
|
146
|
+
dest: '@Arbitrum',
|
|
147
|
+
transfer: 'cctpFromNoble',
|
|
148
|
+
variableFeeBps: 0,
|
|
149
|
+
timeSec: 20,
|
|
150
|
+
min: 1_000_000n,
|
|
151
|
+
feeMode: 'makeEvmAccount',
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
src: '@noble',
|
|
155
|
+
dest: '@Avalanche',
|
|
156
|
+
transfer: 'cctpFromNoble',
|
|
157
|
+
variableFeeBps: 0,
|
|
158
|
+
timeSec: 20,
|
|
159
|
+
min: 1_000_000n,
|
|
160
|
+
feeMode: 'makeEvmAccount',
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
src: '@noble',
|
|
164
|
+
dest: '@Ethereum',
|
|
165
|
+
transfer: 'cctpFromNoble',
|
|
166
|
+
variableFeeBps: 0,
|
|
167
|
+
timeSec: 20,
|
|
168
|
+
min: 1_000_000n,
|
|
169
|
+
feeMode: 'makeEvmAccount',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
src: '@noble',
|
|
173
|
+
dest: '@Optimism',
|
|
174
|
+
transfer: 'cctpFromNoble',
|
|
175
|
+
variableFeeBps: 0,
|
|
176
|
+
timeSec: 20,
|
|
177
|
+
min: 1_000_000n,
|
|
178
|
+
feeMode: 'makeEvmAccount',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
src: '@noble',
|
|
182
|
+
dest: '@Base',
|
|
183
|
+
transfer: 'cctpFromNoble',
|
|
184
|
+
variableFeeBps: 0,
|
|
185
|
+
timeSec: 20,
|
|
186
|
+
min: 1_000_000n,
|
|
187
|
+
feeMode: 'makeEvmAccount',
|
|
188
|
+
},
|
|
189
|
+
// IBC connectivity (explicit both directions required for USDN and other noble-origin flows)
|
|
190
|
+
{
|
|
191
|
+
src: '@agoric',
|
|
192
|
+
dest: '@noble',
|
|
193
|
+
transfer: 'ibc',
|
|
194
|
+
variableFeeBps: 0,
|
|
195
|
+
timeSec: 10,
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
src: '@noble',
|
|
199
|
+
dest: '@agoric',
|
|
200
|
+
transfer: 'ibc',
|
|
201
|
+
variableFeeBps: 0,
|
|
202
|
+
timeSec: 10,
|
|
203
|
+
},
|
|
204
|
+
|
|
205
|
+
// CCTPv2 direct EVM-to-EVM routes (full mesh connectivity)
|
|
206
|
+
// Estimated time: ~13-60 seconds depending on finality threshold
|
|
207
|
+
// Note: CCTPv2 contracts must be deployed on both source and destination chains
|
|
208
|
+
|
|
209
|
+
// Arbitrum ↔ other EVM chains
|
|
210
|
+
{
|
|
211
|
+
src: '@Arbitrum',
|
|
212
|
+
dest: '@Ethereum',
|
|
213
|
+
transfer: 'cctpV2',
|
|
214
|
+
variableFeeBps: 0,
|
|
215
|
+
timeSec: 60,
|
|
216
|
+
min: 100_000n,
|
|
217
|
+
feeMode: 'evmToEvm',
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
src: '@Ethereum',
|
|
221
|
+
dest: '@Arbitrum',
|
|
222
|
+
transfer: 'cctpV2',
|
|
223
|
+
variableFeeBps: 0,
|
|
224
|
+
timeSec: 60,
|
|
225
|
+
min: 100_000n,
|
|
226
|
+
feeMode: 'evmToEvm',
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
src: '@Arbitrum',
|
|
230
|
+
dest: '@Base',
|
|
231
|
+
transfer: 'cctpV2',
|
|
232
|
+
variableFeeBps: 0,
|
|
233
|
+
timeSec: 60,
|
|
234
|
+
min: 100_000n,
|
|
235
|
+
feeMode: 'evmToEvm',
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
src: '@Base',
|
|
239
|
+
dest: '@Arbitrum',
|
|
240
|
+
transfer: 'cctpV2',
|
|
241
|
+
variableFeeBps: 0,
|
|
242
|
+
timeSec: 60,
|
|
243
|
+
min: 100_000n,
|
|
244
|
+
feeMode: 'evmToEvm',
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
src: '@Arbitrum',
|
|
248
|
+
dest: '@Avalanche',
|
|
249
|
+
transfer: 'cctpV2',
|
|
250
|
+
variableFeeBps: 0,
|
|
251
|
+
timeSec: 30, // Avalanche has instant finality
|
|
252
|
+
min: 100_000n,
|
|
253
|
+
feeMode: 'evmToEvm',
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
src: '@Avalanche',
|
|
257
|
+
dest: '@Arbitrum',
|
|
258
|
+
transfer: 'cctpV2',
|
|
259
|
+
variableFeeBps: 0,
|
|
260
|
+
timeSec: 60,
|
|
261
|
+
min: 100_000n,
|
|
262
|
+
feeMode: 'evmToEvm',
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
src: '@Arbitrum',
|
|
266
|
+
dest: '@Optimism',
|
|
267
|
+
transfer: 'cctpV2',
|
|
268
|
+
variableFeeBps: 0,
|
|
269
|
+
timeSec: 60,
|
|
270
|
+
min: 100_000n,
|
|
271
|
+
feeMode: 'evmToEvm',
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
src: '@Optimism',
|
|
275
|
+
dest: '@Arbitrum',
|
|
276
|
+
transfer: 'cctpV2',
|
|
277
|
+
variableFeeBps: 0,
|
|
278
|
+
timeSec: 60,
|
|
279
|
+
min: 100_000n,
|
|
280
|
+
feeMode: 'evmToEvm',
|
|
281
|
+
},
|
|
282
|
+
|
|
283
|
+
// Base ↔ other EVM chains (excluding Arbitrum, already defined)
|
|
284
|
+
{
|
|
285
|
+
src: '@Base',
|
|
286
|
+
dest: '@Ethereum',
|
|
287
|
+
transfer: 'cctpV2',
|
|
288
|
+
variableFeeBps: 0,
|
|
289
|
+
timeSec: 60,
|
|
290
|
+
min: 100_000n,
|
|
291
|
+
feeMode: 'evmToEvm',
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
src: '@Ethereum',
|
|
295
|
+
dest: '@Base',
|
|
296
|
+
transfer: 'cctpV2',
|
|
297
|
+
variableFeeBps: 0,
|
|
298
|
+
timeSec: 60,
|
|
299
|
+
min: 100_000n,
|
|
300
|
+
feeMode: 'evmToEvm',
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
src: '@Base',
|
|
304
|
+
dest: '@Avalanche',
|
|
305
|
+
transfer: 'cctpV2',
|
|
306
|
+
variableFeeBps: 0,
|
|
307
|
+
timeSec: 30, // Avalanche has instant finality
|
|
308
|
+
min: 100_000n,
|
|
309
|
+
feeMode: 'evmToEvm',
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
src: '@Avalanche',
|
|
313
|
+
dest: '@Base',
|
|
314
|
+
transfer: 'cctpV2',
|
|
315
|
+
variableFeeBps: 0,
|
|
316
|
+
timeSec: 60,
|
|
317
|
+
min: 100_000n,
|
|
318
|
+
feeMode: 'evmToEvm',
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
src: '@Base',
|
|
322
|
+
dest: '@Optimism',
|
|
323
|
+
transfer: 'cctpV2',
|
|
324
|
+
variableFeeBps: 0,
|
|
325
|
+
timeSec: 60,
|
|
326
|
+
min: 100_000n,
|
|
327
|
+
feeMode: 'evmToEvm',
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
src: '@Optimism',
|
|
331
|
+
dest: '@Base',
|
|
332
|
+
transfer: 'cctpV2',
|
|
333
|
+
variableFeeBps: 0,
|
|
334
|
+
timeSec: 60,
|
|
335
|
+
min: 100_000n,
|
|
336
|
+
feeMode: 'evmToEvm',
|
|
337
|
+
},
|
|
338
|
+
|
|
339
|
+
// Ethereum ↔ other EVM chains (excluding Arbitrum, Base already defined)
|
|
340
|
+
{
|
|
341
|
+
src: '@Ethereum',
|
|
342
|
+
dest: '@Avalanche',
|
|
343
|
+
transfer: 'cctpV2',
|
|
344
|
+
variableFeeBps: 0,
|
|
345
|
+
timeSec: 30, // Avalanche has instant finality
|
|
346
|
+
min: 100_000n,
|
|
347
|
+
feeMode: 'evmToEvm',
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
src: '@Avalanche',
|
|
351
|
+
dest: '@Ethereum',
|
|
352
|
+
transfer: 'cctpV2',
|
|
353
|
+
variableFeeBps: 0,
|
|
354
|
+
timeSec: 60,
|
|
355
|
+
min: 100_000n,
|
|
356
|
+
feeMode: 'evmToEvm',
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
src: '@Ethereum',
|
|
360
|
+
dest: '@Optimism',
|
|
361
|
+
transfer: 'cctpV2',
|
|
362
|
+
variableFeeBps: 0,
|
|
363
|
+
timeSec: 60,
|
|
364
|
+
min: 100_000n,
|
|
365
|
+
feeMode: 'evmToEvm',
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
src: '@Optimism',
|
|
369
|
+
dest: '@Ethereum',
|
|
370
|
+
transfer: 'cctpV2',
|
|
371
|
+
variableFeeBps: 0,
|
|
372
|
+
timeSec: 60,
|
|
373
|
+
min: 100_000n,
|
|
374
|
+
feeMode: 'evmToEvm',
|
|
375
|
+
},
|
|
376
|
+
|
|
377
|
+
// Avalanche ↔ Optimism (remaining pair)
|
|
378
|
+
{
|
|
379
|
+
src: '@Avalanche',
|
|
380
|
+
dest: '@Optimism',
|
|
381
|
+
transfer: 'cctpV2',
|
|
382
|
+
variableFeeBps: 0,
|
|
383
|
+
timeSec: 60,
|
|
384
|
+
min: 100_000n,
|
|
385
|
+
feeMode: 'evmToEvm',
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
src: '@Optimism',
|
|
389
|
+
dest: '@Avalanche',
|
|
390
|
+
transfer: 'cctpV2',
|
|
391
|
+
variableFeeBps: 0,
|
|
392
|
+
timeSec: 30, // Avalanche has instant finality
|
|
393
|
+
min: 100_000n,
|
|
394
|
+
feeMode: 'evmToEvm',
|
|
395
|
+
},
|
|
396
|
+
],
|
|
397
|
+
});
|
|
398
|
+
|
|
399
|
+
export default PROD_NETWORK;
|
package/src/places.d.ts
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import type { AxelarChain, SupportedChain, YieldProtocol } from './constants.js';
|
|
2
|
+
import type { InstrumentId } from './instruments.js';
|
|
3
|
+
import type { AssetPlaceRef } from './types.js';
|
|
4
|
+
export type PoolPlaceInfo = {
|
|
5
|
+
protocol: 'USDN';
|
|
6
|
+
vault: null | 1;
|
|
7
|
+
chainName: 'noble';
|
|
8
|
+
} | {
|
|
9
|
+
protocol: YieldProtocol;
|
|
10
|
+
chainName: AxelarChain;
|
|
11
|
+
};
|
|
12
|
+
export declare const BeefyPoolPlaces: {
|
|
13
|
+
readonly Beefy_re7_Avalanche: {
|
|
14
|
+
readonly protocol: "Beefy";
|
|
15
|
+
readonly chainName: "Avalanche";
|
|
16
|
+
};
|
|
17
|
+
readonly Beefy_morphoGauntletUsdc_Ethereum: {
|
|
18
|
+
readonly protocol: "Beefy";
|
|
19
|
+
readonly chainName: "Ethereum";
|
|
20
|
+
};
|
|
21
|
+
readonly Beefy_morphoSmokehouseUsdc_Ethereum: {
|
|
22
|
+
readonly protocol: "Beefy";
|
|
23
|
+
readonly chainName: "Ethereum";
|
|
24
|
+
};
|
|
25
|
+
readonly Beefy_morphoSeamlessUsdc_Base: {
|
|
26
|
+
readonly protocol: "Beefy";
|
|
27
|
+
readonly chainName: "Base";
|
|
28
|
+
};
|
|
29
|
+
readonly Beefy_compoundUsdc_Optimism: {
|
|
30
|
+
readonly protocol: "Beefy";
|
|
31
|
+
readonly chainName: "Optimism";
|
|
32
|
+
};
|
|
33
|
+
readonly Beefy_compoundUsdc_Arbitrum: {
|
|
34
|
+
readonly protocol: "Beefy";
|
|
35
|
+
readonly chainName: "Arbitrum";
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export type BeefyInstrumentId = keyof typeof BeefyPoolPlaces;
|
|
39
|
+
export declare const ERC4626PoolPlaces: {
|
|
40
|
+
readonly ERC4626_vaultU2_Ethereum: {
|
|
41
|
+
readonly protocol: "ERC4626";
|
|
42
|
+
readonly chainName: "Ethereum";
|
|
43
|
+
};
|
|
44
|
+
readonly ERC4626_morphoClearstarHighYieldUsdc_Ethereum: {
|
|
45
|
+
readonly protocol: "ERC4626";
|
|
46
|
+
readonly chainName: "Ethereum";
|
|
47
|
+
};
|
|
48
|
+
readonly ERC4626_morphoClearstarUsdcCore_Ethereum: {
|
|
49
|
+
readonly protocol: "ERC4626";
|
|
50
|
+
readonly chainName: "Ethereum";
|
|
51
|
+
};
|
|
52
|
+
readonly ERC4626_morphoGauntletUsdcRwa_Ethereum: {
|
|
53
|
+
readonly protocol: "ERC4626";
|
|
54
|
+
readonly chainName: "Ethereum";
|
|
55
|
+
};
|
|
56
|
+
readonly ERC4626_morphoSteakhouseHighYieldInstant_Ethereum: {
|
|
57
|
+
readonly protocol: "ERC4626";
|
|
58
|
+
readonly chainName: "Ethereum";
|
|
59
|
+
};
|
|
60
|
+
readonly ERC4626_morphoClearstarInstitutionalUsdc_Ethereum: {
|
|
61
|
+
readonly protocol: "ERC4626";
|
|
62
|
+
readonly chainName: "Ethereum";
|
|
63
|
+
};
|
|
64
|
+
readonly ERC4626_morphoClearstarUsdcReactor_Ethereum: {
|
|
65
|
+
readonly protocol: "ERC4626";
|
|
66
|
+
readonly chainName: "Ethereum";
|
|
67
|
+
};
|
|
68
|
+
readonly ERC4626_morphoAlphaUsdcCore_Ethereum: {
|
|
69
|
+
readonly protocol: "ERC4626";
|
|
70
|
+
readonly chainName: "Ethereum";
|
|
71
|
+
};
|
|
72
|
+
readonly ERC4626_morphoResolvUsdc_Ethereum: {
|
|
73
|
+
readonly protocol: "ERC4626";
|
|
74
|
+
readonly chainName: "Ethereum";
|
|
75
|
+
};
|
|
76
|
+
readonly ERC4626_morphoGauntletUsdcFrontier_Ethereum: {
|
|
77
|
+
readonly protocol: "ERC4626";
|
|
78
|
+
readonly chainName: "Ethereum";
|
|
79
|
+
};
|
|
80
|
+
readonly ERC4626_morphoHyperithmUsdcMidcurve_Ethereum: {
|
|
81
|
+
readonly protocol: "ERC4626";
|
|
82
|
+
readonly chainName: "Ethereum";
|
|
83
|
+
};
|
|
84
|
+
readonly ERC4626_morphoHyperithmUsdcDegen_Ethereum: {
|
|
85
|
+
readonly protocol: "ERC4626";
|
|
86
|
+
readonly chainName: "Ethereum";
|
|
87
|
+
};
|
|
88
|
+
readonly ERC4626_morphoGauntletUsdcCore_Ethereum: {
|
|
89
|
+
readonly protocol: "ERC4626";
|
|
90
|
+
readonly chainName: "Ethereum";
|
|
91
|
+
};
|
|
92
|
+
readonly ERC4626_morphoSteakhousePrimeUsdc_Base: {
|
|
93
|
+
readonly protocol: "ERC4626";
|
|
94
|
+
readonly chainName: "Base";
|
|
95
|
+
};
|
|
96
|
+
readonly ERC4626_morphoSteakhouseUsdc_Base: {
|
|
97
|
+
readonly protocol: "ERC4626";
|
|
98
|
+
readonly chainName: "Base";
|
|
99
|
+
};
|
|
100
|
+
readonly ERC4626_morphoGauntletUsdcPrime_Base: {
|
|
101
|
+
readonly protocol: "ERC4626";
|
|
102
|
+
readonly chainName: "Base";
|
|
103
|
+
};
|
|
104
|
+
readonly ERC4626_morphoSeamlessUsdcVault_Base: {
|
|
105
|
+
readonly protocol: "ERC4626";
|
|
106
|
+
readonly chainName: "Base";
|
|
107
|
+
};
|
|
108
|
+
readonly ERC4626_morphoSteakhouseHighYieldUsdc_Arbitrum: {
|
|
109
|
+
readonly protocol: "ERC4626";
|
|
110
|
+
readonly chainName: "Arbitrum";
|
|
111
|
+
};
|
|
112
|
+
readonly ERC4626_morphoGauntletUsdcCore_Arbitrum: {
|
|
113
|
+
readonly protocol: "ERC4626";
|
|
114
|
+
readonly chainName: "Arbitrum";
|
|
115
|
+
};
|
|
116
|
+
readonly ERC4626_morphoHyperithmUsdc_Arbitrum: {
|
|
117
|
+
readonly protocol: "ERC4626";
|
|
118
|
+
readonly chainName: "Arbitrum";
|
|
119
|
+
};
|
|
120
|
+
readonly ERC4626_morphoGauntletUsdcPrime_Optimism: {
|
|
121
|
+
readonly protocol: "ERC4626";
|
|
122
|
+
readonly chainName: "Optimism";
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
export type ERC4626InstrumentId = keyof typeof ERC4626PoolPlaces;
|
|
126
|
+
export declare const PoolPlaces: {
|
|
127
|
+
readonly ERC4626_vaultU2_Ethereum: {
|
|
128
|
+
readonly protocol: "ERC4626";
|
|
129
|
+
readonly chainName: "Ethereum";
|
|
130
|
+
};
|
|
131
|
+
readonly ERC4626_morphoClearstarHighYieldUsdc_Ethereum: {
|
|
132
|
+
readonly protocol: "ERC4626";
|
|
133
|
+
readonly chainName: "Ethereum";
|
|
134
|
+
};
|
|
135
|
+
readonly ERC4626_morphoClearstarUsdcCore_Ethereum: {
|
|
136
|
+
readonly protocol: "ERC4626";
|
|
137
|
+
readonly chainName: "Ethereum";
|
|
138
|
+
};
|
|
139
|
+
readonly ERC4626_morphoGauntletUsdcRwa_Ethereum: {
|
|
140
|
+
readonly protocol: "ERC4626";
|
|
141
|
+
readonly chainName: "Ethereum";
|
|
142
|
+
};
|
|
143
|
+
readonly ERC4626_morphoSteakhouseHighYieldInstant_Ethereum: {
|
|
144
|
+
readonly protocol: "ERC4626";
|
|
145
|
+
readonly chainName: "Ethereum";
|
|
146
|
+
};
|
|
147
|
+
readonly ERC4626_morphoClearstarInstitutionalUsdc_Ethereum: {
|
|
148
|
+
readonly protocol: "ERC4626";
|
|
149
|
+
readonly chainName: "Ethereum";
|
|
150
|
+
};
|
|
151
|
+
readonly ERC4626_morphoClearstarUsdcReactor_Ethereum: {
|
|
152
|
+
readonly protocol: "ERC4626";
|
|
153
|
+
readonly chainName: "Ethereum";
|
|
154
|
+
};
|
|
155
|
+
readonly ERC4626_morphoAlphaUsdcCore_Ethereum: {
|
|
156
|
+
readonly protocol: "ERC4626";
|
|
157
|
+
readonly chainName: "Ethereum";
|
|
158
|
+
};
|
|
159
|
+
readonly ERC4626_morphoResolvUsdc_Ethereum: {
|
|
160
|
+
readonly protocol: "ERC4626";
|
|
161
|
+
readonly chainName: "Ethereum";
|
|
162
|
+
};
|
|
163
|
+
readonly ERC4626_morphoGauntletUsdcFrontier_Ethereum: {
|
|
164
|
+
readonly protocol: "ERC4626";
|
|
165
|
+
readonly chainName: "Ethereum";
|
|
166
|
+
};
|
|
167
|
+
readonly ERC4626_morphoHyperithmUsdcMidcurve_Ethereum: {
|
|
168
|
+
readonly protocol: "ERC4626";
|
|
169
|
+
readonly chainName: "Ethereum";
|
|
170
|
+
};
|
|
171
|
+
readonly ERC4626_morphoHyperithmUsdcDegen_Ethereum: {
|
|
172
|
+
readonly protocol: "ERC4626";
|
|
173
|
+
readonly chainName: "Ethereum";
|
|
174
|
+
};
|
|
175
|
+
readonly ERC4626_morphoGauntletUsdcCore_Ethereum: {
|
|
176
|
+
readonly protocol: "ERC4626";
|
|
177
|
+
readonly chainName: "Ethereum";
|
|
178
|
+
};
|
|
179
|
+
readonly ERC4626_morphoSteakhousePrimeUsdc_Base: {
|
|
180
|
+
readonly protocol: "ERC4626";
|
|
181
|
+
readonly chainName: "Base";
|
|
182
|
+
};
|
|
183
|
+
readonly ERC4626_morphoSteakhouseUsdc_Base: {
|
|
184
|
+
readonly protocol: "ERC4626";
|
|
185
|
+
readonly chainName: "Base";
|
|
186
|
+
};
|
|
187
|
+
readonly ERC4626_morphoGauntletUsdcPrime_Base: {
|
|
188
|
+
readonly protocol: "ERC4626";
|
|
189
|
+
readonly chainName: "Base";
|
|
190
|
+
};
|
|
191
|
+
readonly ERC4626_morphoSeamlessUsdcVault_Base: {
|
|
192
|
+
readonly protocol: "ERC4626";
|
|
193
|
+
readonly chainName: "Base";
|
|
194
|
+
};
|
|
195
|
+
readonly ERC4626_morphoSteakhouseHighYieldUsdc_Arbitrum: {
|
|
196
|
+
readonly protocol: "ERC4626";
|
|
197
|
+
readonly chainName: "Arbitrum";
|
|
198
|
+
};
|
|
199
|
+
readonly ERC4626_morphoGauntletUsdcCore_Arbitrum: {
|
|
200
|
+
readonly protocol: "ERC4626";
|
|
201
|
+
readonly chainName: "Arbitrum";
|
|
202
|
+
};
|
|
203
|
+
readonly ERC4626_morphoHyperithmUsdc_Arbitrum: {
|
|
204
|
+
readonly protocol: "ERC4626";
|
|
205
|
+
readonly chainName: "Arbitrum";
|
|
206
|
+
};
|
|
207
|
+
readonly ERC4626_morphoGauntletUsdcPrime_Optimism: {
|
|
208
|
+
readonly protocol: "ERC4626";
|
|
209
|
+
readonly chainName: "Optimism";
|
|
210
|
+
};
|
|
211
|
+
readonly Beefy_re7_Avalanche: {
|
|
212
|
+
readonly protocol: "Beefy";
|
|
213
|
+
readonly chainName: "Avalanche";
|
|
214
|
+
};
|
|
215
|
+
readonly Beefy_morphoGauntletUsdc_Ethereum: {
|
|
216
|
+
readonly protocol: "Beefy";
|
|
217
|
+
readonly chainName: "Ethereum";
|
|
218
|
+
};
|
|
219
|
+
readonly Beefy_morphoSmokehouseUsdc_Ethereum: {
|
|
220
|
+
readonly protocol: "Beefy";
|
|
221
|
+
readonly chainName: "Ethereum";
|
|
222
|
+
};
|
|
223
|
+
readonly Beefy_morphoSeamlessUsdc_Base: {
|
|
224
|
+
readonly protocol: "Beefy";
|
|
225
|
+
readonly chainName: "Base";
|
|
226
|
+
};
|
|
227
|
+
readonly Beefy_compoundUsdc_Optimism: {
|
|
228
|
+
readonly protocol: "Beefy";
|
|
229
|
+
readonly chainName: "Optimism";
|
|
230
|
+
};
|
|
231
|
+
readonly Beefy_compoundUsdc_Arbitrum: {
|
|
232
|
+
readonly protocol: "Beefy";
|
|
233
|
+
readonly chainName: "Arbitrum";
|
|
234
|
+
};
|
|
235
|
+
readonly USDN: {
|
|
236
|
+
readonly protocol: "USDN";
|
|
237
|
+
readonly vault: null;
|
|
238
|
+
readonly chainName: "noble";
|
|
239
|
+
};
|
|
240
|
+
readonly USDNVault: {
|
|
241
|
+
readonly protocol: "USDN";
|
|
242
|
+
readonly vault: 1;
|
|
243
|
+
readonly chainName: "noble";
|
|
244
|
+
};
|
|
245
|
+
readonly Aave_Avalanche: {
|
|
246
|
+
readonly protocol: "Aave";
|
|
247
|
+
readonly chainName: "Avalanche";
|
|
248
|
+
};
|
|
249
|
+
readonly Aave_Ethereum: {
|
|
250
|
+
readonly protocol: "Aave";
|
|
251
|
+
readonly chainName: "Ethereum";
|
|
252
|
+
};
|
|
253
|
+
readonly Aave_Optimism: {
|
|
254
|
+
readonly protocol: "Aave";
|
|
255
|
+
readonly chainName: "Optimism";
|
|
256
|
+
};
|
|
257
|
+
readonly Aave_Arbitrum: {
|
|
258
|
+
readonly protocol: "Aave";
|
|
259
|
+
readonly chainName: "Arbitrum";
|
|
260
|
+
};
|
|
261
|
+
readonly Aave_Base: {
|
|
262
|
+
readonly protocol: "Aave";
|
|
263
|
+
readonly chainName: "Base";
|
|
264
|
+
};
|
|
265
|
+
readonly Compound_Ethereum: {
|
|
266
|
+
readonly protocol: "Compound";
|
|
267
|
+
readonly chainName: "Ethereum";
|
|
268
|
+
};
|
|
269
|
+
readonly Compound_Optimism: {
|
|
270
|
+
readonly protocol: "Compound";
|
|
271
|
+
readonly chainName: "Optimism";
|
|
272
|
+
};
|
|
273
|
+
readonly Compound_Arbitrum: {
|
|
274
|
+
readonly protocol: "Compound";
|
|
275
|
+
readonly chainName: "Arbitrum";
|
|
276
|
+
};
|
|
277
|
+
readonly Compound_Base: {
|
|
278
|
+
readonly protocol: "Compound";
|
|
279
|
+
readonly chainName: "Base";
|
|
280
|
+
};
|
|
281
|
+
};
|
|
282
|
+
export type PoolKey = InstrumentId;
|
|
283
|
+
/**
|
|
284
|
+
* Without regard to supported chains, is the input plausibly an InstrumentId
|
|
285
|
+
* (i.e., does it start with an ASCII letter)?
|
|
286
|
+
*/
|
|
287
|
+
export declare const isInstrumentId: (ref: string) => ref is InstrumentId;
|
|
288
|
+
export declare const chainOf: (id: AssetPlaceRef) => SupportedChain;
|
|
289
|
+
//# sourceMappingURL=places.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"places.d.ts","sourceRoot":"","sources":["places.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAchD,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GACzD;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,WAAW,CAAA;CAAE,CAAC;AAGxD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;CAyBqC,CAAC;AAGlE,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE7D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFmC,CAAC;AAGlE,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAEjE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAciC,CAAC;AAGzD,MAAM,MAAM,OAAO,GAAG,YAAY,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,GAAG,IAAI,YAC5B,CAAC;AAIzB,eAAO,MAAM,OAAO,GAAI,IAAI,aAAa,KAAG,cAa3C,CAAC"}
|