@avaprotocol/protocols 0.5.0 → 0.6.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/CHANGELOG.md +34 -0
- package/dist/index.cjs +85 -15
- package/dist/index.js +85 -15
- package/dist/protocols/chainlink.d.ts +6 -1
- package/dist/protocols/chainlink.d.ts.map +1 -1
- package/dist/protocols/erc20.d.ts +7 -0
- package/dist/protocols/erc20.d.ts.map +1 -1
- package/dist/protocols/index.d.ts +11 -0
- package/dist/protocols/index.d.ts.map +1 -1
- package/dist/tokens/base-sepolia.cjs +93 -0
- package/dist/tokens/base-sepolia.d.ts +5 -0
- package/dist/tokens/base-sepolia.d.ts.map +1 -0
- package/dist/tokens/base-sepolia.js +65 -0
- package/dist/tokens/base.cjs +358 -0
- package/dist/tokens/base.d.ts +5 -0
- package/dist/tokens/base.d.ts.map +1 -0
- package/dist/tokens/base.js +330 -0
- package/dist/tokens/bnb-mainnet.cjs +83 -0
- package/dist/tokens/bnb-mainnet.d.ts +5 -0
- package/dist/tokens/bnb-mainnet.d.ts.map +1 -0
- package/dist/tokens/bnb-mainnet.js +55 -0
- package/dist/tokens/ethereum.cjs +894 -0
- package/dist/tokens/ethereum.d.ts +5 -0
- package/dist/tokens/ethereum.d.ts.map +1 -0
- package/dist/tokens/ethereum.js +866 -0
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/per-chain.d.ts +30 -0
- package/dist/tokens/per-chain.d.ts.map +1 -0
- package/dist/tokens/sepolia.cjs +105 -0
- package/dist/tokens/sepolia.d.ts +5 -0
- package/dist/tokens/sepolia.d.ts.map +1 -0
- package/dist/tokens/sepolia.js +77 -0
- package/package.json +28 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# @avaprotocol/protocols
|
|
2
2
|
|
|
3
|
+
## 0.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- f81f84b: Per-chain token subpath exports + new ERC-20 / Chainlink ABI fragments and event topics.
|
|
8
|
+
|
|
9
|
+
**Subpath exports.** Each chain's token catalog is now importable on its own — consumers that only need one chain's tokens get just that file in their bundle instead of all five chains' worth via the root `Tokens` namespace:
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { tokens, chainId } from "@avaprotocol/protocols/tokens/sepolia";
|
|
13
|
+
const usdc = tokens.USDC?.address;
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Available subpaths: `./tokens/ethereum`, `./tokens/sepolia`, `./tokens/base`, `./tokens/base-sepolia`, `./tokens/bnb-mainnet`. Each module exports `chainId` and a frozen, symbol-keyed `tokens` map of the existing `TokenChainEntry` shape.
|
|
17
|
+
|
|
18
|
+
The root `import { Tokens } from "@avaprotocol/protocols"` keeps working unchanged — the per-chain modules are additive.
|
|
19
|
+
|
|
20
|
+
**`sideEffects: false`** declared in `package.json` so bundlers can tree-shake unused protocol modules.
|
|
21
|
+
|
|
22
|
+
**ERC-20 additions** (`Protocols.erc20`):
|
|
23
|
+
|
|
24
|
+
- `transferAbi` — single-fragment ABI for `transfer(address,uint256)`
|
|
25
|
+
- `symbolAbi` — single-fragment ABI for `symbol()`
|
|
26
|
+
- `decimalsAbi` — single-fragment ABI for `decimals()`
|
|
27
|
+
- `transferEventAbi` — single-fragment event ABI for `Transfer(address indexed, address indexed, uint256)`
|
|
28
|
+
- `eventTopics.Transfer` — pre-computed keccak256 of the canonical Transfer event signature
|
|
29
|
+
|
|
30
|
+
**Chainlink additions** (`Protocols.chainlink`):
|
|
31
|
+
|
|
32
|
+
- `answerUpdatedEventAbi` — single-fragment event ABI for `AnswerUpdated(int256 indexed, uint256 indexed, uint256)`
|
|
33
|
+
- `eventTopics.AnswerUpdated` — pre-computed keccak256 of the canonical AnswerUpdated event signature
|
|
34
|
+
|
|
35
|
+
These let downstream consumers (templates, SDK tests, summarizers) drop hand-rolled ABI fragments and topic hashes that were re-derived across repos.
|
|
36
|
+
|
|
3
37
|
## 0.5.0
|
|
4
38
|
|
|
5
39
|
### Minor Changes
|
package/dist/index.cjs
CHANGED
|
@@ -318,12 +318,29 @@ var btcUsdFeed = {
|
|
|
318
318
|
var bnbUsdFeed = {
|
|
319
319
|
[Chains.BnbMainnet]: "0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE"
|
|
320
320
|
};
|
|
321
|
+
var answerUpdatedEventAbi = Object.freeze([
|
|
322
|
+
{
|
|
323
|
+
anonymous: false,
|
|
324
|
+
inputs: [
|
|
325
|
+
{ indexed: true, internalType: "int256", name: "current", type: "int256" },
|
|
326
|
+
{ indexed: true, internalType: "uint256", name: "roundId", type: "uint256" },
|
|
327
|
+
{ indexed: false, internalType: "uint256", name: "updatedAt", type: "uint256" }
|
|
328
|
+
],
|
|
329
|
+
name: "AnswerUpdated",
|
|
330
|
+
type: "event"
|
|
331
|
+
}
|
|
332
|
+
]);
|
|
333
|
+
var eventTopics2 = Object.freeze({
|
|
334
|
+
AnswerUpdated: "0x0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f"
|
|
335
|
+
});
|
|
321
336
|
var chainlink = Object.freeze({
|
|
322
337
|
ethUsdFeed,
|
|
323
338
|
btcUsdFeed,
|
|
324
339
|
bnbUsdFeed,
|
|
325
340
|
/** Shared AggregatorV3 ABI — works for any Chainlink feed. */
|
|
326
|
-
aggregatorV3Abi
|
|
341
|
+
aggregatorV3Abi,
|
|
342
|
+
answerUpdatedEventAbi,
|
|
343
|
+
eventTopics: eventTopics2
|
|
327
344
|
});
|
|
328
345
|
|
|
329
346
|
// src/protocols/compound-v3.ts
|
|
@@ -336,19 +353,70 @@ var compoundV3 = Object.freeze({
|
|
|
336
353
|
});
|
|
337
354
|
|
|
338
355
|
// src/protocols/erc20.ts
|
|
356
|
+
var approveAbi = Object.freeze([
|
|
357
|
+
{
|
|
358
|
+
inputs: [
|
|
359
|
+
{ internalType: "address", name: "spender", type: "address" },
|
|
360
|
+
{ internalType: "uint256", name: "amount", type: "uint256" }
|
|
361
|
+
],
|
|
362
|
+
name: "approve",
|
|
363
|
+
outputs: [{ internalType: "bool", name: "", type: "bool" }],
|
|
364
|
+
stateMutability: "nonpayable",
|
|
365
|
+
type: "function"
|
|
366
|
+
}
|
|
367
|
+
]);
|
|
368
|
+
var transferAbi = Object.freeze([
|
|
369
|
+
{
|
|
370
|
+
inputs: [
|
|
371
|
+
{ internalType: "address", name: "to", type: "address" },
|
|
372
|
+
{ internalType: "uint256", name: "amount", type: "uint256" }
|
|
373
|
+
],
|
|
374
|
+
name: "transfer",
|
|
375
|
+
outputs: [{ internalType: "bool", name: "", type: "bool" }],
|
|
376
|
+
stateMutability: "nonpayable",
|
|
377
|
+
type: "function"
|
|
378
|
+
}
|
|
379
|
+
]);
|
|
380
|
+
var symbolAbi = Object.freeze([
|
|
381
|
+
{
|
|
382
|
+
inputs: [],
|
|
383
|
+
name: "symbol",
|
|
384
|
+
outputs: [{ internalType: "string", name: "", type: "string" }],
|
|
385
|
+
stateMutability: "view",
|
|
386
|
+
type: "function"
|
|
387
|
+
}
|
|
388
|
+
]);
|
|
389
|
+
var decimalsAbi = Object.freeze([
|
|
390
|
+
{
|
|
391
|
+
inputs: [],
|
|
392
|
+
name: "decimals",
|
|
393
|
+
outputs: [{ internalType: "uint8", name: "", type: "uint8" }],
|
|
394
|
+
stateMutability: "view",
|
|
395
|
+
type: "function"
|
|
396
|
+
}
|
|
397
|
+
]);
|
|
398
|
+
var transferEventAbi = Object.freeze([
|
|
399
|
+
{
|
|
400
|
+
anonymous: false,
|
|
401
|
+
inputs: [
|
|
402
|
+
{ indexed: true, internalType: "address", name: "from", type: "address" },
|
|
403
|
+
{ indexed: true, internalType: "address", name: "to", type: "address" },
|
|
404
|
+
{ indexed: false, internalType: "uint256", name: "value", type: "uint256" }
|
|
405
|
+
],
|
|
406
|
+
name: "Transfer",
|
|
407
|
+
type: "event"
|
|
408
|
+
}
|
|
409
|
+
]);
|
|
410
|
+
var eventTopics3 = Object.freeze({
|
|
411
|
+
Transfer: "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
|
412
|
+
});
|
|
339
413
|
var erc20 = Object.freeze({
|
|
340
|
-
approveAbi
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
name: "approve",
|
|
347
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }],
|
|
348
|
-
stateMutability: "nonpayable",
|
|
349
|
-
type: "function"
|
|
350
|
-
}
|
|
351
|
-
])
|
|
414
|
+
approveAbi,
|
|
415
|
+
transferAbi,
|
|
416
|
+
symbolAbi,
|
|
417
|
+
decimalsAbi,
|
|
418
|
+
transferEventAbi,
|
|
419
|
+
eventTopics: eventTopics3
|
|
352
420
|
});
|
|
353
421
|
|
|
354
422
|
// src/protocols/ethena.ts
|
|
@@ -2064,11 +2132,13 @@ var CHAIN_DATA = Object.freeze([
|
|
|
2064
2132
|
[Chains.BnbMainnet, bnb_mainnet_default]
|
|
2065
2133
|
]);
|
|
2066
2134
|
function buildTokensFromData() {
|
|
2067
|
-
const merged =
|
|
2135
|
+
const merged = /* @__PURE__ */ Object.create(null);
|
|
2068
2136
|
for (const [chainId, rows] of CHAIN_DATA) {
|
|
2069
2137
|
for (const row of rows) {
|
|
2070
2138
|
const { symbol, ...entry } = row;
|
|
2071
|
-
if (!merged
|
|
2139
|
+
if (!Object.prototype.hasOwnProperty.call(merged, symbol)) {
|
|
2140
|
+
merged[symbol] = /* @__PURE__ */ Object.create(null);
|
|
2141
|
+
}
|
|
2072
2142
|
if (merged[symbol][chainId] !== void 0) {
|
|
2073
2143
|
throw new Error(
|
|
2074
2144
|
`[@avaprotocol/protocols] duplicate token entry for symbol="${symbol}" on chainId=${chainId}. Each (symbol, chainId) pair must be unique across src/tokens/data/*.json \u2014 remove the duplicate row.`
|
package/dist/index.js
CHANGED
|
@@ -272,12 +272,29 @@ var btcUsdFeed = {
|
|
|
272
272
|
var bnbUsdFeed = {
|
|
273
273
|
[Chains.BnbMainnet]: "0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE"
|
|
274
274
|
};
|
|
275
|
+
var answerUpdatedEventAbi = Object.freeze([
|
|
276
|
+
{
|
|
277
|
+
anonymous: false,
|
|
278
|
+
inputs: [
|
|
279
|
+
{ indexed: true, internalType: "int256", name: "current", type: "int256" },
|
|
280
|
+
{ indexed: true, internalType: "uint256", name: "roundId", type: "uint256" },
|
|
281
|
+
{ indexed: false, internalType: "uint256", name: "updatedAt", type: "uint256" }
|
|
282
|
+
],
|
|
283
|
+
name: "AnswerUpdated",
|
|
284
|
+
type: "event"
|
|
285
|
+
}
|
|
286
|
+
]);
|
|
287
|
+
var eventTopics2 = Object.freeze({
|
|
288
|
+
AnswerUpdated: "0x0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f"
|
|
289
|
+
});
|
|
275
290
|
var chainlink = Object.freeze({
|
|
276
291
|
ethUsdFeed,
|
|
277
292
|
btcUsdFeed,
|
|
278
293
|
bnbUsdFeed,
|
|
279
294
|
/** Shared AggregatorV3 ABI — works for any Chainlink feed. */
|
|
280
|
-
aggregatorV3Abi
|
|
295
|
+
aggregatorV3Abi,
|
|
296
|
+
answerUpdatedEventAbi,
|
|
297
|
+
eventTopics: eventTopics2
|
|
281
298
|
});
|
|
282
299
|
|
|
283
300
|
// src/protocols/compound-v3.ts
|
|
@@ -290,19 +307,70 @@ var compoundV3 = Object.freeze({
|
|
|
290
307
|
});
|
|
291
308
|
|
|
292
309
|
// src/protocols/erc20.ts
|
|
310
|
+
var approveAbi = Object.freeze([
|
|
311
|
+
{
|
|
312
|
+
inputs: [
|
|
313
|
+
{ internalType: "address", name: "spender", type: "address" },
|
|
314
|
+
{ internalType: "uint256", name: "amount", type: "uint256" }
|
|
315
|
+
],
|
|
316
|
+
name: "approve",
|
|
317
|
+
outputs: [{ internalType: "bool", name: "", type: "bool" }],
|
|
318
|
+
stateMutability: "nonpayable",
|
|
319
|
+
type: "function"
|
|
320
|
+
}
|
|
321
|
+
]);
|
|
322
|
+
var transferAbi = Object.freeze([
|
|
323
|
+
{
|
|
324
|
+
inputs: [
|
|
325
|
+
{ internalType: "address", name: "to", type: "address" },
|
|
326
|
+
{ internalType: "uint256", name: "amount", type: "uint256" }
|
|
327
|
+
],
|
|
328
|
+
name: "transfer",
|
|
329
|
+
outputs: [{ internalType: "bool", name: "", type: "bool" }],
|
|
330
|
+
stateMutability: "nonpayable",
|
|
331
|
+
type: "function"
|
|
332
|
+
}
|
|
333
|
+
]);
|
|
334
|
+
var symbolAbi = Object.freeze([
|
|
335
|
+
{
|
|
336
|
+
inputs: [],
|
|
337
|
+
name: "symbol",
|
|
338
|
+
outputs: [{ internalType: "string", name: "", type: "string" }],
|
|
339
|
+
stateMutability: "view",
|
|
340
|
+
type: "function"
|
|
341
|
+
}
|
|
342
|
+
]);
|
|
343
|
+
var decimalsAbi = Object.freeze([
|
|
344
|
+
{
|
|
345
|
+
inputs: [],
|
|
346
|
+
name: "decimals",
|
|
347
|
+
outputs: [{ internalType: "uint8", name: "", type: "uint8" }],
|
|
348
|
+
stateMutability: "view",
|
|
349
|
+
type: "function"
|
|
350
|
+
}
|
|
351
|
+
]);
|
|
352
|
+
var transferEventAbi = Object.freeze([
|
|
353
|
+
{
|
|
354
|
+
anonymous: false,
|
|
355
|
+
inputs: [
|
|
356
|
+
{ indexed: true, internalType: "address", name: "from", type: "address" },
|
|
357
|
+
{ indexed: true, internalType: "address", name: "to", type: "address" },
|
|
358
|
+
{ indexed: false, internalType: "uint256", name: "value", type: "uint256" }
|
|
359
|
+
],
|
|
360
|
+
name: "Transfer",
|
|
361
|
+
type: "event"
|
|
362
|
+
}
|
|
363
|
+
]);
|
|
364
|
+
var eventTopics3 = Object.freeze({
|
|
365
|
+
Transfer: "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
|
|
366
|
+
});
|
|
293
367
|
var erc20 = Object.freeze({
|
|
294
|
-
approveAbi
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
name: "approve",
|
|
301
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }],
|
|
302
|
-
stateMutability: "nonpayable",
|
|
303
|
-
type: "function"
|
|
304
|
-
}
|
|
305
|
-
])
|
|
368
|
+
approveAbi,
|
|
369
|
+
transferAbi,
|
|
370
|
+
symbolAbi,
|
|
371
|
+
decimalsAbi,
|
|
372
|
+
transferEventAbi,
|
|
373
|
+
eventTopics: eventTopics3
|
|
306
374
|
});
|
|
307
375
|
|
|
308
376
|
// src/protocols/ethena.ts
|
|
@@ -2018,11 +2086,13 @@ var CHAIN_DATA = Object.freeze([
|
|
|
2018
2086
|
[Chains.BnbMainnet, bnb_mainnet_default]
|
|
2019
2087
|
]);
|
|
2020
2088
|
function buildTokensFromData() {
|
|
2021
|
-
const merged =
|
|
2089
|
+
const merged = /* @__PURE__ */ Object.create(null);
|
|
2022
2090
|
for (const [chainId, rows] of CHAIN_DATA) {
|
|
2023
2091
|
for (const row of rows) {
|
|
2024
2092
|
const { symbol, ...entry } = row;
|
|
2025
|
-
if (!merged
|
|
2093
|
+
if (!Object.prototype.hasOwnProperty.call(merged, symbol)) {
|
|
2094
|
+
merged[symbol] = /* @__PURE__ */ Object.create(null);
|
|
2095
|
+
}
|
|
2026
2096
|
if (merged[symbol][chainId] !== void 0) {
|
|
2027
2097
|
throw new Error(
|
|
2028
2098
|
`[@avaprotocol/protocols] duplicate token entry for symbol="${symbol}" on chainId=${chainId}. Each (symbol, chainId) pair must be unique across src/tokens/data/*.json \u2014 remove the duplicate row.`
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { type AbiFragment } from "./types";
|
|
1
2
|
export declare const chainlink: Readonly<{
|
|
2
3
|
ethUsdFeed: Partial<Record<number, `0x${string}`>>;
|
|
3
4
|
btcUsdFeed: Partial<Record<number, `0x${string}`>>;
|
|
4
5
|
bnbUsdFeed: Partial<Record<number, `0x${string}`>>;
|
|
5
6
|
/** Shared AggregatorV3 ABI — works for any Chainlink feed. */
|
|
6
|
-
aggregatorV3Abi: readonly
|
|
7
|
+
aggregatorV3Abi: readonly AbiFragment[];
|
|
8
|
+
answerUpdatedEventAbi: readonly AbiFragment[];
|
|
9
|
+
eventTopics: Readonly<{
|
|
10
|
+
readonly AnswerUpdated: "0x0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f";
|
|
11
|
+
}>;
|
|
7
12
|
}>;
|
|
8
13
|
//# sourceMappingURL=chainlink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chainlink.d.ts","sourceRoot":"","sources":["../../src/protocols/chainlink.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chainlink.d.ts","sourceRoot":"","sources":["../../src/protocols/chainlink.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,SAAS,CAAC;AAgDhE,eAAO,MAAM,SAAS;;;;IAIpB,8DAA8D;;;;;;EAI9D,CAAC"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { type AbiFragment } from "./types";
|
|
2
2
|
export declare const erc20: Readonly<{
|
|
3
3
|
approveAbi: readonly AbiFragment[];
|
|
4
|
+
transferAbi: readonly AbiFragment[];
|
|
5
|
+
symbolAbi: readonly AbiFragment[];
|
|
6
|
+
decimalsAbi: readonly AbiFragment[];
|
|
7
|
+
transferEventAbi: readonly AbiFragment[];
|
|
8
|
+
eventTopics: Readonly<{
|
|
9
|
+
readonly Transfer: "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
|
|
10
|
+
}>;
|
|
4
11
|
}>;
|
|
5
12
|
//# sourceMappingURL=erc20.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../../src/protocols/erc20.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../../src/protocols/erc20.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAyE3C,eAAO,MAAM,KAAK;;;;;;;;;EAOhB,CAAC"}
|
|
@@ -60,12 +60,23 @@ export declare const Protocols: Readonly<{
|
|
|
60
60
|
btcUsdFeed: Partial<Record<number, `0x${string}`>>;
|
|
61
61
|
bnbUsdFeed: Partial<Record<number, `0x${string}`>>;
|
|
62
62
|
aggregatorV3Abi: readonly import("./types").AbiFragment[];
|
|
63
|
+
answerUpdatedEventAbi: readonly import("./types").AbiFragment[];
|
|
64
|
+
eventTopics: Readonly<{
|
|
65
|
+
readonly AnswerUpdated: "0x0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f";
|
|
66
|
+
}>;
|
|
63
67
|
}>;
|
|
64
68
|
compoundV3: Readonly<{
|
|
65
69
|
cometUsdc: Partial<Record<number, `0x${string}`>>;
|
|
66
70
|
}>;
|
|
67
71
|
erc20: Readonly<{
|
|
68
72
|
approveAbi: readonly import("./types").AbiFragment[];
|
|
73
|
+
transferAbi: readonly import("./types").AbiFragment[];
|
|
74
|
+
symbolAbi: readonly import("./types").AbiFragment[];
|
|
75
|
+
decimalsAbi: readonly import("./types").AbiFragment[];
|
|
76
|
+
transferEventAbi: readonly import("./types").AbiFragment[];
|
|
77
|
+
eventTopics: Readonly<{
|
|
78
|
+
readonly Transfer: "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
|
|
79
|
+
}>;
|
|
69
80
|
}>;
|
|
70
81
|
ethena: Readonly<{
|
|
71
82
|
susde: Partial<Record<number, `0x${string}`>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocols/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAkB3D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocols/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAkB3D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBpB,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/tokens/base-sepolia.ts
|
|
21
|
+
var base_sepolia_exports = {};
|
|
22
|
+
__export(base_sepolia_exports, {
|
|
23
|
+
chainId: () => chainId,
|
|
24
|
+
default: () => base_sepolia_default2,
|
|
25
|
+
tokens: () => tokens
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(base_sepolia_exports);
|
|
28
|
+
|
|
29
|
+
// src/tokens/data/base-sepolia.json
|
|
30
|
+
var base_sepolia_default = [
|
|
31
|
+
{
|
|
32
|
+
symbol: "LINK",
|
|
33
|
+
address: "0xE4aB69C077896252FAFBD49EFD26B5D171A32410",
|
|
34
|
+
decimals: 18,
|
|
35
|
+
name: "Chainlink"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
symbol: "USDC",
|
|
39
|
+
address: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
40
|
+
decimals: 6,
|
|
41
|
+
name: "USD Coin"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
symbol: "USDT",
|
|
45
|
+
address: "0xCE8565457Cca0fC7542608A2c78610Ed7bC66C8C",
|
|
46
|
+
decimals: 6,
|
|
47
|
+
name: "Tether USD"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
symbol: "WETH",
|
|
51
|
+
address: "0x4200000000000000000000000000000000000006",
|
|
52
|
+
decimals: 18,
|
|
53
|
+
name: "Wrapped Ether"
|
|
54
|
+
}
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
// src/chains.ts
|
|
58
|
+
var Chains = Object.freeze({
|
|
59
|
+
EthereumMainnet: 1,
|
|
60
|
+
Sepolia: 11155111,
|
|
61
|
+
Holesky: 17e3,
|
|
62
|
+
BaseMainnet: 8453,
|
|
63
|
+
BaseSepolia: 84532,
|
|
64
|
+
BnbMainnet: 56
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// src/tokens/per-chain.ts
|
|
68
|
+
function buildChainTokenMap(rows, sourceLabel) {
|
|
69
|
+
const out = /* @__PURE__ */ Object.create(null);
|
|
70
|
+
for (const row of rows) {
|
|
71
|
+
const { symbol, ...entry } = row;
|
|
72
|
+
if (Object.prototype.hasOwnProperty.call(out, symbol)) {
|
|
73
|
+
throw new Error(
|
|
74
|
+
`[@avaprotocol/protocols] duplicate symbol "${symbol}" in ${sourceLabel} \u2014 each symbol must appear once per chain file.`
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
out[symbol] = Object.freeze(entry);
|
|
78
|
+
}
|
|
79
|
+
return Object.freeze(out);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// src/tokens/base-sepolia.ts
|
|
83
|
+
var chainId = Chains.BaseSepolia;
|
|
84
|
+
var tokens = buildChainTokenMap(
|
|
85
|
+
base_sepolia_default,
|
|
86
|
+
"src/tokens/data/base-sepolia.json"
|
|
87
|
+
);
|
|
88
|
+
var base_sepolia_default2 = tokens;
|
|
89
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
90
|
+
0 && (module.exports = {
|
|
91
|
+
chainId,
|
|
92
|
+
tokens
|
|
93
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-sepolia.d.ts","sourceRoot":"","sources":["../../src/tokens/base-sepolia.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,OAAO,OAAqB,CAAC;AAE1C,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAG5D,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// src/tokens/data/base-sepolia.json
|
|
2
|
+
var base_sepolia_default = [
|
|
3
|
+
{
|
|
4
|
+
symbol: "LINK",
|
|
5
|
+
address: "0xE4aB69C077896252FAFBD49EFD26B5D171A32410",
|
|
6
|
+
decimals: 18,
|
|
7
|
+
name: "Chainlink"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
symbol: "USDC",
|
|
11
|
+
address: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
12
|
+
decimals: 6,
|
|
13
|
+
name: "USD Coin"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
symbol: "USDT",
|
|
17
|
+
address: "0xCE8565457Cca0fC7542608A2c78610Ed7bC66C8C",
|
|
18
|
+
decimals: 6,
|
|
19
|
+
name: "Tether USD"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
symbol: "WETH",
|
|
23
|
+
address: "0x4200000000000000000000000000000000000006",
|
|
24
|
+
decimals: 18,
|
|
25
|
+
name: "Wrapped Ether"
|
|
26
|
+
}
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
// src/chains.ts
|
|
30
|
+
var Chains = Object.freeze({
|
|
31
|
+
EthereumMainnet: 1,
|
|
32
|
+
Sepolia: 11155111,
|
|
33
|
+
Holesky: 17e3,
|
|
34
|
+
BaseMainnet: 8453,
|
|
35
|
+
BaseSepolia: 84532,
|
|
36
|
+
BnbMainnet: 56
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
// src/tokens/per-chain.ts
|
|
40
|
+
function buildChainTokenMap(rows, sourceLabel) {
|
|
41
|
+
const out = /* @__PURE__ */ Object.create(null);
|
|
42
|
+
for (const row of rows) {
|
|
43
|
+
const { symbol, ...entry } = row;
|
|
44
|
+
if (Object.prototype.hasOwnProperty.call(out, symbol)) {
|
|
45
|
+
throw new Error(
|
|
46
|
+
`[@avaprotocol/protocols] duplicate symbol "${symbol}" in ${sourceLabel} \u2014 each symbol must appear once per chain file.`
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
out[symbol] = Object.freeze(entry);
|
|
50
|
+
}
|
|
51
|
+
return Object.freeze(out);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// src/tokens/base-sepolia.ts
|
|
55
|
+
var chainId = Chains.BaseSepolia;
|
|
56
|
+
var tokens = buildChainTokenMap(
|
|
57
|
+
base_sepolia_default,
|
|
58
|
+
"src/tokens/data/base-sepolia.json"
|
|
59
|
+
);
|
|
60
|
+
var base_sepolia_default2 = tokens;
|
|
61
|
+
export {
|
|
62
|
+
chainId,
|
|
63
|
+
base_sepolia_default2 as default,
|
|
64
|
+
tokens
|
|
65
|
+
};
|