@w3lib/evm-batch-call 0.6.0 → 0.7.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 +24 -0
- package/README.md +161 -2
- package/contracts/TokenProbe.sol +103 -0
- package/dist/aggregate.d.ts.map +1 -1
- package/dist/aggregate.js +114 -3
- package/dist/aggregate.js.map +1 -1
- package/dist/approvals.d.ts +169 -0
- package/dist/approvals.d.ts.map +1 -0
- package/dist/approvals.js +310 -0
- package/dist/approvals.js.map +1 -0
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +4 -0
- package/dist/chains.js.map +1 -1
- package/dist/fees.d.ts +97 -0
- package/dist/fees.d.ts.map +1 -0
- package/dist/fees.js +115 -0
- package/dist/fees.js.map +1 -0
- package/dist/http.d.ts +10 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +30 -0
- package/dist/http.js.map +1 -0
- package/dist/lp.d.ts +2 -1
- package/dist/lp.d.ts.map +1 -1
- package/dist/lp.js +2 -1
- package/dist/lp.js.map +1 -1
- package/dist/multicall.d.ts.map +1 -1
- package/dist/multicall.js +3 -0
- package/dist/multicall.js.map +1 -1
- package/dist/names.d.ts +55 -0
- package/dist/names.d.ts.map +1 -0
- package/dist/names.js +93 -0
- package/dist/names.js.map +1 -0
- package/dist/owner.d.ts +4 -26
- package/dist/owner.d.ts.map +1 -1
- package/dist/owner.js +7 -112
- package/dist/owner.js.map +1 -1
- package/dist/portfolio.d.ts +54 -0
- package/dist/portfolio.d.ts.map +1 -0
- package/dist/portfolio.js +49 -0
- package/dist/portfolio.js.map +1 -0
- package/dist/price.d.ts +95 -0
- package/dist/price.d.ts.map +1 -0
- package/dist/price.js +329 -0
- package/dist/price.js.map +1 -0
- package/dist/risk.d.ts +42 -0
- package/dist/risk.d.ts.map +1 -0
- package/dist/risk.js +134 -0
- package/dist/risk.js.map +1 -0
- package/dist/rpcNodes.d.ts.map +1 -1
- package/dist/rpcNodes.js +18 -0
- package/dist/rpcNodes.js.map +1 -1
- package/dist/subpaths/approvals.d.ts +26 -0
- package/dist/subpaths/approvals.d.ts.map +1 -0
- package/dist/subpaths/approvals.js +27 -0
- package/dist/subpaths/approvals.js.map +1 -0
- package/dist/subpaths/fees.d.ts +23 -0
- package/dist/subpaths/fees.d.ts.map +1 -0
- package/dist/subpaths/fees.js +25 -0
- package/dist/subpaths/fees.js.map +1 -0
- package/dist/subpaths/names.d.ts +35 -0
- package/dist/subpaths/names.d.ts.map +1 -0
- package/dist/subpaths/names.js +39 -0
- package/dist/subpaths/names.js.map +1 -0
- package/dist/subpaths/price.d.ts +38 -0
- package/dist/subpaths/price.d.ts.map +1 -0
- package/dist/subpaths/price.js +40 -0
- package/dist/subpaths/price.js.map +1 -0
- package/dist/subpaths/risk.d.ts +19 -0
- package/dist/subpaths/risk.d.ts.map +1 -0
- package/dist/subpaths/risk.js +20 -0
- package/dist/subpaths/risk.js.map +1 -0
- package/dist/subpaths/swap.d.ts +19 -0
- package/dist/subpaths/swap.d.ts.map +1 -0
- package/dist/subpaths/swap.js +20 -0
- package/dist/subpaths/swap.js.map +1 -0
- package/dist/swap.d.ts +128 -0
- package/dist/swap.d.ts.map +1 -0
- package/dist/swap.js +291 -0
- package/dist/swap.js.map +1 -0
- package/dist/tokenProbe.d.ts +3 -0
- package/dist/tokenProbe.d.ts.map +1 -0
- package/dist/tokenProbe.js +4 -0
- package/dist/tokenProbe.js.map +1 -0
- package/dist/write/tron.d.ts +25 -0
- package/dist/write/tron.d.ts.map +1 -1
- package/dist/write/tron.js +26 -0
- package/dist/write/tron.js.map +1 -1
- package/package.json +39 -16
- package/src/aggregate.ts +110 -3
- package/src/approvals.ts +462 -0
- package/src/chains.ts +4 -0
- package/src/fees.ts +201 -0
- package/src/http.ts +34 -0
- package/src/lp.ts +3 -1
- package/src/multicall.ts +3 -0
- package/src/names.ts +141 -0
- package/src/owner.ts +7 -138
- package/src/portfolio.ts +91 -0
- package/src/price.ts +415 -0
- package/src/risk.ts +166 -0
- package/src/rpcNodes.ts +18 -0
- package/src/subpaths/approvals.ts +48 -0
- package/src/subpaths/fees.ts +43 -0
- package/src/subpaths/names.ts +43 -0
- package/src/subpaths/price.ts +60 -0
- package/src/subpaths/risk.ts +23 -0
- package/src/subpaths/swap.ts +36 -0
- package/src/swap.ts +413 -0
- package/src/tokenProbe.ts +5 -0
- package/src/write/tron.ts +43 -0
package/dist/names.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 域名解析(子路径 `@w3lib/evm-batch-call/names`):ENS(Ethereum)、SPACE ID(BSC 的 .bnb)、Basenames(Base 的 .base.eth),
|
|
3
|
+
* 名字 → 地址、地址 → 名字(反查后再正查核对)。都是 ENS 式的注册表合约,读取合成几次 multicall
|
|
4
|
+
*/
|
|
5
|
+
import { ensNormalize, namehash } from 'ethers';
|
|
6
|
+
import { isTronChain } from './tron.js';
|
|
7
|
+
/** 内置的域名服务(2026-10 在链上核对过注册表和正查 / 反查) */
|
|
8
|
+
export const NAME_SERVICES = [
|
|
9
|
+
{ id: 'ens', name: 'ENS', chainId: 1, registry: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e', suffixes: null, reverseSuffix: 'addr.reverse' },
|
|
10
|
+
{ id: 'spaceid', name: 'SPACE ID', chainId: 56, registry: '0x08CEd32a7f3eeC915Ba84415e9C07a7286977956', suffixes: ['bnb'], reverseSuffix: 'addr.reverse' },
|
|
11
|
+
{ id: 'basenames', name: 'Basenames', chainId: 8453, registry: '0xb94704422c2a1e396835a571837aa5ae53285a95', suffixes: ['base.eth'], reverseSuffix: '80002105.reverse' },
|
|
12
|
+
];
|
|
13
|
+
const REGISTRY_ABI = ['function resolver(bytes32 node) view returns (address)'];
|
|
14
|
+
const RESOLVER_ABI = ['function addr(bytes32 node) view returns (address)', 'function name(bytes32 node) view returns (string)'];
|
|
15
|
+
const ZERO = '0x0000000000000000000000000000000000000000';
|
|
16
|
+
const present = (a) => !!a && a.toLowerCase() !== ZERO;
|
|
17
|
+
function servicesOf(chainId, options) {
|
|
18
|
+
return options.services ?? NAME_SERVICES.filter((s) => s.chainId === chainId);
|
|
19
|
+
}
|
|
20
|
+
/** 名字归哪个服务:后缀最长的匹配优先,其次是不限后缀的服务 */
|
|
21
|
+
function serviceFor(name, services) {
|
|
22
|
+
let best = null;
|
|
23
|
+
for (const s of services) {
|
|
24
|
+
for (const suffix of s.suffixes ?? []) {
|
|
25
|
+
if ((name === suffix || name.endsWith(`.${suffix}`)) && (!best || suffix.length > best.len))
|
|
26
|
+
best = { s, len: suffix.length };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return best?.s ?? services.find((s) => s.suffixes === null) ?? null;
|
|
30
|
+
}
|
|
31
|
+
function normalize(name) {
|
|
32
|
+
try {
|
|
33
|
+
const n = ensNormalize(name.trim());
|
|
34
|
+
return n.includes('.') ? n : null;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 名字 → 地址(读注册表的 resolver,再读 resolver 的 addr,两次 multicall)。
|
|
42
|
+
* 不支持通配解析(ENSIP-10)和链下解析(CCIP-Read,如 cb.id 等子域名),这些名字返回 null
|
|
43
|
+
*
|
|
44
|
+
* ```ts
|
|
45
|
+
* await resolveNames(new Provider(1), ['vitalik.eth', 'nick.eth'])
|
|
46
|
+
* // [{ name: 'vitalik.eth', normalized: 'vitalik.eth', address: '0xd8dA…6045', service: 'ens' }, …]
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export async function resolveNames(provider, names, options = {}) {
|
|
50
|
+
const chainId = await provider.getChainId();
|
|
51
|
+
const services = isTronChain(chainId) ? [] : servicesOf(chainId, options);
|
|
52
|
+
const items = names.map((name) => {
|
|
53
|
+
const normalized = normalize(name);
|
|
54
|
+
const service = normalized ? serviceFor(normalized, services) : null;
|
|
55
|
+
return { name, normalized, service, node: normalized && service ? namehash(normalized) : null };
|
|
56
|
+
});
|
|
57
|
+
const todo = items.filter((x) => x.node && x.service);
|
|
58
|
+
const resolvers = todo.length ? await provider.tryAll(todo.map((x) => provider.contract(x.service.registry, REGISTRY_ABI).resolver(x.node))) : [];
|
|
59
|
+
const withResolver = todo.flatMap((x, i) => (present(resolvers[i]) ? [{ x, resolver: resolvers[i] }] : []));
|
|
60
|
+
const addresses = withResolver.length ? await provider.tryAll(withResolver.map(({ x, resolver }) => provider.contract(resolver, RESOLVER_ABI).addr(x.node))) : [];
|
|
61
|
+
const found = new Map(withResolver.map(({ x }, i) => [x, present(addresses[i]) ? addresses[i] : null]));
|
|
62
|
+
return items.map((x) => ({ name: x.name, normalized: x.normalized, address: found.get(x) ?? null, service: x.service?.id ?? null }));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 地址 → 名字:读反查记录(主名字),再正查核对名字确实指回这个地址(没有核对的反查记录可以随便设置,不能信)。
|
|
66
|
+
* 共四次 multicall;Tron 上没有域名服务,都返回 null
|
|
67
|
+
*
|
|
68
|
+
* ```ts
|
|
69
|
+
* await lookupAddresses(new Provider(56), [user]) // [{ address: user, name: 'alice.bnb', service: 'spaceid' }]
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export async function lookupAddresses(provider, addresses, options = {}) {
|
|
73
|
+
const chainId = await provider.getChainId();
|
|
74
|
+
const services = isTronChain(chainId) ? [] : servicesOf(chainId, options);
|
|
75
|
+
const queries = addresses.flatMap((address, i) => /^0x[0-9a-fA-F]{40}$/.test(address) ? services.map((s) => ({ i, s, node: namehash(`${address.slice(2).toLowerCase()}.${s.reverseSuffix}`) })) : []);
|
|
76
|
+
const resolvers = queries.length ? await provider.tryAll(queries.map((q) => provider.contract(q.s.registry, REGISTRY_ABI).resolver(q.node))) : [];
|
|
77
|
+
const withResolver = queries.flatMap((q, j) => (present(resolvers[j]) ? [{ q, resolver: resolvers[j] }] : []));
|
|
78
|
+
const names = withResolver.length ? await provider.tryAll(withResolver.map(({ q, resolver }) => provider.contract(resolver, RESOLVER_ABI).name(q.node))) : [];
|
|
79
|
+
const claimed = withResolver.flatMap(({ q }, j) => (typeof names[j] === 'string' && names[j] ? [{ q, name: names[j] }] : []));
|
|
80
|
+
// 正查核对:名字要由同一个服务解析回这个地址
|
|
81
|
+
const forward = await resolveNames(provider, claimed.map((c) => c.name), { services });
|
|
82
|
+
const result = addresses.map((address) => ({ address, name: null, service: null }));
|
|
83
|
+
claimed.forEach((c, j) => {
|
|
84
|
+
const f = forward[j];
|
|
85
|
+
const out = result[c.q.i];
|
|
86
|
+
if (out.name === null && f?.address && f.service === c.q.s.id && f.address.toLowerCase() === out.address.toLowerCase()) {
|
|
87
|
+
out.name = f.normalized;
|
|
88
|
+
out.service = c.q.s.id;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.js","sourceRoot":"","sources":["../src/names.ts"],"names":[],"mappings":"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"}
|
package/dist/owner.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { CallOverrides } from './aggregate.js';
|
|
2
2
|
import type { Provider } from './provider.js';
|
|
3
|
+
import { HttpStatusError } from './http.js';
|
|
4
|
+
import { type PriceSource } from './price.js';
|
|
3
5
|
import { type TransferScanOptions } from './scan.js';
|
|
4
6
|
export interface DiscoveredToken {
|
|
5
7
|
address: string;
|
|
@@ -21,10 +23,6 @@ export interface TokenSource {
|
|
|
21
23
|
/** 返回候选代币;不支持这条链时返回 null(firstAvailable 会接着试下一个来源) */
|
|
22
24
|
discover(ctx: TokenSourceContext): Promise<DiscoveredToken[] | null>;
|
|
23
25
|
}
|
|
24
|
-
export declare class HttpStatusError extends Error {
|
|
25
|
-
readonly status: number;
|
|
26
|
-
constructor(status: number, target: string);
|
|
27
|
-
}
|
|
28
26
|
/** 清空代币列表缓存 */
|
|
29
27
|
export declare function clearTokenListCache(): void;
|
|
30
28
|
/**
|
|
@@ -75,28 +73,8 @@ export declare function firstAvailable(...sources: TokenSource[]): TokenSource;
|
|
|
75
73
|
export declare function combine(...sources: TokenSource[]): TokenSource;
|
|
76
74
|
/** 默认来源:MetaMask 列表(至少 3 家收录),不支持或不可用时用 CoinGecko 列表。都免费、不需要 Key */
|
|
77
75
|
export declare function defaultTokenSource(): TokenSource;
|
|
78
|
-
export
|
|
79
|
-
|
|
80
|
-
/** 代币地址(不含主币) */
|
|
81
|
-
tokens: readonly string[];
|
|
82
|
-
/** 主币 symbol(需要主币价格时);不需要时为 null */
|
|
83
|
-
nativeSymbol: string | null;
|
|
84
|
-
fetch: typeof fetch;
|
|
85
|
-
}
|
|
86
|
-
export interface PriceSource {
|
|
87
|
-
readonly name: string;
|
|
88
|
-
/** 返回 去重键 → 美元价格:EVM 是小写 0x 地址;Tron 是 T 开头的 base58 地址(区分大小写);主币用键 'native'。没有价格的不返回 */
|
|
89
|
-
prices(ctx: PriceSourceContext): Promise<Map<string, number>>;
|
|
90
|
-
}
|
|
91
|
-
/** DefiLlama 的链标识:chainId → slug(2026-10 实测可用) */
|
|
92
|
-
export declare const DEFILLAMA_CHAINS: Readonly<Record<number, string>>;
|
|
93
|
-
/**
|
|
94
|
-
* DefiLlama 价格(免费、不需要 Key)。minConfidence:DefiLlama 给出的置信度下限(0~1),低于它视为没有价格,默认 0.9。
|
|
95
|
-
* 注意:流动性很差的代币价格可能虚高,展示总资产时建议配合 minUsd 或自己的价格源。
|
|
96
|
-
*/
|
|
97
|
-
export declare function defillamaPrices(options?: {
|
|
98
|
-
minConfidence?: number;
|
|
99
|
-
}): PriceSource;
|
|
76
|
+
export { DEFILLAMA_CHAINS, defillamaPrices, type PriceSource, type PriceSourceContext } from './price.js';
|
|
77
|
+
export { HttpStatusError };
|
|
100
78
|
export interface OwnerTokensOptions extends CallOverrides {
|
|
101
79
|
/** 代币来源,默认 defaultTokenSource()(MetaMask 列表 → CoinGecko 列表,免费免 Key) */
|
|
102
80
|
source?: TokenSource;
|
package/dist/owner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner.d.ts","sourceRoot":"","sources":["../src/owner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAOlE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,sDAAsD;IACtD,QAAQ,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAAA;CACrE;
|
|
1
|
+
{"version":3,"file":"owner.d.ts","sourceRoot":"","sources":["../src/owner.ts"],"names":[],"mappings":"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"}
|
package/dist/owner.js
CHANGED
|
@@ -1,37 +1,11 @@
|
|
|
1
1
|
import { NATIVE_TOKEN, formatUnits } from './erc20.js';
|
|
2
|
+
import { HttpStatusError, fetchJson } from './http.js';
|
|
3
|
+
import { defillamaPrices } from './price.js';
|
|
2
4
|
import { transferScan } from './scan.js';
|
|
3
|
-
import {
|
|
4
|
-
const REQUEST_TIMEOUT = 20_000;
|
|
5
|
+
import { isTronAddress, isTronChain, toTronAddress } from './tron.js';
|
|
5
6
|
const LIST_TTL = 60 * 60 * 1000;
|
|
6
7
|
const MAX_CACHED_LISTS = 16;
|
|
7
8
|
const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
|
|
8
|
-
export class HttpStatusError extends Error {
|
|
9
|
-
status;
|
|
10
|
-
constructor(status, target) {
|
|
11
|
-
super(`HTTP ${status} from ${target}`);
|
|
12
|
-
this.status = status;
|
|
13
|
-
this.name = 'HttpStatusError';
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* @param secret 请求里带的 Key:出错时错误信息只写域名,不写完整地址,避免 Key 出现在日志里
|
|
18
|
-
*/
|
|
19
|
-
function fetchJson(fetchFn, url, init, secret) {
|
|
20
|
-
return fetchFn(url, { ...init, signal: AbortSignal.timeout(REQUEST_TIMEOUT) }).then(async (res) => {
|
|
21
|
-
if (!res.ok) {
|
|
22
|
-
throw new HttpStatusError(res.status, secret ? safeHost(url) : url);
|
|
23
|
-
}
|
|
24
|
-
return (await res.json());
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
function safeHost(url) {
|
|
28
|
-
try {
|
|
29
|
-
return new URL(url).host;
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
return 'request';
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
9
|
// 公开代币列表:缓存“按链过滤、转换后”的结果(不缓存原始 JSON),1 小时;缓存 Promise,同时发起的请求共用,失败不缓存。
|
|
36
10
|
// 公开列表与使用哪个 fetch 无关,所以缓存键只看列表和链
|
|
37
11
|
const listCache = new Map();
|
|
@@ -329,88 +303,9 @@ function dedupe(tokens) {
|
|
|
329
303
|
}
|
|
330
304
|
return [...seen.values()];
|
|
331
305
|
}
|
|
332
|
-
|
|
333
|
-
export
|
|
334
|
-
|
|
335
|
-
10: 'optimism',
|
|
336
|
-
56: 'bsc',
|
|
337
|
-
130: 'unichain',
|
|
338
|
-
137: 'polygon',
|
|
339
|
-
143: 'monad',
|
|
340
|
-
196: 'xlayer',
|
|
341
|
-
204: 'op_bnb',
|
|
342
|
-
324: 'era',
|
|
343
|
-
999: 'hyperliquid',
|
|
344
|
-
1116: 'core',
|
|
345
|
-
2818: 'morph',
|
|
346
|
-
5000: 'mantle',
|
|
347
|
-
8453: 'base',
|
|
348
|
-
9745: 'plasma',
|
|
349
|
-
34443: 'mode',
|
|
350
|
-
42161: 'arbitrum',
|
|
351
|
-
43114: 'avax',
|
|
352
|
-
57073: 'ink',
|
|
353
|
-
59144: 'linea',
|
|
354
|
-
80094: 'berachain',
|
|
355
|
-
81457: 'blast',
|
|
356
|
-
534352: 'scroll',
|
|
357
|
-
[TRON_CHAIN_ID.mainnet]: 'tron',
|
|
358
|
-
};
|
|
359
|
-
/** 主币价格:按主币 symbol 对应 CoinGecko 的币种 id(DefiLlama 用 coingecko:<id> 查) */
|
|
360
|
-
const NATIVE_PRICE_IDS = {
|
|
361
|
-
ETH: 'ethereum',
|
|
362
|
-
BNB: 'binancecoin',
|
|
363
|
-
POL: 'polygon-ecosystem-token',
|
|
364
|
-
AVAX: 'avalanche-2',
|
|
365
|
-
MNT: 'mantle',
|
|
366
|
-
OKB: 'okb',
|
|
367
|
-
HYPE: 'hyperliquid',
|
|
368
|
-
BERA: 'berachain-bera',
|
|
369
|
-
CORE: 'coredaoorg',
|
|
370
|
-
MON: 'monad',
|
|
371
|
-
XPL: 'plasma',
|
|
372
|
-
TRX: 'tron',
|
|
373
|
-
};
|
|
374
|
-
/**
|
|
375
|
-
* DefiLlama 价格(免费、不需要 Key)。minConfidence:DefiLlama 给出的置信度下限(0~1),低于它视为没有价格,默认 0.9。
|
|
376
|
-
* 注意:流动性很差的代币价格可能虚高,展示总资产时建议配合 minUsd 或自己的价格源。
|
|
377
|
-
*/
|
|
378
|
-
export function defillamaPrices(options = {}) {
|
|
379
|
-
const minConfidence = options.minConfidence ?? 0.9;
|
|
380
|
-
return {
|
|
381
|
-
name: 'defillama',
|
|
382
|
-
async prices({ chainId, tokens, nativeSymbol, fetch: fetchFn }) {
|
|
383
|
-
const result = new Map();
|
|
384
|
-
const slug = DEFILLAMA_CHAINS[chainId];
|
|
385
|
-
const nativeId = nativeSymbol ? NATIVE_PRICE_IDS[nativeSymbol.toUpperCase()] : undefined;
|
|
386
|
-
// 查询键 → 结果里用的去重键:EVM 地址小写;Tron 地址区分大小写,DefiLlama 要用原样的 base58(T…)地址
|
|
387
|
-
const resultKey = new Map();
|
|
388
|
-
const tokenKeys = slug
|
|
389
|
-
? tokens.map((t) => {
|
|
390
|
-
const tron = slug === 'tron';
|
|
391
|
-
const query = `${slug}:${tron ? toTronAddress(t) : t.toLowerCase()}`;
|
|
392
|
-
resultKey.set(query.toLowerCase(), tron ? toTronAddress(t) : t.toLowerCase());
|
|
393
|
-
return query;
|
|
394
|
-
})
|
|
395
|
-
: [];
|
|
396
|
-
const keys = [...(nativeId ? [`coingecko:${nativeId}`] : []), ...tokenKeys];
|
|
397
|
-
const batches = [];
|
|
398
|
-
for (let i = 0; i < keys.length; i += 100) {
|
|
399
|
-
batches.push(keys.slice(i, i + 100));
|
|
400
|
-
}
|
|
401
|
-
const responses = await Promise.all(batches.map((batch) => fetchJson(fetchFn, `https://coins.llama.fi/prices/current/${batch.join(',')}`)));
|
|
402
|
-
for (const res of responses) {
|
|
403
|
-
for (const [key, coin] of Object.entries(res.coins ?? {})) {
|
|
404
|
-
if (typeof coin.price !== 'number' || !Number.isFinite(coin.price) || (coin.confidence !== undefined && coin.confidence < minConfidence)) {
|
|
405
|
-
continue;
|
|
406
|
-
}
|
|
407
|
-
result.set(key.startsWith('coingecko:') ? 'native' : (resultKey.get(key.toLowerCase()) ?? key.slice(key.indexOf(':') + 1).toLowerCase()), coin.price);
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
return result;
|
|
411
|
-
},
|
|
412
|
-
};
|
|
413
|
-
}
|
|
306
|
+
// 价格来源在 price.ts(子路径 /price);这里继续导出,旧的 import 不受影响
|
|
307
|
+
export { DEFILLAMA_CHAINS, defillamaPrices } from './price.js';
|
|
308
|
+
export { HttpStatusError };
|
|
414
309
|
// ---------------------------------------------------------------------------
|
|
415
310
|
// ownerTokens
|
|
416
311
|
// ---------------------------------------------------------------------------
|
|
@@ -467,7 +362,7 @@ export async function ownerTokens(provider, owner, options = {}) {
|
|
|
467
362
|
// 价格源的键:Tron 上统一用 T 地址(代币来源给的可能是 0x 格式)
|
|
468
363
|
const priceKey = (address) => (isTronChain(chainId) ? toTronAddress(address) : addressKey(address));
|
|
469
364
|
const priceMap = priceSource
|
|
470
|
-
? await priceSource.prices({ chainId, tokens: held.map((x) => (isTronChain(chainId) ? toTronAddress(x.meta.address) : x.meta.address)), nativeSymbol: nativeAddress ? (nativeInfo?.symbol ?? null) : null, fetch: fetchFn })
|
|
365
|
+
? await priceSource.prices({ chainId, tokens: held.map((x) => (isTronChain(chainId) ? toTronAddress(x.meta.address) : x.meta.address)), nativeSymbol: nativeAddress ? (nativeInfo?.symbol ?? null) : null, fetch: fetchFn, provider })
|
|
471
366
|
: new Map();
|
|
472
367
|
const valueOf = (formatted, price) => (price === undefined ? null : Number(formatted) * price);
|
|
473
368
|
let list = held.flatMap(({ meta, balance }, i) => {
|
package/dist/owner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"owner.js","sourceRoot":"","sources":["../src/owner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,YAAY,CAAA;AAEzE,OAAO,EAAE,YAAY,EAA4B,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AA6BpF,MAAM,eAAe,GAAG,MAAM,CAAA;AAC9B,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAC/B,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAC3B,MAAM,YAAY,GAAG,4CAA4C,CAAA;AAEjE,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAE7B;IADX,YACW,MAAc,EACvB,MAAc;QAEd,KAAK,CAAC,QAAQ,MAAM,SAAS,MAAM,EAAE,CAAC,CAAA;QAH7B,WAAM,GAAN,MAAM,CAAQ;QAIvB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAED;;GAEG;AACH,SAAS,SAAS,CAAI,OAAqB,EAAE,GAAW,EAAE,IAAkB,EAAE,MAAe;IAC3F,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAChG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACrE,CAAC;QACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,iCAAiC;AACjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsE,CAAA;AAE/F,eAAe;AACf,MAAM,UAAU,mBAAmB;IACjC,SAAS,CAAC,KAAK,EAAE,CAAA;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,IAA6C;IAC5E,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC1C,OAAO,GAAG,CAAC,OAAO,CAAA;IACpB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,EAAE,CAAA;IACtB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IAC/C,IAAI,SAAS,CAAC,IAAI,GAAG,gBAAgB,EAAE,CAAC;QACtC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;QACjB,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO;YAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,6CAA6C;AAC7C,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAC3D,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACtF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAuC,EAAE;IACzE,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAA;IACvC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YAClC,MAAM,GAAG,GAAG,2CAA2C,OAAO,EAAE,CAAA;YAChE,OAAO,UAAU,CAAC,YAAY,OAAO,IAAI,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE;gBACzD,IAAI,IAA2H,CAAA;gBAC/H,IAAI,CAAC;oBACH,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;gBACtC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,eAAe,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;wBACjF,OAAO,IAAI,CAAA,CAAC,SAAS;oBACvB,CAAC;oBACD,MAAM,GAAG,CAAA;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;qBACrF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;gBACrJ,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;YACtC,CAAC,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAqC;IACnE,CAAC,EAAE,UAAU;IACb,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACjB,CAAA;AAWD,SAAS,eAAe,CAAC,MAAmC,EAAE,OAAe;IAC3E,MAAM,GAAG,GAAG,MAAM;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;SAC9E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;IACrJ,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAChC,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YACxC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,GAAG,GAAG,gCAAgC,QAAQ,WAAW,CAAA;YAC/D,OAAO,UAAU,CAAC,aAAa,OAAO,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,SAAS,CAAkC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;QAChK,CAAC;KACF,CAAA;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,UAA6B,EAAE;IACpE,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ,GAAG,EAAE;QACnC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YAClC,OAAO,UAAU,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,SAAS,CAAkC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;QAClK,CAAC;KACF,CAAA;AACH,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,YAAY,CAAC,MAA+C,EAAE,UAA6B,EAAE;IAC3G,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IACxH,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ;QAC9B,KAAK,CAAC,QAAQ;YACZ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QAClC,CAAC;KACF,CAAA;AACH,CAAC;AAED,mCAAmC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAqC;IAChE,CAAC,EAAE,aAAa;IAChB,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,aAAa;IACjB,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,gBAAgB;IACrB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,gBAAgB;IACrB,GAAG,EAAE,qBAAqB;IAC1B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,gBAAgB;CACzB,CAAA;AAWD;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,OAA6B;IACnD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACjF,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7B,OAAO;QACL,IAAI,EAAE,SAAS;QACf,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;YAC/C,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;YACzC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACzG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,GAAG,GAAsB,EAAE,CAAA;YACjC,IAAI,OAA2B,CAAA;YAC/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC3C,MAAM,GAAG,GAAG,MAAM,SAAS,CACzB,OAAO,EACP,GAAG,EACH;oBACE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;iBAClK,EACD,MAAM,CACP,CAAA;gBACD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAA;gBAC7F,CAAC;gBACD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,IAAI,EAAE,EAAE,CAAC;oBAChD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAA;gBAC1C,CAAC;gBACD,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAA;gBAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAK;gBACP,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,iBAAiB,GAAqC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,CAAA;AAEnG;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAA6B;IACpD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7B,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;YAC/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,mBAAmB,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACvG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,GAAG,GAAsB,EAAE,CAAA;YACjC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC5C,MAAM,GAAG,GAAG,MAAM,SAAS,CACzB,OAAO,EACP,GAAG,EACH;oBACE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;iBAClI,EACD,MAAM,CACP,CAAA;gBACD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAA;gBACxF,CAAC;gBACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAA;gBACzC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,sCAAsC;oBACtC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;gBAC/J,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,CAAC,CAAA;gBACjD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;oBAC3C,MAAK;gBACP,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;AAG/B,SAAS,GAAG,CAAC,MAAyB,EAAE,IAAY;IAClD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAG,CAAY,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;AAC/E,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,cAAc,CAAC,GAAG,OAAsB;IACtD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1C,KAAK,CAAC,QAAQ,CAAC,GAAG;YAChB,IAAI,SAAkB,CAAA;YACtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;oBACzC,IAAI,MAAM,EAAE,CAAC;wBACX,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;oBACjC,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,SAAS,GAAG,GAAG,CAAA;gBACjB,CAAC;YACH,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,SAAS,CAAA;YACjB,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,GAAG,OAAsB;IAC/C,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1C,KAAK,CAAC,QAAQ,CAAC,GAAG;YAChB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC7E,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAG,OAAO,CAAC,CAAC,CAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACnI,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAA;gBAC3D,IAAI,MAAM,EAAE,CAAC;oBACX,MAAO,MAAgC,CAAC,MAAM,CAAA;gBAChD,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,OAAO,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1B,CAAC;KACF,CAAA;AACH,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,kBAAkB;IAChC,OAAO,cAAc,CAAC,iBAAiB,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAA;AAClE,CAAC;AAED,iDAAiD;AACjD,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;AACjE,CAAC;AAED,SAAS,MAAM,CAA4B,MAAW;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAa,CAAA;IACjC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;AAC3B,CAAC;AAqBD,kDAAkD;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAqC;IAChE,CAAC,EAAE,UAAU;IACb,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,KAAK;IACT,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM;CAChC,CAAA;AAED,wEAAwE;AACxE,MAAM,gBAAgB,GAAqC;IACzD,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,yBAAyB;IAC9B,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,MAAM;CACZ,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,UAAsC,EAAE;IACtE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,GAAG,CAAA;IAClD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;YAC5D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;YACxC,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;YACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACxF,oEAAoE;YACpE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAA;YAC3C,MAAM,SAAS,GAAG,IAAI;gBACpB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACf,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAA;oBAC5B,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAA;oBACpE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;oBAC7E,OAAO,KAAK,CAAA;gBACd,CAAC,CAAC;gBACJ,CAAC,CAAC,EAAE,CAAA;YACN,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,CAAA;YAC3E,MAAM,OAAO,GAAe,EAAE,CAAA;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YACtC,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAsE,OAAO,EAAE,yCAAyC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAC5K,CAAA;YACD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC1D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC;wBACzI,SAAQ;oBACV,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBACvJ,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,cAAc,GAAgD;IAClE,GAAG,EAAE,CAAC,4CAA4C,CAAC;IACnD,GAAG,EAAE,CAAC,4CAA4C,CAAC;CACpD,CAAA;AAuCD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAkB,EAAE,KAAa,EAAE,UAA8B,EAAE;IACnG,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAA;IACpJ,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAC1H,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;IACvF,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAA;IAC1H,MAAM,OAAO,GAAG,WAAW,IAAI,CAAC,CAAC,GAAG,IAA8B,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACtF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAA;IAE3C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;IACtF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,kEAAkE,CAAC,CAAA;IAC9H,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC,CAAC,OAAO,KAAK,YAAY;QAC1B,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;QAClC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACxC,CAAA;IAED,uDAAuD;IACvD,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/E,oDAAoD;IACpD,MAAM,MAAM,GAAmB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IACjJ,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC/G,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7D,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IAClE,MAAM,IAAI,GAAG,UAAU;SACpB,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACvD,MAAM,CAAC,CAAC,CAAC,EAAiE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,GAAG,CAAC,CAAA;IAElI,uEAAuE;IACvE,MAAM,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9I,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;KAChH,CAAC,CAAA;IACF,wCAAwC;IACxC,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3G,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5N,CAAC,CAAC,IAAI,GAAG,EAAkB,CAAA;IAC7B,MAAM,OAAO,GAAG,CAAC,SAAiB,EAAE,KAAyB,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAA;IAE1H,IAAI,IAAI,GAAiB,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACxB,wBAAwB;QACxB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;QAC/B,MAAM,SAAS,GAAG,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAA;QACpH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAClD,OAAO;YACL;gBACE,KAAK,EAAE,IAAI,CAAC,OAAO;gBACnB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ;gBACR,SAAS;gBACT,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI;gBAC3C,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI;gBACrC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;gBACvB,KAAK,EAAE,KAAK,IAAI,IAAI;gBACpB,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI;aACpC;SACF,CAAA;IACH,CAAC,CAAC,CAAA;IACF,IAAI,MAAM,KAAK,SAAS,IAAI,WAAW,EAAE,CAAC;QACxC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAA;IAClE,CAAC;IACD,kCAAkC;IAClC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC;IACD,IAAI,aAAa,IAAI,aAAa,EAAE,OAAO,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACpC,IAAI,CAAC,OAAO,CAAC;YACX,KAAK,EAAE,aAAa,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa;YAClF,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,IAAI;YAClC,IAAI,EAAE,UAAU,EAAE,IAAI,IAAI,IAAI;YAC9B,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK,IAAI,IAAI;YACpB,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC;YAC9C,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"owner.js","sourceRoot":"","sources":["../src/owner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 资产总值(子路径 `@w3lib/evm-batch-call/price`):已知代币的余额 × 价格,可选加上 LP 仓位的价值
|
|
3
|
+
*/
|
|
4
|
+
import { type LpPosition, type LpPositionsOptions } from './lp.js';
|
|
5
|
+
import { type PriceSource } from './price.js';
|
|
6
|
+
import type { Provider } from './provider.js';
|
|
7
|
+
export interface PortfolioOptions {
|
|
8
|
+
/** 要计入的代币(含主币:NATIVE_TOKEN),余额用 multicall 一次读出 */
|
|
9
|
+
tokens: readonly string[];
|
|
10
|
+
/** 价格源,依次使用,默认 [defillamaPrices(), onchainPrices()] */
|
|
11
|
+
sources?: readonly PriceSource[];
|
|
12
|
+
/** 同时计入 LP 仓位(V2 LP 代币、V3 仓位 NFT;参数同 lpPositions,价格源用上面的 sources),默认不计入 */
|
|
13
|
+
lp?: boolean | Omit<LpPositionsOptions, 'prices'>;
|
|
14
|
+
/** 价值低于它的代币不列出(不影响合计);大于 0 时没有价格的代币也不列出(计入 unpriced),默认 0 */
|
|
15
|
+
minUsd?: number;
|
|
16
|
+
/** 某个价格源出错时调用 */
|
|
17
|
+
onPriceError?: (err: unknown) => void;
|
|
18
|
+
fetch?: typeof fetch;
|
|
19
|
+
}
|
|
20
|
+
export interface PortfolioToken {
|
|
21
|
+
token: string;
|
|
22
|
+
native: boolean;
|
|
23
|
+
symbol: string | null;
|
|
24
|
+
balance: string;
|
|
25
|
+
decimals: number;
|
|
26
|
+
formatted: string;
|
|
27
|
+
price: number | null;
|
|
28
|
+
/** 美元价值;没有价格时为 null */
|
|
29
|
+
value: number | null;
|
|
30
|
+
/** 给出价格的价格源 */
|
|
31
|
+
priceSource: string | null;
|
|
32
|
+
}
|
|
33
|
+
export interface Portfolio {
|
|
34
|
+
/** 合计(代币 + LP;没有价格的不计入) */
|
|
35
|
+
totalUsd: number;
|
|
36
|
+
tokensUsd: number;
|
|
37
|
+
lpUsd: number;
|
|
38
|
+
/** 有余额的代币,按价值从高到低 */
|
|
39
|
+
tokens: PortfolioToken[];
|
|
40
|
+
/** LP 仓位(开启 lp 时) */
|
|
41
|
+
lp: LpPosition[];
|
|
42
|
+
/** 有余额但没有价格的代币数(LP 仓位里缺价格的也算) */
|
|
43
|
+
unpriced: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 一个地址的资产总值:代币余额(只看传入的代币,EVM 不能只靠节点列出持仓)× 价格,可选加上 LP 仓位。
|
|
47
|
+
*
|
|
48
|
+
* ```ts
|
|
49
|
+
* const p = await portfolio(provider, user, { tokens: [NATIVE_TOKEN, USDT, USDC], lp: true })
|
|
50
|
+
* p.totalUsd // 1234.5
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function portfolio(provider: Provider, owner: string, options: PortfolioOptions): Promise<Portfolio>;
|
|
54
|
+
//# sourceMappingURL=portfolio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../src/portfolio.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAe,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,EAA8D,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AACzG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,uDAAuD;IACvD,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;IAChC,2EAA2E;IAC3E,EAAE,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;IACjD,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB;IACjB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,uBAAuB;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,eAAe;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,qBAAqB;IACrB,EAAE,EAAE,UAAU,EAAE,CAAA;IAChB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAkChH"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 资产总值(子路径 `@w3lib/evm-batch-call/price`):已知代币的余额 × 价格,可选加上 LP 仓位的价值
|
|
3
|
+
*/
|
|
4
|
+
import { lpPositions } from './lp.js';
|
|
5
|
+
import { combinePrices, defillamaPrices, onchainPrices, tokenPrices } from './price.js';
|
|
6
|
+
/**
|
|
7
|
+
* 一个地址的资产总值:代币余额(只看传入的代币,EVM 不能只靠节点列出持仓)× 价格,可选加上 LP 仓位。
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* const p = await portfolio(provider, user, { tokens: [NATIVE_TOKEN, USDT, USDC], lp: true })
|
|
11
|
+
* p.totalUsd // 1234.5
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export async function portfolio(provider, owner, options) {
|
|
15
|
+
const { tokens, sources = [defillamaPrices(), onchainPrices()], lp, minUsd = 0, onPriceError, fetch: fetchFn } = options;
|
|
16
|
+
const onError = onPriceError ? (_, err) => onPriceError(err) : undefined;
|
|
17
|
+
const [balances, positions] = await Promise.all([
|
|
18
|
+
tokens.length ? provider.balances(owner, tokens, { symbol: true }) : Promise.resolve([]),
|
|
19
|
+
lp ? lpPositions(provider, owner, { ...(lp === true ? {} : lp), prices: combinePrices(sources, { onError }), ...(fetchFn ? { fetch: fetchFn } : {}), ...(onPriceError ? { onPriceError } : {}) }) : Promise.resolve([]),
|
|
20
|
+
]);
|
|
21
|
+
const held = balances.filter((b) => b.success && BigInt(b.balance) > 0n);
|
|
22
|
+
const prices = held.length ? await tokenPrices(provider, held.map((b) => b.token), { sources, ...(onError ? { onError } : {}), ...(fetchFn ? { fetch: fetchFn } : {}) }) : [];
|
|
23
|
+
const list = held.map((b, i) => {
|
|
24
|
+
const p = prices[i];
|
|
25
|
+
const price = p?.price ?? null;
|
|
26
|
+
return {
|
|
27
|
+
token: b.token,
|
|
28
|
+
native: b.native,
|
|
29
|
+
symbol: b.symbol ?? null,
|
|
30
|
+
balance: b.balance,
|
|
31
|
+
decimals: b.decimals,
|
|
32
|
+
formatted: b.formatted,
|
|
33
|
+
price,
|
|
34
|
+
value: price === null ? null : Number(b.formatted) * price,
|
|
35
|
+
priceSource: p?.source ?? null,
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
const tokensUsd = list.reduce((sum, t) => sum + (t.value ?? 0), 0);
|
|
39
|
+
const lpUsd = positions.reduce((sum, p) => sum + (p.valueUsd ?? 0), 0);
|
|
40
|
+
return {
|
|
41
|
+
totalUsd: tokensUsd + lpUsd,
|
|
42
|
+
tokensUsd,
|
|
43
|
+
lpUsd,
|
|
44
|
+
tokens: list.filter((t) => (t.value ?? 0) >= minUsd || (minUsd === 0 && t.value === null)).sort((a, b) => (b.value ?? -1) - (a.value ?? -1)),
|
|
45
|
+
lp: positions,
|
|
46
|
+
unpriced: list.filter((t) => t.price === null).length + positions.filter((p) => p.valueUsd === null).length,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=portfolio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../src/portfolio.ts"],"names":[],"mappings":"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"}
|
package/dist/price.d.ts
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { type LpProtocol } from './lp.js';
|
|
2
|
+
import type { Provider } from './provider.js';
|
|
3
|
+
export interface PriceSourceContext {
|
|
4
|
+
chainId: number;
|
|
5
|
+
/** 代币地址(不含主币) */
|
|
6
|
+
tokens: readonly string[];
|
|
7
|
+
/** 主币 symbol(需要主币价格时);不需要时为 null */
|
|
8
|
+
nativeSymbol: string | null;
|
|
9
|
+
fetch: typeof fetch;
|
|
10
|
+
/** 查询用的 Provider(链上价格源 onchainPrices 用它读池子) */
|
|
11
|
+
provider?: Provider;
|
|
12
|
+
}
|
|
13
|
+
export interface PriceSource {
|
|
14
|
+
readonly name: string;
|
|
15
|
+
/** 返回 去重键 → 美元价格:EVM 是小写 0x 地址;Tron 是 T 开头的 base58 地址(区分大小写);主币用键 'native'。没有价格的不返回 */
|
|
16
|
+
prices(ctx: PriceSourceContext): Promise<Map<string, number>>;
|
|
17
|
+
}
|
|
18
|
+
/** DefiLlama 的链标识:chainId → slug(2026-10 实测可用) */
|
|
19
|
+
export declare const DEFILLAMA_CHAINS: Readonly<Record<number, string>>;
|
|
20
|
+
export interface DefillamaPriceOptions {
|
|
21
|
+
/** 置信度下限(0~1),DefiLlama 给出的置信度低于它视为没有价格,默认 0.9 */
|
|
22
|
+
minConfidence?: number;
|
|
23
|
+
/** 历史价格:这个时间点(unix 秒或 Date)附近的价格;不传为当前价格 */
|
|
24
|
+
at?: number | Date;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* DefiLlama 价格(免费、不需要 Key)。
|
|
28
|
+
* 注意:流动性很差的代币价格可能虚高,展示总资产时建议配合 minUsd 或自己的价格源。
|
|
29
|
+
*
|
|
30
|
+
* ```ts
|
|
31
|
+
* defillamaPrices() // 当前价格
|
|
32
|
+
* defillamaPrices({ at: new Date('2026-01-01') }) // 历史价格
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function defillamaPrices(options?: DefillamaPriceOptions): PriceSource;
|
|
36
|
+
/**
|
|
37
|
+
* 依次使用多个价格源:前面的源没给出价格的代币(和主币)交给下一个源。某个源出错时跳过它(错误交给 onError)。
|
|
38
|
+
*
|
|
39
|
+
* ```ts
|
|
40
|
+
* combinePrices([defillamaPrices(), onchainPrices()])
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function combinePrices(sources: readonly PriceSource[], options?: {
|
|
44
|
+
onError?: (source: PriceSource, err: unknown) => void;
|
|
45
|
+
}): PriceSource;
|
|
46
|
+
/** 价格结果里的键:EVM 小写 0x 地址;Tron 是 T 开头的 base58 地址;主币为 'native' */
|
|
47
|
+
export declare function priceKeyOf(chainId: number, token: string): string;
|
|
48
|
+
/** 按 1 美元计的稳定币(链上价格的计价锚点之一;另一个是包装主币) */
|
|
49
|
+
export declare const STABLECOINS: Readonly<Record<number, readonly string[]>>;
|
|
50
|
+
export interface OnchainPriceOptions {
|
|
51
|
+
/** 池子里计价币一侧的价值(美元)下限,低于它的池子不用(防止小池子的价格被操纵),默认 10000 */
|
|
52
|
+
minLiquidityUsd?: number;
|
|
53
|
+
/** 包装主币(计价锚点,主币的价格也按它),默认 LP_QUOTE_TOKENS 里这条链的第一个 */
|
|
54
|
+
wrappedNative?: string;
|
|
55
|
+
/** 按 1 美元计的稳定币,默认 STABLECOINS 里这条链的 */
|
|
56
|
+
stablecoins?: readonly string[];
|
|
57
|
+
/** 用哪些协议的池子,默认 LP_PROTOCOLS 里这条链的 V2 和 V3 */
|
|
58
|
+
protocols?: readonly LpProtocol[];
|
|
59
|
+
/** V3 池子的手续费档位,默认 [100, 500, 2500, 3000, 10000] */
|
|
60
|
+
fees?: readonly number[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 链上价格:在 V2 / V3 池子里找代币对包装主币、稳定币的池子,用计价币一侧最深的池子的价格。
|
|
64
|
+
* 稳定币按 1 美元;包装主币(和主币)按它对稳定币最深的池子。读取全部用 multicall 合并。
|
|
65
|
+
* 适合 DefiLlama 没有收录的新币;价格是池子当前的价格,可能被单个区块内的交易影响,只用于展示
|
|
66
|
+
*/
|
|
67
|
+
export declare function onchainPrices(options?: OnchainPriceOptions): PriceSource;
|
|
68
|
+
export interface TokenPricesOptions {
|
|
69
|
+
/** 价格源,依次使用(前面没有价格的交给后面的),默认 [defillamaPrices(), onchainPrices()] */
|
|
70
|
+
sources?: readonly PriceSource[];
|
|
71
|
+
/** 某个价格源出错时调用(继续用下一个源) */
|
|
72
|
+
onError?: (source: PriceSource, err: unknown) => void;
|
|
73
|
+
/** 自定义 fetch(代理等场景);默认全局 fetch */
|
|
74
|
+
fetch?: typeof fetch;
|
|
75
|
+
}
|
|
76
|
+
export interface TokenPrice {
|
|
77
|
+
/** 传入的代币地址(原样) */
|
|
78
|
+
token: string;
|
|
79
|
+
native: boolean;
|
|
80
|
+
/** 美元价格;所有价格源都没有时为 null */
|
|
81
|
+
price: number | null;
|
|
82
|
+
/** 给出价格的价格源(如 'defillama'、'onchain') */
|
|
83
|
+
source: string | null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 查代币的美元价格(主币用 NATIVE_TOKEN 或零地址)。默认先查 DefiLlama,没有收录的再从链上池子算。
|
|
87
|
+
*
|
|
88
|
+
* ```ts
|
|
89
|
+
* await tokenPrices(provider, [NATIVE_TOKEN, USDT, newToken])
|
|
90
|
+
* // [{ token: '0xEeee…', native: true, price: 612.3, source: 'defillama' }, …, { token: newToken, price: 0.0012, source: 'onchain' }]
|
|
91
|
+
* await tokenPrices(provider, tokens, { sources: [defillamaPrices({ at: new Date('2026-01-01') })] }) // 历史价格
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export declare function tokenPrices(provider: Provider, tokens: readonly string[], options?: TokenPricesOptions): Promise<TokenPrice[]>;
|
|
95
|
+
//# sourceMappingURL=price.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../src/price.ts"],"names":[],"mappings":"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"}
|